Boolean search expression parser for SQLAlchemy
Project description
Changes
This repo has diverged from the original fork. It includes expanded parsing rules; see 0.1.1 changes in the CHANGELOG. It has also been restructured as a standalone pypi package called marvin-sqlalchemy-boolean-search
, as its
primary use is for https://github.com/sdss/marvin. For a more general standalone package, see https://github.com/havok2063/boolean_parser, which rebuilds this repo functionality into a fully fledged python package.
This repo is maintained at https://github.com/havok2063/SQLAlchemy-boolean-search, with changes pushed occassionally.
SQLAlchemy-boolean-search
SQLAlchemy-boolean-search translates a boolean search string such as:
"field1=*something* and not (field2==1 or parent.field3<=10.0)"
into its corresponding SQLAlchemy query filter:
and_(DataModel.field1.ilike('%something%'),
not_(or_(DataModel.field2.__eq__(2),
DataModel.parent.field3.__le__(10.0))))
Relationship field names such as 'parent.grandparent.name' are accepted.
The code is stable, is used in production, and enjoys a test coverage of 100%.
Documentation
SQLAlchemy-boolean-search documentation
Authors
- Ling Thio - ling.thio [at] gmail.com
Acknowledgements
This project would not be possible without the use of the following amazing offerings:
Alternative modules
- SQLAlchemy-Searchable adds full text searching and relies on PostgreSQL vectors and triggers.
- sqlalchemy-elasticquery
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
File details
Details for the file marvin-sqlalchemy-boolean-search-0.2.2.tar.gz
.
File metadata
- Download URL: marvin-sqlalchemy-boolean-search-0.2.2.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/45.2.0.post20200209 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9d5718c49994b1ff8ce666b86e7ff010f8733f96c07b0484e544e0e94545683 |
|
MD5 | 4858ce67a21c5ffa9e1e68f8f4196957 |
|
BLAKE2b-256 | 8be48543cd5a537f0feaf79c12aa0efb4db8fd8b94a234cac374b9444c73adab |
File details
Details for the file marvin_sqlalchemy_boolean_search-0.2.2-py2.py3-none-any.whl
.
File metadata
- Download URL: marvin_sqlalchemy_boolean_search-0.2.2-py2.py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/45.2.0.post20200209 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c195a716cc4c2013a6dc49d2dcb219eb24e1bd96ade81c7e5650c20fcc528096 |
|
MD5 | 7e5b352a02854ebb486385aded9c0f96 |
|
BLAKE2b-256 | 7ab2839ae624e47a2bba1a50e7c77b182ddad96ff962443826f1319f1265ba61 |