Last updated:
0 purchases
autoroutes 0.3.7
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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.