URI templates
Project description
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Description: uritemplate
===========
Documentation_ -- GitHub_ -- BitBucket_ -- 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.py
License
-------
Modified BSD license_
.. _Documentation: http://uritemplate.rtfd.org/
.. _GitHub: https://github.com/sigmavirus24/uritemplate
.. _BitBucket: https://bitbucket.org/icordasc/uritemplate
.. _Travis-CI: https://travis-ci.org/sigmavirus24/uritemplate
.. _URI Templates: http://tools.ietf.org/html/rfc6570
.. _license: https://github.com/sigmavirus24/uritemplate/blob/master/LICENSE
Changelog
=========
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
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Description: uritemplate
===========
Documentation_ -- GitHub_ -- BitBucket_ -- 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.py
License
-------
Modified BSD license_
.. _Documentation: http://uritemplate.rtfd.org/
.. _GitHub: https://github.com/sigmavirus24/uritemplate
.. _BitBucket: https://bitbucket.org/icordasc/uritemplate
.. _Travis-CI: https://travis-ci.org/sigmavirus24/uritemplate
.. _URI Templates: http://tools.ietf.org/html/rfc6570
.. _license: https://github.com/sigmavirus24/uritemplate/blob/master/LICENSE
Changelog
=========
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
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
uritemplate.py-1.0.0.tar.gz
(26.4 kB
view details)
Built Distribution
File details
Details for the file uritemplate.py-1.0.0.tar.gz
.
File metadata
- Download URL: uritemplate.py-1.0.0.tar.gz
- Upload date:
- Size: 26.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 210a73375b4d3161ce7fdd084d043d5a857d54d0d5ca19ad0f6644a7869423ea |
|
MD5 | efa261e8ee977c89761088dd7f944167 |
|
BLAKE2b-256 | 663a4d16dc405f44857db8ad76a37121f7f772295a56d1a759e3c3aadb47ec1d |
File details
Details for the file uritemplate.py-1.0.0-py2-none-any.whl
.
File metadata
- Download URL: uritemplate.py-1.0.0-py2-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65cffa265c0eb3b9c88db54fd5fa73d6ad65b5f457c6f75c33a93420b4fcfbdc |
|
MD5 | d69b81fb5cba272064ba4a0081bcc3ca |
|
BLAKE2b-256 | c77eb1c3702c8057196edd89fa40b2ecc597056bdb24ae1e46d7613ab6851cf7 |