Skip to content

A Python Port of the Amazing Bodybuilder Package on NPM

License

Notifications You must be signed in to change notification settings

alexsanjoseph/bodybuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPI download total License License

bodybuilder

An (almost!) drop in replacement in python of the Elasticsearch Bodybuilder Package on NPM

The API has been designed to be as close to the original package.

Also, you can use https://bodybuilder.js.org/ to test your constructions with minor changes described below:

Variations

  • from -> from_ because from is a python keyword
  • need \ new-line indicator for multi line incantations in python which is not necessary in JS
  • individual Filter/Query/Aggregations classes not implemented (shouldn't affect user)
  • lambda functions instead of anonymous functions (Duh!)

Requirements

Python3.6+

Installation

Pip install

  1. pip3 install bodybuilder

Install from source

  1. Clone package locally
  2. Go to the root directory
  3. python3 setup.py install

Usage

from bodybuilder import BodyBuilder as bodyBuilder
bodyBuilder().query("a", "b", "c").build()
{'query': {'a': {'b': 'c'}}}

More examples can be found in the blog post here - https://blog.alexsanjoseph.com/posts/bodybuilder_intro/

Not Implemented

To be implemented

  • minimum_should_match query and filter
  • aggregation metadata

No plans to implement

  • Complicated multi sort
  • clone method (users can use copy.deepcopy() if required)
  • orQuery, andQuery, notQuery which has been deprecated n favor of bool method

Credits

Thanks to Danpaz and contributors of the original package for the original package from which I have liberally copied (with his permission!)

About

A Python Port of the Amazing Bodybuilder Package on NPM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages