Routes for speed
Project description
Autoroutes
Routes for speed.
Install
pip install autoroutes
API
# Create a Routes instance
from autoroutes import Routes
routes = Routes()
# Register a new route
routes.add('path/to/resource/{id}', something='value', anything='else')
# Try to match a route
routes.match('path/to/resource/1234')
> ({'something': 'value', 'anything': 'else'}, {'id': '1234'})
Note: the order the routes are registered matters. At match time, routes will be tried in that order.
Placeholders
Placeholders are defined by a curly brace pair: path/{var}
. By default, this
will match any character but the slash ('/').
It's possible to control the placeholder type, either by:
-
using a named type:
alnum
,digit
,alpha
,path
(matches everything),any
(matches everything, including empty string),string
(default):path/to/{var:digit} path/to/{var:string} # Same as path/to/{var}
-
using a normal regex (slower; also note that regex containing curly braces is not yet supported)
path/to/{var:\d\d\d}
Placeholders can appear anywhere in the path
path/to/file.{ext}
path/to/{name}.{ext}
Building from source
pip install cython
make compile
python setup.py develop
Tests
make test
Benchmark
See Benchmark for more details.
Acknowledgements
This package has been first made as a Cython port of the R3 C router. See also python-r3, which was a first attempt to wrap R3. I was unhappy with the stability, and more curious about Cython, so I tried to make a first POC port, and was happy with it.
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
File details
Details for the file autoroutes-0.3.6.tar.gz
.
File metadata
- Download URL: autoroutes-0.3.6.tar.gz
- Upload date:
- Size: 119.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8df0e02bd7a4183b9f793da5ed543368eb19bb340f597c002c01e988f061b76d |
|
MD5 | f28fa967f52760b654e34af5a8604b36 |
|
BLAKE2b-256 | 79b687c38d78091796f789f950bfa93e0d0f25bd1770087aa9796a12bbf86800 |