Metadata-Version: 2.1 Name: uritemplate Version: 3.0.1 Summary: URI templates Home-page: https://uritemplate.readthedocs.org Author: Ian Stapleton Cordasco Author-email: graffatcolmingov@gmail.com License: BSD 3-Clause License or Apache License, Version 2.0 Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: License :: OSI Approved Classifier: License :: OSI Approved :: BSD License Classifier: License :: OSI Approved :: Apache Software License Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* Description-Content-Type: text/x-rst 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 ------------------ - Relicense uritemplate.py as Apache 2 and BSD (See https://github.com/sigmavirus24/uritemplate/pull/23) 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