Skip to main content

URI templates

Project description

uritemplate

DocumentationGitHubTravis-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

License

Modified BSD license

Changelog - uritemplate

3.0.1 - 2019-12-19

  • Update to Python 3.6, 3.7, and 3.8

  • Drop support for Python 2.6, 3.2, and 3.3

  • Ignore None in list argument expansion

  • Handle a list with an empty string appropriately

3.0.0 - 2016-08-29

  • Match major version number of uritemplate.py

2.0.0 - 2016-08-29

  • Merge uritemplate.py into uritemplate

Changelog - uritemplate.py

3.0.2 - 2015-08-30

  • Fix meta-package requirements.

3.0.1 - 2015-08-29

  • Deprecate in favor of uritemplate. This package is now a metapackage that depends on uritemplate.

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-3.0.1.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

uritemplate-3.0.1-py2.py3-none-any.whl (15.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file uritemplate-3.0.1.tar.gz.

File metadata

  • Download URL: uritemplate-3.0.1.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.8.0

File hashes

Hashes for uritemplate-3.0.1.tar.gz
Algorithm Hash digest
SHA256 5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae
MD5 869fb44fbd56713490db7272eb36c8ae
BLAKE2b-256 42dafa9aca2d866f932f17703b3b5edb7b17114bb261122b6e535ef0d9f618f8

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: uritemplate-3.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.8.0

File hashes

Hashes for uritemplate-3.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 07620c3f3f8eed1f12600845892b0e036a2420acf513c53f7de0abd911a5894f
MD5 f4be0d70d857dd295b78f220e7568372
BLAKE2b-256 bf0c60d82c077998feb631608dca3cc1fe19ac074e772bf0c24cf409b977b815

See more details on using hashes here.

Provenance

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