| uritemplate |
| =========== |
| |
| Release v\ |version|. |
| |
| Examples |
| -------- |
| |
| This first example shows how simple the API can be when using for a one-off |
| item in a script or elsewhere. |
| |
| .. code-block:: python |
| |
| from requests import get |
| from uritemplate import expand |
| |
| uri = 'https://api.github.com{/user}' |
| |
| user = get(expand(uri, user='sigmavirus24')).json() |
| |
| This second example shows how using the class will save you time for template |
| parsing and object creation. Making the template once means the URI is parsed |
| once which decreases the number of :class:`URITemplate |
| <uritemplate.URITemplate>` objects created and usage of the ``re`` module. |
| This means that as soon as the file is parsed, the ``User.github_url`` and |
| ``Repository.github_url`` variables are made once and only once. They're then |
| usable in every instance of those classes. |
| |
| .. code-block:: python |
| |
| from uritemplate import URITemplate |
| |
| class User(object): |
| github_url = URITemplate('https://api.github.com{/user}') |
| def __init__(self, name): |
| self.uri = self.github_url.expand({'user': name}) |
| self.name = name |
| |
| class Repository(object): |
| github_url = URITemplate('https://api.github.com{/user}{/repo}') |
| def __init__(self, name): |
| self.uri = self.github_url.expand( |
| dict(zip(['user', 'repo'], name.split('/'))) |
| ) |
| self.name = name |
| |
| API |
| --- |
| |
| .. module:: uritemplate |
| |
| .. autofunction:: uritemplate.expand |
| |
| .. autofunction:: uritemplate.partial |
| |
| .. autofunction:: uritemplate.variables |
| |
| .. autoclass:: uritemplate.URITemplate |
| :members: |
| |
| Implementation Details |
| ---------------------- |
| |
| Classes, their methods, and functions in this section are not part of the API |
| and as such are not meant to be used by users of ``uritemplate.py``. These are |
| documented here purely for reference as they are inadvertently exposed via the |
| public API. |
| |
| For example:: |
| |
| t = URITemplate('https://api.github.com/users{/user}') |
| t.variables |
| # => [URIVariable(/user)] |
| |
| Users can interact with :class:`URIVariable` objects as they see fit, but |
| their API may change and are not guaranteed to be consistent across versions. |
| Code relying on methods defined on :class:`URIVariable` and other classes, |
| methods, and functions in this section may break in future releases. |
| |
| .. autoclass:: uritemplate.template.URIVariable |
| :members: expand |