Skip to main content

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

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

Built Distribution

marvin_sqlalchemy_boolean_search-0.2.2-py2.py3-none-any.whl (9.2 kB view details)

Uploaded Python 2 Python 3

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

Hashes for marvin-sqlalchemy-boolean-search-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c9d5718c49994b1ff8ce666b86e7ff010f8733f96c07b0484e544e0e94545683
MD5 4858ce67a21c5ffa9e1e68f8f4196957
BLAKE2b-256 8be48543cd5a537f0feaf79c12aa0efb4db8fd8b94a234cac374b9444c73adab

See more details on using hashes here.

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

Hashes for marvin_sqlalchemy_boolean_search-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c195a716cc4c2013a6dc49d2dcb219eb24e1bd96ade81c7e5650c20fcc528096
MD5 7e5b352a02854ebb486385aded9c0f96
BLAKE2b-256 7ab2839ae624e47a2bba1a50e7c77b182ddad96ff962443826f1319f1265ba61

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