No project description provided
Project description
Squall routing subsystem. Python binding for the Rust Squall router
Installation
pip3 install squall-router
Usage
from squall_router import Router
router = Router()
router.add_validator("int", r"^[0-9]+$")
router.add_validator("uuid", r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$")
router.add_route("GET", "/repo/{repo_name}", 0)
router.add_route("GET", "/user/{user_id:int}", 1)
router.add_route("GET", "/event/{event_id:uuid}", 2)
router.add_location("GET", "/static", 3)
assert router.resolve("GET", "/repo/squall") == (0, [("repo_name", "squall")])
assert router.resolve("GET", "/user/123") == (1, [("user_id", "123")])
assert router.resolve("GET", "/user/user") is None
event_id = "6d1a7b12-f2de-4ba7-b3c5-a4af3cab757d"
assert router.resolve("GET", f"/event/{event_id}") == (2, [("event_id", event_id)])
assert router.resolve("GET", f"/event/123432") is None
assert router.resolve("GET", f"/static/css/style.css") == (3, [])
Ignore trailing slashes mode
set_ignore_trailing_slashes
- Allows to put the router in a mode where all trailing slashes will be ignored on both, route registration and resolving stages
from squall_router import Router
router = Router()
router.set_ignore_trailing_slashes()
router.add_validator("int", r"^[0-9]+$")
router.add_validator("uuid", r"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$")
router.add_route("GET", "/repo/{repo_name}/", 0)
router.add_route("GET", "/user/{user_id:int}/", 1)
router.add_route("GET", "/event/{event_id:uuid}", 2)
router.add_location("GET", "/static", 3)
assert router.resolve("GET", "/repo/squall") == (0, [("repo_name", "squall")])
assert router.resolve("GET", "/user/123") == (1, [("user_id", "123")])
assert router.resolve("GET", "/user/user") is None
event_id = "6d1a7b12-f2de-4ba7-b3c5-a4af3cab757d"
assert router.resolve("GET", f"/event/{event_id}/") == (2, [("event_id", event_id)])
assert router.resolve("GET", f"/event/123432/") is None
assert router.resolve("GET", f"/static/css/style.css") == (3, [])
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
squall_router-0.2.0.tar.gz
(6.5 kB
view hashes)
Built Distributions
Close
Hashes for squall_router-0.2.0-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7cf45c0bdde40bb224e63aec70457cb6f0e527ae39cf38ce1c8f471b74a7413 |
|
MD5 | e3adb0c4fde039b7c0dc0593008b79f0 |
|
BLAKE2b-256 | 89acb35c397aea8ca17d431dbc35a076a71a6aa899a4d2e43b95550273013a3e |
Close
Hashes for squall_router-0.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e0b5e05ab0b874ae3d75c0149635baa4b0f6e7001486e66bdd3b10e922887bd |
|
MD5 | 7c48babb5703d6be5fb8345f77ccb106 |
|
BLAKE2b-256 | 576a3d4c2fbd37059011fdfc7333b92f8cd6d2f7f0a9db1c246ecb4b222d8a65 |
Close
Hashes for squall_router-0.2.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fc055953b9ff01d826eb7ac1c231e7700b093dfc606e1f2f3d3bd34d716ee03 |
|
MD5 | feed6daff1084129157e7f3e5c8c5003 |
|
BLAKE2b-256 | 3a64a7c9d6427ee264f78aae49996a7106398cb4ca502ea8a759d1114aa982cc |
Close
Hashes for squall_router-0.2.0-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e12f2ccf928e15e854cdefcf43825ca6f3cb5ca3efda41a61e54c1d76c50f5dd |
|
MD5 | ddee4335e441dd37e327e8752080db8e |
|
BLAKE2b-256 | f6025cea2d37977d3f963d3d26171fc1e3ecc63851442e888b57938de6973239 |
Close
Hashes for squall_router-0.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af7493a9f076332eea24c5df8875816c7040fce066c326a6c3172e0423c0e3fa |
|
MD5 | 05a14d07865792de28e640fb59f8d7fc |
|
BLAKE2b-256 | 891ae6315052c78cc04040ef84005dfeb5bed95ec21c17e2801c44ff1f0e1498 |
Close
Hashes for squall_router-0.2.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6a5f36470d0a07e3a1af12d80ac32f4e4c662e3cd54c21f6be75d71a46d82cc |
|
MD5 | 54bb4c97002005126f91304a7694a1a9 |
|
BLAKE2b-256 | 95c5e4c854c00e6f3bddacfc110d9ac440334ef33bbcce9a23ae40bd2333edff |