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.1.tar.gz
(6.5 kB
view hashes)
Built Distributions
Close
Hashes for squall_router-0.2.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0de45ce461c561a237a99f22f3534b1741c49d6be29b2e2314a075d269cbd838 |
|
MD5 | 3ed01d52eeea2ccc2bc5a9df05dd1bd2 |
|
BLAKE2b-256 | 2b1919e90ec842e38a62cc7e3d8c641d2ee09fe2b37df9e4a09ec6881806358b |
Close
Hashes for squall_router-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e34a0f5185ca08fa6142cf1c31944a463a1cc2fae7f997a5813fa6199f8baab0 |
|
MD5 | 013b29d2b94bdb56f10340d72b54d4a4 |
|
BLAKE2b-256 | 25bf41b4203171070d4746825455886074371c01ac898d5c5c3991f4693358c8 |
Close
Hashes for squall_router-0.2.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b69c87457d30e4e4228a68c1b0a4d7573b98656c1c1faa8418957b2b2a8502f |
|
MD5 | 6588052c5b6556f98ed10861865aeb32 |
|
BLAKE2b-256 | 2490c307e57deb8e95bab9c11725050ad1eaa920a0d2386299c193a3c2cb88c1 |
Close
Hashes for squall_router-0.2.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 987759329757398098153ea5969e264a0fc3a85ae8e7b9a6a7eeac02a636e46b |
|
MD5 | 12920263de75204d2f45387bba29cc4b |
|
BLAKE2b-256 | 3698f81da2f04b13b50decfb7c12242576e070fb9b7f46c83b1269843061a7c9 |
Close
Hashes for squall_router-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c65df804b93ef210f483336574c567bbb3954bf88d9a3a6bfea2740008dfb05d |
|
MD5 | 5e3c2d1614c64f536f6588e595d8581e |
|
BLAKE2b-256 | 3b258cdf06158f6ba2c6f0a86dbec85e1f53dc3eeec087a78f55fecbd353c897 |
Close
Hashes for squall_router-0.2.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bdb42a71dfe96c4211229a35bc7d9f82a3ee1115b019e890c1219b000c3e757 |
|
MD5 | f4eca5cb407448a7582185b4114c3f9b |
|
BLAKE2b-256 | 775341b3700474c802d732153ec3cb337508aa502d7aad68b6cde3a23ae1dae9 |