diff options
Diffstat (limited to 'README.rst')
-rw-r--r-- | README.rst | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..2780d7b --- /dev/null +++ b/README.rst @@ -0,0 +1,64 @@ +uritemplate +=========== + +Documentation_ -- GitHub_ -- BitBucket_ -- Travis-CI_ + +Simple python library to deal with `URI Templates`_. The API looks like + +.. code-block:: python + + from uritemplate import URITemplate, expand + + # NOTE: URI params must be strings not integers + + gist_uri = 'https://api.github.com/users/sigmavirus24/gists{/gist_id}' + t = URITemplate(gist_uri) + print(t.expand(gist_id='123456')) + # => https://api.github.com/users/sigmavirus24/gists/123456 + + # or + print(expand(gist_uri, gist_id='123456')) + + # also + t.expand({'gist_id': '123456'}) + print(expand(gist_uri, {'gist_id': '123456'})) + +Where it might be useful to have a class + +.. code-block:: python + + import requests + + class GitHubUser(object): + url = URITemplate('https://api.github.com/user{/login}') + def __init__(self, name): + self.api_url = url.expand(login=name) + response = requests.get(self.api_url) + if response.status_code == 200: + self.__dict__.update(response.json()) + +When the module containing this class is loaded, ``GitHubUser.url`` is +evaluated and so the template is created once. It's often hard to notice in +Python, but object creation can consume a great deal of time and so can the +``re`` module which uritemplate relies on. Constructing the object once should +reduce the amount of time your code takes to run. + +Installing +---------- + +:: + + pip install uritemplate.py + +License +------- + +Modified BSD license_ + + +.. _Documentation: http://uritemplate.rtfd.org/ +.. _GitHub: https://github.com/sigmavirus24/uritemplate +.. _BitBucket: https://bitbucket.org/icordasc/uritemplate +.. _Travis-CI: https://travis-ci.org/sigmavirus24/uritemplate +.. _URI Templates: http://tools.ietf.org/html/rfc6570 +.. _license: https://github.com/sigmavirus24/uritemplate/blob/master/LICENSE |