[![Build Status](https://img.shields.io/travis/juanyque/jsonmask_ng/master.svg)](https://travis-ci.org/juanyque/jsonmask_ng) [![Coverage Status](https://img.shields.io/coveralls/juanyque/jsonmask_ng/master.svg)](https://coveralls.io/r/juanyque/jsonmask_ng) [![PyPI Version](https://img.shields.io/pypi/v/jsonmask_ng.svg)](https://pypi.org/project/jsonmask_ng)
# Overview
Implements [Google Partial Response](https://developers.google.com/discovery/v1/performance#partial-response) / [`json-mask`](https://github.com/nemtsov/json-mask) in Python.
jsonmask_ng is a fork of [jsonmask](https://github.com/zapier/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:
```sh
$ pip install jsonmask_ng
```
or directly from the source code:
```sh
$ git clone https://github.com/juanyque/jsonmask_ng.git
$ cd jsonmask_ng
$ python setup.py install
```
# Usage
After installation, the package can imported:
```sh
$ python
>>> import jsonmask_ng
>>> jsonmask_ng.__version__
```
To prune dictionaries:
```py
>>> 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:
```py
{
'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 a `make 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 do `make all` to update packages on virtualenv
Raw data
{
"_id": null,
"home_page": "https://github.com/juanyque/jsonmask_ng",
"name": "jsonmask-ng",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<3.12",
"maintainer_email": "",
"keywords": "jsonmask_ng,jsonmask,json,google partial response",
"author": "Juan Garcia Longaron",
"author_email": "juan.mobilife@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/1d/f4/d584a285cfff7d8a696cab9322f835a2cb43c1289e1a4bb6480dfef703e7/jsonmask_ng-0.4.4.tar.gz",
"platform": null,
"description": "[![Build Status](https://img.shields.io/travis/juanyque/jsonmask_ng/master.svg)](https://travis-ci.org/juanyque/jsonmask_ng) [![Coverage Status](https://img.shields.io/coveralls/juanyque/jsonmask_ng/master.svg)](https://coveralls.io/r/juanyque/jsonmask_ng) [![PyPI Version](https://img.shields.io/pypi/v/jsonmask_ng.svg)](https://pypi.org/project/jsonmask_ng)\n\n# Overview\n\nImplements [Google Partial Response](https://developers.google.com/discovery/v1/performance#partial-response) / [`json-mask`](https://github.com/nemtsov/json-mask) in Python.\n\njsonmask_ng is a fork of [jsonmask](https://github.com/zapier/jsonmask) from Zapier that seems discontinued.\n\n## Requirements\n\n- Python 3.7\n- Python 3.8\n- Python 3.9\n- Python 3.10\n- Python 3.11\n\n## Installation\n\nInstall jsonmask_ng with pip:\n\n```sh\n$ pip install jsonmask_ng\n```\n\nor directly from the source code:\n\n```sh\n$ git clone https://github.com/juanyque/jsonmask_ng.git\n$ cd jsonmask_ng\n$ python setup.py install\n```\n\n# Usage\n\nAfter installation, the package can imported:\n\n```sh\n$ python\n>>> import jsonmask_ng\n>>> jsonmask_ng.__version__\n```\n\nTo prune dictionaries:\n\n```py\n>>> import jsonmask_ng\n>>> mask = jsonmask_ng.parse_fields('a,b(c,d)')\n>>> jsonmask_ng.apply_json_mask(\n {\n 'a': {\n 'nested_within_a': True,\n },\n 'b': {\n 'c': True,\n 'd': {'Will get included?': 'Yes'},\n 'e': 'Tough luck here',\n },\n 'c': 'Definitely hopeless',\n },\n mask,\n)\n```\n\nOutput:\n\n```py\n{\n 'a': {\n 'nested_within_a': True,\n },\n 'b': {\n 'c': True,\n 'd': {'Will get included?': 'Yes'},\n },\n}\n```\n\n## Contribute\n\nTo setup an appropriate dev environment:\n\n- With docker environment available\n- run: `./docker_start.sh``\n\n- run tests `make test`\n\n- Clean (test, cache, ...) `make clean`\n\n- Clean (test, cache, ... including virtualenv) `make clean-all` (you will need a `make all` after this)\n\n- Build dist package: `make build`\n\n- 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/)\n\n- Build dist package: `make upload`\n\n### Util commands:\n\n- To fix poetry.lock with minimal changes: `poetry lock --no-update`\n- To fix poetry.lock updating package versions: `poetry lock` (this could don't work)\n- After `poetry lock...` probably you will need to do `make all` to update packages on virtualenv\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Implements the Google Partial Response protocol in Python",
"version": "0.4.4",
"project_urls": {
"Documentation": "https://github.com/juanyque/jsonmask_ng/blob/master/README.md",
"Homepage": "https://github.com/juanyque/jsonmask_ng",
"Repository": "https://github.com/juanyque/jsonmask_ng"
},
"split_keywords": [
"jsonmask_ng",
"jsonmask",
"json",
"google partial response"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9d02e56edc97b49322ca5707c442b3906481ca4c063dbdcc1aa621365efc7886",
"md5": "741cd22cca221604a9a5deb2621ddf82",
"sha256": "90b553b72164369357a2050b292312ceabf61d134f28fc8c67274566e9a8a1ba"
},
"downloads": -1,
"filename": "jsonmask_ng-0.4.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "741cd22cca221604a9a5deb2621ddf82",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<3.12",
"size": 8811,
"upload_time": "2023-08-31T18:24:56",
"upload_time_iso_8601": "2023-08-31T18:24:56.954791Z",
"url": "https://files.pythonhosted.org/packages/9d/02/e56edc97b49322ca5707c442b3906481ca4c063dbdcc1aa621365efc7886/jsonmask_ng-0.4.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1df4d584a285cfff7d8a696cab9322f835a2cb43c1289e1a4bb6480dfef703e7",
"md5": "9fc09807cb41326fab05fffa7a9b0166",
"sha256": "0c859bb7227c2384c9371d0daf61a20f3a03c2866758be375682c3f3b832eeb2"
},
"downloads": -1,
"filename": "jsonmask_ng-0.4.4.tar.gz",
"has_sig": false,
"md5_digest": "9fc09807cb41326fab05fffa7a9b0166",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<3.12",
"size": 8148,
"upload_time": "2023-08-31T18:24:58",
"upload_time_iso_8601": "2023-08-31T18:24:58.503783Z",
"url": "https://files.pythonhosted.org/packages/1d/f4/d584a285cfff7d8a696cab9322f835a2cb43c1289e1a4bb6480dfef703e7/jsonmask_ng-0.4.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-31 18:24:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "juanyque",
"github_project": "jsonmask_ng",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"requirements": [],
"lcname": "jsonmask-ng"
}