Overview
Implements Google Partial Response / json-mask
in Python.
jsonmask_ng is a fork of jsonmask from Zapier that seems discontinued.
Requirements
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
- Python 3.11
Installation
Install jsonmask_ng with pip:
$ pip install jsonmask_ng
or directly from the source code:
$ git clone https://github.com/juanyque/jsonmask_ng.git
$ cd jsonmask_ng
$ python setup.py install
Usage
After installation, the package can imported:
$ python
>>> import jsonmask_ng
>>> jsonmask_ng.__version__
To prune dictionaries:
>>> import jsonmask_ng
>>> mask = jsonmask_ng.parse_fields('a,b(c,d)')
>>> jsonmask_ng.apply_json_mask(
{
'a': {
'nested_within_a': True,
},
'b': {
'c': True,
'd': {'Will get included?': 'Yes'},
'e': 'Tough luck here',
},
'c': 'Definitely hopeless',
},
mask,
)
Output:
{
'a': {
'nested_within_a': True,
},
'b': {
'c': True,
'd': {'Will get included?': 'Yes'},
},
}
Contribute
To setup an appropriate dev environment:
-
With docker environment available
-
run: `./docker_start.sh``
-
run tests
make test
-
Clean (test, cache, ...)
make clean
-
Clean (test, cache, ... including virtualenv)
make clean-all
(you will need amake all
after this) -
Build dist package:
make build
-
Set PyPI credentials:
poetry config pypi-token.pypi pypi-xxxxxTOKENXxxx
(find token in~/.pypirc
file or create a new one on https://pypi.org/manage/account/token/) -
Build dist package:
make upload
Util commands:
- To fix poetry.lock with minimal changes:
poetry lock --no-update
- To fix poetry.lock updating package versions:
poetry lock
(this could don't work) - After
poetry lock...
probably you will need to domake all
to update packages on virtualenv