Skip to main content

Fast Params

Support Rails style QueryParams and FormData for Starlette and FastAPI.

you can also used it in other frameworks, if your params or forms follow this protocol.

@runtime_checkable
class MultiDict(Protocol):
    def multi_items(self) -> list[tuple[str, Any]]: ...

Install

pip install fast-params

Usage

from fast_params import ParamParser
from starlette.datastructures import MultiDict

def test_parse_simple():
    parser = ParamParser()
    params = MultiDict({
        "a": 1,
        "b": 2
    })
    expect = {
        "a": 1,
        "b": 2
    }
    assert parser(params) == expect

def test_array():
    parser = ParamParser()
    params = MultiDict([
        ("a", 1),
        ("b[]", 2),
        ("c[d]", 3),
        ("c[f]", 4),
        ("f[d][]", 5),
        ("f[d][]", 6),
    ])
    expect = {
        "a": 1,
        "b": [2],
        "c": {
            "d": 3,
            "f": 4
        },
        "f": {
            "d": [5, 6]
        }
    }
    assert parser(params) == expect

Metadata

Release files for fast-params 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fast-params 0.1.1
File Size Uploaded
fast_params-0.1.1.tar.gz 2.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fast-params 0.1.1
File Interpreter ABI Platform
fast_params-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.7 kB

Release files / fast_params-0.1.1.tar.gz

Download URL fast_params-0.1.1.tar.gz
Size 2.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9842424abf76784f9378f57d83c68ff8f363fa97d37c920a9703e499b9e2ce94
BLAKE2b-256 checksum
How to use checksums
13af1c148bd3632e9617253314c54f367befee393928f945d44c99b08f7ef8b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Darwin/23.4.0

Release files / fast_params-0.1.1-py3-none-any.whl

Download URL fast_params-0.1.1-py3-none-any.whl
Size 2.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59c43a23a84cccca60b3ac470ce6113212fdcf50f46fd907eda61d1c0add5ab5
BLAKE2b-256 checksum
How to use checksums
31f20d971be54f12a2bcdb43593f94ab0f27d208ea0ad210b9b3b7ea2238e87a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.12.2 Darwin/23.4.0

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page