blob: 60fcbdbda4989241de16edd7ca18ef117cf23627 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
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
.. autoclass:: uritemplate.URITemplate
:members:
.. autoclass:: uritemplate.URIVariable
:members:
|