uritemplate (3.0.1)

Published 2025-08-29 02:29:18 +02:00 by eofredj

Installation

pip install --index-url  uritemplate

About this package

URI templates

uritemplate

Documentation_ -- GitHub_ -- Travis-CI_

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

.. code-block:: python

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

.. code-block:: python

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_

.. _Documentation: https://uritemplate.readthedocs.io/ .. _GitHub: https://github.com/python-hyper/uritemplate .. _Travis-CI: https://travis-ci.org/python-hyper/uritemplate .. _URI Templates: http://tools.ietf.org/html/rfc6570 .. _license: https://github.com/python-hyper/uritemplate/blob/master/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

Requirements

Requires Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Details
PyPI
2025-08-29 02:29:18 +02:00
1
Ian Stapleton Cordasco
BSD 3-Clause License or Apache License, Version 2.0
15 KiB
Assets (1)
Versions (3) View all
3.0.1 2025-08-29
4.2.0 2025-08-28
4.1.1 2024-11-27