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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file squall_router-0.2.1.tar.gz.
File metadata
- Download URL: squall_router-0.2.1.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
626b8b04e23cd64a72e490d19762d84689089be72ae30386c71286e78460a78f
|
|
| MD5 |
711bfb2bdd126f99670b4b487724ebd1
|
|
| BLAKE2b-256 |
d7b5e4cf6951822be2a630ba603d6d47fd57709c2596e603f598fadf6c3aa929
|
File details
Details for the file squall_router-0.2.1-cp310-none-win_amd64.whl.
File metadata
- Download URL: squall_router-0.2.1-cp310-none-win_amd64.whl
- Upload date:
- Size: 515.5 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0de45ce461c561a237a99f22f3534b1741c49d6be29b2e2314a075d269cbd838
|
|
| MD5 |
3ed01d52eeea2ccc2bc5a9df05dd1bd2
|
|
| BLAKE2b-256 |
2b1919e90ec842e38a62cc7e3d8c641d2ee09fe2b37df9e4a09ec6881806358b
|
File details
Details for the file squall_router-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl.
File metadata
- Download URL: squall_router-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e34a0f5185ca08fa6142cf1c31944a463a1cc2fae7f997a5813fa6199f8baab0
|
|
| MD5 |
013b29d2b94bdb56f10340d72b54d4a4
|
|
| BLAKE2b-256 |
25bf41b4203171070d4746825455886074371c01ac898d5c5c3991f4693358c8
|
File details
Details for the file squall_router-0.2.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.
File metadata
- Download URL: squall_router-0.2.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b69c87457d30e4e4228a68c1b0a4d7573b98656c1c1faa8418957b2b2a8502f
|
|
| MD5 |
6588052c5b6556f98ed10861865aeb32
|
|
| BLAKE2b-256 |
2490c307e57deb8e95bab9c11725050ad1eaa920a0d2386299c193a3c2cb88c1
|
File details
Details for the file squall_router-0.2.1-cp39-none-win_amd64.whl.
File metadata
- Download URL: squall_router-0.2.1-cp39-none-win_amd64.whl
- Upload date:
- Size: 515.8 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
987759329757398098153ea5969e264a0fc3a85ae8e7b9a6a7eeac02a636e46b
|
|
| MD5 |
12920263de75204d2f45387bba29cc4b
|
|
| BLAKE2b-256 |
3698f81da2f04b13b50decfb7c12242576e070fb9b7f46c83b1269843061a7c9
|
File details
Details for the file squall_router-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.
File metadata
- Download URL: squall_router-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.9, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c65df804b93ef210f483336574c567bbb3954bf88d9a3a6bfea2740008dfb05d
|
|
| MD5 |
5e3c2d1614c64f536f6588e595d8581e
|
|
| BLAKE2b-256 |
3b258cdf06158f6ba2c6f0a86dbec85e1f53dc3eeec087a78f55fecbd353c897
|
File details
Details for the file squall_router-0.2.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.
File metadata
- Download URL: squall_router-0.2.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdb42a71dfe96c4211229a35bc7d9f82a3ee1115b019e890c1219b000c3e757
|
|
| MD5 |
f4eca5cb407448a7582185b4114c3f9b
|
|
| BLAKE2b-256 |
775341b3700474c802d732153ec3cb337508aa502d7aad68b6cde3a23ae1dae9
|