Skip to main content

No project description provided

Project description

Squall

Squall routing subsystem. Python binding for the Rust Squall router

License: MIT PyPi PyVersions

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, [])

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 details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

squall_router-0.2.1-cp310-none-win_amd64.whl (515.5 kB view details)

Uploaded CPython 3.10Windows x86-64

squall_router-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ x86-64

squall_router-0.2.1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

squall_router-0.2.1-cp39-none-win_amd64.whl (515.8 kB view details)

Uploaded CPython 3.9Windows x86-64

squall_router-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ x86-64

squall_router-0.2.1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

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

Hashes for squall_router-0.2.1.tar.gz
Algorithm Hash digest
SHA256 626b8b04e23cd64a72e490d19762d84689089be72ae30386c71286e78460a78f
MD5 711bfb2bdd126f99670b4b487724ebd1
BLAKE2b-256 d7b5e4cf6951822be2a630ba603d6d47fd57709c2596e603f598fadf6c3aa929

See more details on using hashes here.

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

Hashes for squall_router-0.2.1-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 0de45ce461c561a237a99f22f3534b1741c49d6be29b2e2314a075d269cbd838
MD5 3ed01d52eeea2ccc2bc5a9df05dd1bd2
BLAKE2b-256 2b1919e90ec842e38a62cc7e3d8c641d2ee09fe2b37df9e4a09ec6881806358b

See more details on using hashes here.

File details

Details for the file squall_router-0.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

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

File hashes

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

See more details on using hashes here.

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

Hashes for squall_router-0.2.1-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 987759329757398098153ea5969e264a0fc3a85ae8e7b9a6a7eeac02a636e46b
MD5 12920263de75204d2f45387bba29cc4b
BLAKE2b-256 3698f81da2f04b13b50decfb7c12242576e070fb9b7f46c83b1269843061a7c9

See more details on using hashes here.

File details

Details for the file squall_router-0.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

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

See more details on using hashes here.

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

File hashes

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

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page