Skip to main content

SQLAlchemy filter converters.

Project description

SQLAlchemy filter converter

coverage

For what?

I made this package to use filters from query parameters in my applications.

Install

To install the package you need you run the following commands.

For pip:

pip install "sqlalchemy_filter_converter"

For poetry:

poetry add sqlalchemy_filter_converter

For PDM:

pdm add sqlalchemy_filter_converter

Filter Types

Converters for SQLAlchemy filters. Now available 3 converters:

  1. Simple filter converter (key-value with equals operator).
  2. Advanced filter converter (key-value with custom operators).
  3. Django filter converter (Django filters adapter with double underscore lookups).

Filters must be provided in a dict or list or dicts and will be applied sequentially.

Simple filters

Simple filters are simle. There are key - value dicts, which converts to SQLAlchemy filters with == operator.

You can use one dict with all filters, or list of dicts. There is no difference.

from sqlalchemy_filter_converter import SimpleFilterConverter

filter_spec = [
    {'field_name_1': 123, 'field_name_2': 'value'},
    {'other_name_1': 'other_value', 'other_name_2': 123},
    # ...
]

No other specific usages presents. it is simple.

Advanced filters

Advanced filters continues the idea of simple-filter, but add operator key.

{
    "field": "my_field",
    "value": 25,
    "operator": ">",
}

or

[
    {
        "field": "my_id_field",
        "value": [1,2,3,4,5],
        "operator": "contains",
    },
    {
        "field": "my_bool_field",
        "value": False,
        "operator": "is_not",
    },
]

This is the list of operators that can be used:

  • =
  • >
  • <
  • >'
  • <=
  • is
  • is_not
  • between
  • contains

Django filters

Django filters implements django ORM adapter for filters. You can use filters like my_field__iexact=25 or my_dt_field__date__ge=datetime.date(2023, 3, 12). See django documentation for more information.

Now implements all field filters, except nester relationships.

This is the list of operators that can be used:

  • exact
  • iexact
  • contains
  • icontains
  • in
  • gt
  • gte
  • lt
  • lte
  • startswith
  • istartswith
  • endswith
  • iendswith
  • range
  • date
  • year
  • iso_year
  • month
  • day
  • week
  • week_day
  • iso_week_day
  • quarter
  • time
  • hour
  • minute
  • second
  • isnull
  • regex
  • iregex

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

sqlalchemy_filter_converter-1.4.0.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file sqlalchemy_filter_converter-1.4.0.tar.gz.

File metadata

  • Download URL: sqlalchemy_filter_converter-1.4.0.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.20.0.post1 CPython/3.12.7 Linux/6.11.5-arch1-1

File hashes

Hashes for sqlalchemy_filter_converter-1.4.0.tar.gz
Algorithm Hash digest
SHA256 274fdc7fb8ddde701e9694389cace9249be7ed9a302899c2265a143319f115a3
MD5 fa632265ab1cbf940839281898a25699
BLAKE2b-256 e08809d4dd19a47f298cfa0e2f7b8f944c2d04ce6a4188ad434fafc81cd0a868

See more details on using hashes here.

File details

Details for the file sqlalchemy_filter_converter-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlalchemy_filter_converter-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8b121b0959d0b664a4e48809ee169a840949866bf637554add9ff2496a05ef2
MD5 0108a9597e30baac15c68242022e2722
BLAKE2b-256 8b9b0dec658c1cbcc9e105c4bac0c470f8e9d460a599660eca620a6420dbcb7d

See more details on using hashes here.

Supported by

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