uri-template
RFC 6570 URI Template Processor
Install
uri-template on PyPI
pip
pip install uri-templateuv
uv add uri-templatepoetry
poetry add uri-templatePackage facts
| License | MIT License (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,149 days since the last release |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: uri_template-1.3.0-py3-none-any.whl
Keywords: config
About uri-template
from the package's own PyPI description — quoted content, verbatim
uri-template
An implementation of RFC 6570 URI Templates.
This packages implements URI Template expansion in strict adherence to RFC 6570, but adds a few extensions.
RFC 6570 Extensions
Non-string Values
RFC 6570 is silent regarding variable values that are not strings, lists, associative arrays, or null.
This package handles value types as follows:
- Values that are instances of
strare treated as strings. - Values implementing
collections.abc.Sequenceare treated as lists. - Values implementing
collections.abc.Mappingare treated as associative arrays. Nonevalues are treated as null.- Boolean values are converted to the lower case strings 'true' and 'false'.
- All other values will be converted to strings using the Python
str()function.
Nested Structures
This package handles variable values with nested structure, for example, lists containing other lists or associative arrays, or associative arrays containing lists or other associative arrays.
Nested values for variables that do not use the array modifier ('[]') are treated as follows:
- Lists containing lists are flattened into a single list.
- Lists containing...
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Expands RFC 6570 URI Templates with support for variable substitution, nested structures, default values, and partial expansion. It provides both functional and object-oriented APIs for template validation and expansion.
Installation is straightforward with no runtime dependencies and a pure Python wheel distribution. However, the package is marked as abandoned with no releases for 1149 days (last release 2023-06-21), so maintenance and security updates are not expected.
Licensed under the MIT License (permissive), which allows broad use, modification, and distribution with minimal restrictions—suitable for both commercial and private projects.
Usage
pip install uri-template==1.3.0
import uri_template
result = uri_template.expand("{scheme}://{host}{/path*}", scheme="https", host="example.com", path=["a", "b"])
print(result) # Output: https://example.com/a/b
Requires Python 3.7 or later (package supports 3.7–3.11).
Verdict: A well-designed RFC 6570 implementation with zero dependencies and permissive licensing, suitable for URI template processing tasks. The abandoned maintenance status (1149 days since last release) is a significant concern for long-term reliability and security; use only if the feature set is stable and no active maintenance is required.
Needs verification
- Whether the package has received any security patches or bug fixes since 2023-06-21 through alternative channels or forks.
- Real-world adoption and usage patterns beyond the top-1000 PyPI tier classification.
- Whether the RFC 6570 specification is stable enough that abandonment poses minimal practical risk.
Similar packages
permissive · top 1,000 on PyPI
uritemplatepermissive · top 1,000 on PyPI
bracexpermissive · top 1,000 on PyPI
rfc3987-syntaxpermissive · top 1,000 on PyPI
rfc3986permissive · top 1,000 on PyPI
Jinja2permissive · top 100 on PyPI
cfn-lintpermissive · top 1,000 on PyPI
regexpermissive · top 100 on PyPI
jmespathpermissive · top 100 on PyPI
xmltodictpermissive · top 1,000 on PyPI