帮助开发人员为sqlachemy orm创建筛选器的库。
sqla-filters的Python项目详细描述
sqla过滤器
简介
此项目的目的是设置基本类,以便您可以创建一个树,然后用于筛选使用sqlalchemy orm发出的请求。
目前,提供的元素如下:
- 节点(见下表)
- 类sqlafiltertree,它包含树并允许打印它。
- basesqlaparser类,如果创建允许生成树的解析器,则该类将作为基础。
这个项目也是我体验命名空间包的一种方式。
安装
pip install sqla-filters
运算符
正在或将要实现以下运算符:
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 |
树
这是一棵树的样子的例子。
+----------------------+
| |
| and |
| |
-----------------------+
||
||
||
+----------------------+ || +----------------------+
| | || | |
| or <------------> age == 21 |
| | | |
+----------------------+ +----------------------+
||
||
||
+----------------------+ || +----------------------+
| | || | |
| name == toto <----------------> name == tata |
| | | |
+----------------------+ +----------------------+
贡献
你可以用不同的方式为项目做贡献。
1经典
派生存储库并运行以下命令以安装依赖项和开发人员依赖项。
pip install -e '.[dev]'
如果需要,pipenvPipefile
也可用。
2使用命名空间功能
如果您想使用名称空间功能来贡献,那就非常简单。 首先创建自己的项目并使用以下目录结构。
ProjectFolder
|______src
|______sqla_filters
|______parser
这是一个创建新解析器的示例。
您可以在以下存储库中找到示例: