Skip to main content

Query pattern of containers of objects

Project description

SimpleQuery

query from containers of objects, in Python

Query pattern

The Query pattern uses criteria on classes and fields to retrieve value objects from a dataset. Those criteria are a field, an operator, and a value. For example, ('last_name', =, 'Fowler') or ('price', <, 100.00).

Installation

pip install simple-query

Usage

all() returns the matching objects for a query, and filter(*criteria) returns a new, filtered query, where criteria = field, operator, value.

For example:

from simple_query.query import Query
from operator import eq, gt, lt

people = [
    Person('Ada Lovelace'),
    Person('Grace Hopper'),
    Person('Jean Bartik')]

Query(people).all()
# [Person('Ada Lovelace'), Person('Grace Hopper'), Person('Jean Bartik')]

Query(people).filter('last_name', eq, 'Lovelace').all()
# [Person('Ada Lovelace')]

Query(people) \
    .filter('first_name', gt, 'B') \
    .filter('last_name', lt, 'C').all()
# [Person('Jean Bartik')]

Setting up development environment

It is always recommended to use a virtual environment for each Python appplication. Create the environment once, after cloning this repository to your machine.

python3 -m venv .env

For each terminal session going forward, work on the virtual environment and use its copy of python.

source .env/bin/activate

Upgrade pip

pip install -U pip

Install developer requirements for a nicer test runner (see Running Tests)

pip install -r requirements/dev.txt

Running tests

Tests are written in unittest syntax, so no additional package are needed to run them

python -m unittest discover

For a more informative output, as well as plugins for color and watch mode, use nose test runner. You can also use the test runner of your choice.

nosetests --rednose --with-watch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for simple-query, version 0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size simple_query-0.0.2-py3-none-any.whl (4.3 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size simple_query-0.0.2.tar.gz (2.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page