Library to help developers to create filter for the sqlachemy orm.
Project description
Sqla-filters
Introduction
The purpose of this project is to set the basic class so that you can create a tree that will be then used to filter a request made with the SQLAlchemy ORM.
Currently, the elements provided are as Follows:
- the nodes (see: the table Below)
- the class SqlaFilterTree which contains the tree and allows to print it.
- the class BaseSqlaParser which serves as the basis if you create a parser that allows generating a tree.
This project is also for me a way to experience the namespace packages.
Installation
pip install sqla-filters
Operators
The following operators are or will be implemented:
support | operators | name | code |
---|---|---|---|
[x] | like | like | like() |
[x] | eq | equal | operators.eq |
[x] | not_eq | not equal | operators.ne |
[x] | null | null | is None |
[x] | not_null | not null | is not None |
[x] | gt | greater than | operators.gt |
[x] | gte | greater than or equal | operators.ge |
[x] | lt | lower than | operators.lt |
[x] | lte | lower than or equal | operators.le |
[x] | in | in | in_() |
[x] | not_in | not in | ~.in_() |
[x] | contains | contains | operators.contains |
Tree
This is an example of what a tree looks like.
+----------------------+
| |
| and |
| |
-----------------------+
||
||
||
+----------------------+ || +----------------------+
| | || | |
| or <------------> age == 21 |
| | | |
+----------------------+ +----------------------+
||
||
||
+----------------------+ || +----------------------+
| | || | |
| name == toto <----------------> name == tata |
| | | |
+----------------------+ +----------------------+
Contribute
You can contribute to the project using different ways.
1 | Classical
Fork the repository and run the following command to install the dependencies and the dev dependencies.
pip install -e '.[dev]'
Pipenv Pipefile
is also available if needed.
2 | Using namespace features
If you want to contribute using the namespace features it's really simple. First create your own project and use the following directories structure.
ProjectFolder
|______src
|______sqla_filters
|______parser
This is an example to create new parser.
You can find example with the following repositories:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sqla_filters-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf49535b8a46a5ab8cf364984c437c136e788c48d112668c7a52f360b828f26a |
|
MD5 | 071ca4ae38f74b4804fbad1cd57b1b23 |
|
BLAKE2b-256 | 15badde7cadf267add75f765633737fb5b3976744433733231450b2203dfe1b0 |