Skip to main content

URI templates

Project description

uritemplate

DocumentationGitHubBitBucketTravis-CI

Simple python library to deal with URI Templates. The API looks like

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

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

Changelog - uritemplate

2.0.0 - 2016-08-29

  • Merge uritemplate.py into uritemplate

Changelog - uritemplate.py

2.0.0 - 2016-08-20

1.0.1 - 2016-08-18

  • Fix some minor packaging problems.

1.0.0 - 2016-08-17

  • Fix handling of Unicode values on Python 2.6 and 2.7 for urllib.quote.

  • Confirm public stable API via version number.

0.3.0 - 2013-10-22

  • Add #partial to partially expand templates and return new instances of URITemplate.

0.2.0 - 2013-07-26

  • Refactor the library a bit and add more tests.

  • Backwards incompatible with 0.1.x if using URIVariable directly from uritemplate.template

0.1.1 - 2013-05-19

  • Add ability to get set of variable names in the current URI

  • If there is no value or default given, simply return an empty string

  • Fix sdist

0.1.0 - 2013-05-14

  • Initial Release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uritemplate.py-3.0.0.tar.gz (30.4 kB view details)

Uploaded Source

Built Distributions

uritemplate.py-3.0.0-py2.py3-none-any.whl (4.8 kB view details)

Uploaded Python 2 Python 3

uritemplate.py-3.0.0-cp27-none-macosx_10_11_x86_64.whl (4.8 kB view details)

Uploaded CPython 2.7 macOS 10.11+ x86-64

File details

Details for the file uritemplate.py-3.0.0.tar.gz.

File metadata

File hashes

Hashes for uritemplate.py-3.0.0.tar.gz
Algorithm Hash digest
SHA256 b9ee7fdc0cd87027d28f9b25ed1cbec0162b9332e88e58c7d82f7bef0adbbfcc
MD5 427e4032ec9549ac0e638f2e43d3ced1
BLAKE2b-256 f973f1d0750a13da9721703bef416559453f234074cf3d300aead04f2bd23c8c

See more details on using hashes here.

File details

Details for the file uritemplate.py-3.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for uritemplate.py-3.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9d70db6ceda3cedd40daf56d61049e3502cf4ee24930cde8d9886638f8969319
MD5 6249f0ca55f5f3fb0335e43eb9a43e35
BLAKE2b-256 cbe3d7e3bf95853b355ba52791bb177d4de495ec5615a2cd8d4b05ed3a1944eb

See more details on using hashes here.

File details

Details for the file uritemplate.py-3.0.0-cp27-none-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for uritemplate.py-3.0.0-cp27-none-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 75c9f99576a418b6c60905d2cb710fdf05714dc42485feeaf885dcc97ad0f179
MD5 b8da7c199d9aa2cb77a2b09f0065ad8f
BLAKE2b-256 c94227cbe5c221b83a578bab7958136f3ed0cdd4dd7b5ef3d476054114abbb6f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page