Metadata-Version: 2.1
Name: dictfilter
Version: 2.1
Summary: Filter dictionaries based on a list of field names.
Home-page: https://github.com/binkhq/dictfilter
Author: Chris Latham
Author-email: opensource@bink.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE

# dictfilter

## installation

```shell
pip install dictfilter
```

## usage

```python
from dictfilter import query

bsg = {
    'class': 'Battlestar',
    'model': 'Jupiter',
    'name': 'Galactica',
    'crew': {
        'commander': 'William Adama',
        'xo': 'Saul Tigh',
        'cag': 'Kara Thrace',
    }
}

result = query(bsg, ['class', 'name', 'crew.commander'])

# {
#     'class': 'Battlestar',
#     'name': 'Galactica',
#     'crew': {
#         'commander': 'William Adama',
#     }
# }
```

The default delimiter used in field names is dot `.` however this can be changed 
with the `delimiter` keyword argument to `query`:

```python
result = query(bsg, ['class', 'name', 'crew > commander'], delimiter=' > ')

# {
#     'class': 'Battlestar',
#     'name': 'Galactica',
#     'crew': {
#         'commander': 'William Adama',
#     }
# }
```

## django integration

Register the dictfilter middleware in `settings.py`:

```python
MIDDLEWARE = [
    ...
    'dictfilter.django.middleware.DictFilterMiddleware',
]
```

By default, every 2xx series response will be filtered based on a 
comma-separated `fields` parameter in the query string.


