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

Uploaded Source

Built Distributions

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

Uploaded Python 2 Python 3

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

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for uritemplate-3.0.0.tar.gz
Algorithm Hash digest
SHA256 c02643cebe23fc8adb5e6becffe201185bf06c40bda5c0b4028a93f1527d011d
MD5 1ec31e0d8a2eec72357b2cef4bce5945
BLAKE2b-256 cddbf7b98cdc3f81513fb25d3cbe2501d621882ee81150b745cdd1363278c10a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uritemplate-3.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1b9c467a940ce9fb9f50df819e8ddd14696f89b9a8cc87ac77952ba416e0a8fd
MD5 ab58d573c5584499b57399522e6c4945
BLAKE2b-256 e57d9d5a640c4f8bf2c8b1afc015e9a9d8de32e13c9016dcc4b0ec03481fb396

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uritemplate-3.0.0-py2-none-any.whl
Algorithm Hash digest
SHA256 01c69f4fe8ed503b2951bef85d996a9d22434d2431584b5b107b2981ff416fbd
MD5 b420ae8183a8af42481b1c655f528dfa
BLAKE2b-256 f62566a49231b44409d7f07cfcf2506a8b070ce3c99fc47cc256bea833f24791

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