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

Uploaded Source

Built Distribution

uritemplate-2.0.0-py2-none-any.whl (10.4 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: uritemplate-2.0.0.tar.gz
  • Upload date:
  • Size: 30.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for uritemplate-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c20c7e024535f9ef0130c5694159ce6210f703f8a7d813a602b020455052b5bf
MD5 34c75eff2888508ebe9da79cb1c154a2
BLAKE2b-256 ba83069aee6d676e890b638c7c7da60063ff6abce00b4bb59d9a9e6249131bfa

See more details on using hashes here.

File details

Details for the file uritemplate-2.0.0-py2-none-any.whl.

File metadata

File hashes

Hashes for uritemplate-2.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 9f81708f73de17e080c12c81906290be2c97a69ca8f6c8bc787c3cad12288541
MD5 a4fd0c44561ebc7c45ba65810dea8e87
BLAKE2b-256 7a6b37b80c80bc5c5a600dd0dc56351de0f8421de95a929e25245f0fac1b5050

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