You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.4 KiB
82 lines
2.4 KiB
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
|