{"id":421,"library":"uritemplate","title":"uritemplate","description":"A Python library for implementing RFC 6570 URI Templates, currently at version 4.2.0, with a release cadence of approximately every 1-2 years.","status":"active","version":"4.2.0","language":"python","source_language":"en","source_url":"https://github.com/python-hyper/uritemplate","tags":["URI Templates","RFC 6570","Python"],"install":[{"cmd":"pip install uritemplate","lang":"bash","label":"Install uritemplate"}],"dependencies":[{"reason":"Optional, for making HTTP requests with expanded URIs","package":"requests","optional":true}],"imports":[{"note":"Direct import of 'expand' function from 'uritemplate' module.","symbol":"expand","correct":"from uritemplate import expand"},{"note":"Direct import of 'URITemplate' class from 'uritemplate' module.","symbol":"URITemplate","correct":"from uritemplate import URITemplate"}],"quickstart":{"code":"from uritemplate import expand\n\nuri = 'https://api.github.com{/user}'\n\nexpanded_uri = expand(uri, user='sigmavirus24')\nprint(expanded_uri)","lang":"python","description":"Expands a URI template with a user variable using the 'expand' function from 'uritemplate'."},"warnings":[{"fix":"Update import statements to 'from uritemplate import expand' and 'from uritemplate import URITemplate'.","message":"Direct import of 'expand' and 'URITemplate' from 'uritemplate' module is required; previous import paths may be deprecated.","severity":"breaking","affected_versions":"4.2.0"},{"fix":"Ensure consistency between 'var_dict' and 'kwargs' to avoid unintentional overrides.","message":"Passing values by both 'var_dict' and 'kwargs' in 'expand' function may override values in 'var_dict'.","severity":"gotcha","affected_versions":"4.2.0"}],"env_vars":null,"last_verified":"2026-05-12T13:42:23.745Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"pip install uritemplate","cause":"The 'uritemplate' library is not installed in the current Python environment.","error":"ModuleNotFoundError: No module named 'uritemplate'"},{"fix":"template.expand({'variable': 'value'})","cause":"The `expand` method of a URITemplate object was called without the required dictionary of variables or with a non-dictionary positional argument.","error":"TypeError: expand() missing 1 required positional argument: 'var_dict'"},{"fix":"template.expand({'variable': 'value'})","cause":"The `expand` method was called with `None` as the argument for variables, which is not an iterable type like a dictionary.","error":"TypeError: argument of type 'NoneType' is not iterable"},{"fix":"template = uritemplate.URITemplate('/path/{foo}')","cause":"The URI template string contains a syntax error, such as a missing closing brace or an invalid expression, violating RFC 6570.","error":"Missing '}' in URI template segment '{foo'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":null,"install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.01,"mem_mb":1.3,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":1.4,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.4,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.2,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.3,"disk_size":"11.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.03,"mem_mb":1.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.02,"mem_mb":1.3,"disk_size":"18M"}]},"quickstart_checks":{"last_tested":"2026-04-23","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}