Skip to main content

A small list/dict DSL for field filter specific designed for RESTful API partial response.

Project description

https://github.com/kudo/collection-filter

Build Status Unit Test Coverage

This library provides a DSL filter for list or dict data. It is original designed for RESTful API partial response. Tested with Python 2.6, 2.7.

Quick Start

To install, use pip:

$ pip install collection-filter

Then:

$ python

>>> from collection_filter import collection_filter

# Query a dict
>>> collection_filter({'foo': 1, 'bar': 2}, 'foo')
{'foo': 1}

# Query a dict with multiple elements (seperated by comma)
>>> collection_filter({'foo': 1, 'bar': 2}, 'foo,bar')
{'foo': 1, 'bar': 2}

# Query a dict deeply
>>> collection_filter({'foo': {'bar': 2, 'orange': 'sweet'}}, 'foo.bar')
{'foo': {'bar': 2}}

# Query a list
>>> collection_filter([{'foo': 1, 'bar': 2}, {'foo': 3, 'bar': 4}], '[].foo')
[{'foo': 1}, {'foo': 3}]

# list/dict combination example
>>> collection_filter({'foo': 'bar', 'aListOfDict': [{'foo': 1, 'bar': 2}], 'aListOfDict[].foo')
{'aListOfDict': [{'foo': 1}]}

Syntax

Currently support operators

Operator

Description

,

Multiple field query sperated by comma

[]

To indicate the data should be handled as list

.

Dot notation should follow with a symbol name which to specify a field in current dict data

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

collection-filter-0.5.tar.gz (3.7 kB view details)

Uploaded Source

File details

Details for the file collection-filter-0.5.tar.gz.

File metadata

File hashes

Hashes for collection-filter-0.5.tar.gz
Algorithm Hash digest
SHA256 5908cdd4db3efe3003eda0ee8c63f9f4d2b58ba7d69c163db442814f6bca99bd
MD5 e28286f1d4b2bf96b1eae678d57262de
BLAKE2b-256 e708c6734aba73e246929374d7b82f948de9ae3227403b9a69b27e2ba50ebc30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page