A small list/dict DSL for field filter specific designed for RESTful API partial response.
Project description
https://github.com/kudo/collection-filter
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 |
Copyright and License
Copyright 2015, Kudo Chien
Licensed under a MIT license.
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
File details
Details for the file collection-filter-0.5.tar.gz.
File metadata
- Download URL: collection-filter-0.5.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5908cdd4db3efe3003eda0ee8c63f9f4d2b58ba7d69c163db442814f6bca99bd
|
|
| MD5 |
e28286f1d4b2bf96b1eae678d57262de
|
|
| BLAKE2b-256 |
e708c6734aba73e246929374d7b82f948de9ae3227403b9a69b27e2ba50ebc30
|