You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hmz007 36ed224bac
Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
1 year ago
..
docs Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
old/uritemplate.py Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
tests Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
uritemplate Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
.gitignore Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
.mailmap Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
.travis.yml Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
AUTHORS.rst Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
Android.bp Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
HISTORY.rst Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
LICENSE Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
LICENSE.APACHE Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
LICENSE.BSD Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
MANIFEST.in Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
METADATA Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
MODULE_LICENSE_APACHE2 Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
MODULE_LICENSE_BSD Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
NOTICE Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
OWNERS Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
README.rst Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
setup.cfg Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
setup.py Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago
tox.ini Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a) 1 year ago

README.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