• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

docs/23-Nov-2023-454191

old/uritemplate.py/23-Nov-2023-3129

tests/23-Nov-2023-1,9331,736

uritemplate/23-Nov-2023-771549

.gitignoreD23-Nov-202393 1312

.mailmapD23-Nov-2023199 32

.travis.ymlD23-Nov-2023524 3429

AUTHORS.rstD23-Nov-2023233 1612

Android.bpD23-Nov-20231.3 KiB4037

HISTORY.rstD23-Nov-20231.6 KiB8251

LICENSED23-Nov-2023196 43

LICENSE.APACHED23-Nov-202311.1 KiB203169

LICENSE.BSDD23-Nov-20231.3 KiB2421

MANIFEST.inD23-Nov-2023237 1310

METADATAD23-Nov-2023374 2019

MODULE_LICENSE_APACHE2D23-Nov-20230

MODULE_LICENSE_BSDD23-Nov-20230

NOTICED23-Nov-202312.5 KiB231194

OWNERSD23-Nov-2023207 54

README.rstD23-Nov-20231.8 KiB6443

setup.cfgD23-Nov-202328 32

setup.pyD23-Nov-20231.6 KiB5043

tox.iniD23-Nov-2023407 3227

README.rst

1uritemplate
2===========
3
4Documentation_ -- GitHub_ -- Travis-CI_
5
6Simple python library to deal with `URI Templates`_. The API looks like
7
8.. code-block:: python
9
10    from uritemplate import URITemplate, expand
11
12    # NOTE: URI params must be strings not integers
13
14    gist_uri = 'https://api.github.com/users/sigmavirus24/gists{/gist_id}'
15    t = URITemplate(gist_uri)
16    print(t.expand(gist_id='123456'))
17    # => https://api.github.com/users/sigmavirus24/gists/123456
18
19    # or
20    print(expand(gist_uri, gist_id='123456'))
21
22    # also
23    t.expand({'gist_id': '123456'})
24    print(expand(gist_uri, {'gist_id': '123456'}))
25
26Where it might be useful to have a class
27
28.. code-block:: python
29
30    import requests
31
32    class GitHubUser(object):
33        url = URITemplate('https://api.github.com/user{/login}')
34        def __init__(self, name):
35            self.api_url = url.expand(login=name)
36            response = requests.get(self.api_url)
37            if response.status_code == 200:
38                self.__dict__.update(response.json())
39
40When the module containing this class is loaded, ``GitHubUser.url`` is
41evaluated and so the template is created once. It's often hard to notice in
42Python, but object creation can consume a great deal of time and so can the
43``re`` module which uritemplate relies on. Constructing the object once should
44reduce the amount of time your code takes to run.
45
46Installing
47----------
48
49::
50
51    pip install uritemplate
52
53License
54-------
55
56Modified BSD license_
57
58
59.. _Documentation: https://uritemplate.readthedocs.io/
60.. _GitHub: https://github.com/python-hyper/uritemplate
61.. _Travis-CI: https://travis-ci.org/python-hyper/uritemplate
62.. _URI Templates: http://tools.ietf.org/html/rfc6570
63.. _license: https://github.com/python-hyper/uritemplate/blob/master/LICENSE
64