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: https://tools.ietf.org/html/rfc6570
.. _license: https://github.com/python-hyper/uritemplate/blob/master/LICENSE
Raw data
{
"_id": null,
"home_page": "https://uritemplate.readthedocs.org",
"name": "uritemplate",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "rfc 6570 uri template",
"author": "Ian Stapleton Cordasco",
"author_email": "graffatcolmingov@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/d2/5a/4742fdba39cd02a56226815abfa72fe0aa81c33bed16ed045647d6000eba/uritemplate-4.1.1.tar.gz",
"platform": "",
"description": "uritemplate\n===========\n\nDocumentation_ -- GitHub_ -- Travis-CI_\n\nSimple python library to deal with `URI Templates`_. The API looks like\n\n.. code-block:: python\n\n from uritemplate import URITemplate, expand\n\n # NOTE: URI params must be strings not integers\n\n gist_uri = 'https://api.github.com/users/sigmavirus24/gists{/gist_id}'\n t = URITemplate(gist_uri)\n print(t.expand(gist_id='123456'))\n # => https://api.github.com/users/sigmavirus24/gists/123456\n\n # or\n print(expand(gist_uri, gist_id='123456'))\n\n # also\n t.expand({'gist_id': '123456'})\n print(expand(gist_uri, {'gist_id': '123456'}))\n\nWhere it might be useful to have a class\n\n.. code-block:: python\n\n import requests\n\n class GitHubUser(object):\n url = URITemplate('https://api.github.com/user{/login}')\n def __init__(self, name):\n self.api_url = url.expand(login=name)\n response = requests.get(self.api_url)\n if response.status_code == 200:\n self.__dict__.update(response.json())\n\nWhen the module containing this class is loaded, ``GitHubUser.url`` is\nevaluated and so the template is created once. It's often hard to notice in\nPython, but object creation can consume a great deal of time and so can the\n``re`` module which uritemplate relies on. Constructing the object once should\nreduce the amount of time your code takes to run.\n\nInstalling\n----------\n\n::\n\n pip install uritemplate\n\nLicense\n-------\n\nModified BSD license_\n\n\n.. _Documentation: https://uritemplate.readthedocs.io/\n.. _GitHub: https://github.com/python-hyper/uritemplate\n.. _Travis-CI: https://travis-ci.org/python-hyper/uritemplate\n.. _URI Templates: https://tools.ietf.org/html/rfc6570\n.. _license: https://github.com/python-hyper/uritemplate/blob/master/LICENSE\n\n\n",
"bugtrack_url": null,
"license": "BSD 3-Clause License or Apache License, Version 2.0",
"summary": "Implementation of RFC 6570 URI Templates",
"version": "4.1.1",
"split_keywords": [
"rfc",
"6570",
"uri",
"template"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "a68f2279025a2610613efb2287eaf463",
"sha256": "830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"
},
"downloads": -1,
"filename": "uritemplate-4.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a68f2279025a2610613efb2287eaf463",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.6",
"size": 10356,
"upload_time": "2021-10-13T11:15:12",
"upload_time_iso_8601": "2021-10-13T11:15:12.316885Z",
"url": "https://files.pythonhosted.org/packages/81/c0/7461b49cd25aeece13766f02ee576d1db528f1c37ce69aee300e075b485b/uritemplate-4.1.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "6a40709eb966d0a57fea08c3f11ff325",
"sha256": "4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"
},
"downloads": -1,
"filename": "uritemplate-4.1.1.tar.gz",
"has_sig": false,
"md5_digest": "6a40709eb966d0a57fea08c3f11ff325",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 273898,
"upload_time": "2021-10-13T11:15:14",
"upload_time_iso_8601": "2021-10-13T11:15:14.840878Z",
"url": "https://files.pythonhosted.org/packages/d2/5a/4742fdba39cd02a56226815abfa72fe0aa81c33bed16ed045647d6000eba/uritemplate-4.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-10-13 11:15:14",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "uritemplate"
}