{"library":"repath","title":"repath","description":"repath is a Python library that ports the pathToRegexp Node.js module, designed to generate regular expressions from ExpressJS-style path patterns. It enables parsing paths and extracting parameters using Python's named capture groups. The current version is 0.9.0, released in October 2019, and the project appears to be in maintenance mode due to its last update date.","language":"python","status":"maintenance","last_verified":"Sun May 17","install":{"commands":["pip install repath"],"cli":null},"imports":["import repath"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import repath\n\n# Define an ExpressJS-style path pattern\npath_pattern = \"/user/:id/posts/:post_id\"\n\n# Generate a regular expression and a list of keys (parameters)\nregexp, keys = repath.repath(path_pattern)\n\nprint(f\"Generated Regex: {regexp.pattern}\")\n# Example output: ^\\/user\\/(?:([^\\/]+?))\\/posts\\/(?:([^\\/]+?))\\/?$\n\n# Match a URL against the generated regex\nurl_to_match = \"/user/123/posts/456\"\nmatch = regexp.match(url_to_match)\n\nif match:\n    print(f\"Matched groups: {match.groups()}\")\n    # Example output: ('123', '456')\n    print(f\"Matched parameters: {match.groupdict()}\")\n    # Example output: {'id': '123', 'post_id': '456'}\nelse:\n    print(\"URL did not match the pattern.\")\n\n# You can also compile tokens to generate paths (reverse operation)\ntokens = repath.repath_tokens(\"/files/:name(\\\\d+)\") # Path with a regex constraint\ncompiler = repath.tokens_to_function(tokens)\n\nprint(f\"Compiled path: {compiler({'name': '789'})}\")\n# Example output: /files/789\n# Note: This will raise ValueError if constraints are not met.\n","lang":"python","description":"This quickstart demonstrates how to use `repath` to convert ExpressJS-style path patterns into Python regular expressions, match URLs against these patterns to extract parameters, and generate paths from parameters using the reverse compilation.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.9.0","pypi_latest":"0.9.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.01,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"17.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"18M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.02,"mem_mb":0.6,"disk_size":"19.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.02,"mem_mb":0.8,"disk_size":"20M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"11.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.5,"disk_size":"11.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"17.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"repath","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.01,"mem_mb":0.7,"disk_size":"18M"}]}}