Django URL resolver utilities
This package aims to make it easier to introspect and possibly manipulate the URL resolver(s) in Django projects.
We use urr to auto-generate smoke tests for all URLs in the project, but you might come up with other uses. Who knows!
Install the package using pip install or similar.
To use the management command(s), also add django_urr
to your project's INSTALLED_APPS.
You can use the urr_list management command to generate
a machine-readable (but human-greppable) list of URLs in your project.
By default, urr_list outputs JSON Lines (jsonl), with each
route on a line of its own; this is greppable with standard tools.
If you'd prefer, you can also direct urr_list to output a single JSON
array with --format=json.
Each route is an object (dict) has the following keys:
groups– the named capture groups (route arguments). For unnamed groups, these are named_0,_1, etc. by Django.name– the name of the route, if anynamespace– the namespace of the route, if anypath– the path of the route, as a Python percent format stringpattern– the regex to match the path
The django_urr.extract_urls() function
traverses the tree of URL patterns and returns an iterator of
django_urr.extract.URLEntry objects in original mounting order.