# dictknife ![Python package](https://github.com/podhmo/dictknife/workflows/Python%20package/badge.svg) [![PyPi version](https://img.shields.io/pypi/v/dictknife.svg)](https://pypi.python.org/pypi/dictknife) [![](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/download/releases/3.10.0/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://black.readthedocs.io/en/stable/)
swiss army knife for handling dict.
## install
```console
$ pip install dictknife[load,command]
```
## examples
see [./examples/dictknife](https://github.com/podhmo/dictknife/tree/master/examples/dictknife)
## doc
http://dictknife.readthedocs.io
(:warning: this document is obsoleted)
0.14.1
- fix bug `unexpected keyword argument loader` is occured when yaml library is not installed
0.14.0
- use tomlkit instead of qtoml
- use ruamel.yaml instead of pyyaml (for preserving comments)
- add `dictknife diff -o pair`
0.13.0
- loading, see envvar (DICTKNIFE_LOAD_FORMAT, DICTKNIFE_DUMP_FORMAT)
- omit oauth2client dependency, if spreadsheet's requires
0.12.0
- add dictknife.naming
- add builtin transform functions (snakecase_dict, camelcase_dict, kebabcase_dict, ...)
- rename function, dictknife.transform:normalize_dict -> dictknife.transform:str_dict
0.11.0
- add dictknife.accessing.Scope (#108)
- fix: fix accessing with list (#113)
- fix: fix maybe access (#112)
- add 2to3, but not complete implementation (#115)
- add jsonknife bundle, --flavour option (#133)
- add jsonknife separate (#137)
- use qtoml instead of toml (#156)
- fix: use pyyaml's sort_keys option, instead of custom implementation (#162)
0.10.2
- loading, adjustment yaml's output
0.10.1
- this is latest version of support 3.5
0.10.0
- drop 3.5 support
- adding swaggerknife merge command, (#100), (#86)
- jsonknife's bundle action support jsonreference (#94)
- jsonknife's bundler fix conflict automatically (#101), when primitive input
- dictknife's diff support jsonpatch's output
- dictknife's shape output using jsonpointer (#88)
- loading, Yaml include hash (#105), quoted output, as default
- (fix) swaggerknife, tojsonschema json2swagger (#96)
- (refactor) jsonknife lazy import (#95)
- (WIP) initial work for open api3.0 (#103)
0.9.0
- bundle, prevent infinite recursion
- dictknife cat, extra arguments
- drop line cat
- modification
- transform
- dictknife mkdict, new command
- dictknife cat, fix --size option
- dictknife cat, support spreadsheet(extra)
0.8.2
- fix bug of dictknife diff, broken output is appeared, when input file is csv
- fix bug of dictknife diff, 0 is not treated as empty
0.8.1
- suport markdown table format
- support dictknife diff with --output (default is diff)
0.8.0
- adding dictknife diff --output-format dict option
- support loading markdown table format
0.7.6
- dictknife rename command concat -> cat
- dictknife linecat command is deprecated
- dictknife fake yaml module is broken when loading file
- dictknife support stdin input
- dictknife add --size option for dictknife.cat
- dictknife add --quiet option
0.7.5
- add `errors` and `ignore` options, in loading.loadfile
- when PyYAML is not installed, then, using fake yaml module(actually this is json module)
0.7.2
- add `-sort-keys` option
- shape command
0.7.0
- support loading csv and tsv
- rename iterate() to walk() of DictWalker
0.6.0
- drop click
- many short options (e.g. -o for --output-format)
- drop legacy LooseDictWalker and dictknife.chain
- simply for lazy loading module, in dictknife.loading
0.5.0
- lazy loading for loading data (e.g. yaml, toml)
- dictknife linecat command
- short error message
- dictknife diff support array
0.4.7
- loading via envvar with white list
- jsonknife deref with --unwrap,--wrap option and --ref supports '<unwrap>@<wrap>' expression
- jsonknife bundle generating ordered output
0.4.5
- dictknife cat with list JSON
- omitting deprecated commands (extract, lift)
0.4.4
- adjusting commands options
- changing yaml's multine line string format
0.4.3
- raw format
0.4.2
- deepmerge with override option
- toml support
- jsonknife cut command
0.4.1
- some commands have format option
- some fixes
0.3
- command extras `pip install dictknife[command]`
- adding dictknife-concat command
- adding dictknife-transform command
- adding dictknife-diff command
0.2
- external iterator is recommened. (using LooseDictWalkingIterator instead of LooseDictWalker)
0.1
- yaml/json load extras (`pip install dictknife[load]`)
Raw data
{
"_id": null,
"home_page": "https://github.com/podhmo/dictknife",
"name": "dictknife",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "dict,dict-handling",
"author": "podhmo",
"author_email": "ababjam61@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/5c/53/9a32ae446ef0a8360489e185dcbb1003a6c24970733321a5b5d67467bbcf/dictknife-0.14.1.tar.gz",
"platform": null,
"description": "# dictknife ![Python package](https://github.com/podhmo/dictknife/workflows/Python%20package/badge.svg) [![PyPi version](https://img.shields.io/pypi/v/dictknife.svg)](https://pypi.python.org/pypi/dictknife) [![](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/download/releases/3.10.0/) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://black.readthedocs.io/en/stable/)\n\nswiss army knife for handling dict.\n\n## install\n\n```console\n$ pip install dictknife[load,command]\n```\n\n## examples\n\nsee [./examples/dictknife](https://github.com/podhmo/dictknife/tree/master/examples/dictknife)\n\n## doc\n\nhttp://dictknife.readthedocs.io\n\n(:warning: this document is obsoleted)\n\n\n0.14.1\n\n- fix bug `unexpected keyword argument loader` is occured when yaml library is not installed\n\n0.14.0\n\n- use tomlkit instead of qtoml\n- use ruamel.yaml instead of pyyaml (for preserving comments)\n- add `dictknife diff -o pair`\n\n0.13.0\n\n- loading, see envvar (DICTKNIFE_LOAD_FORMAT, DICTKNIFE_DUMP_FORMAT)\n- omit oauth2client dependency, if spreadsheet's requires\n\n0.12.0\n\n- add dictknife.naming\n- add builtin transform functions (snakecase_dict, camelcase_dict, kebabcase_dict, ...)\n- rename function, dictknife.transform:normalize_dict -> dictknife.transform:str_dict\n\n0.11.0\n\n- add dictknife.accessing.Scope (#108)\n- fix: fix accessing with list (#113)\n- fix: fix maybe access (#112)\n- add 2to3, but not complete implementation (#115)\n- add jsonknife bundle, --flavour option (#133)\n- add jsonknife separate (#137)\n- use qtoml instead of toml (#156)\n- fix: use pyyaml's sort_keys option, instead of custom implementation (#162)\n\n0.10.2\n\n- loading, adjustment yaml's output\n\n0.10.1\n\n- this is latest version of support 3.5\n\n0.10.0\n\n- drop 3.5 support\n- adding swaggerknife merge command, (#100), (#86)\n- jsonknife's bundle action support jsonreference (#94)\n- jsonknife's bundler fix conflict automatically (#101), when primitive input\n- dictknife's diff support jsonpatch's output\n- dictknife's shape output using jsonpointer (#88)\n- loading, Yaml include hash (#105), quoted output, as default\n- (fix) swaggerknife, tojsonschema json2swagger (#96)\n- (refactor) jsonknife lazy import (#95)\n- (WIP) initial work for open api3.0 (#103)\n\n0.9.0\n\n- bundle, prevent infinite recursion\n- dictknife cat, extra arguments\n- drop line cat\n- modification\n- transform\n- dictknife mkdict, new command\n- dictknife cat, fix --size option\n- dictknife cat, support spreadsheet(extra)\n\n0.8.2\n\n- fix bug of dictknife diff, broken output is appeared, when input file is csv\n- fix bug of dictknife diff, 0 is not treated as empty\n\n0.8.1\n\n- suport markdown table format\n- support dictknife diff with --output (default is diff)\n\n0.8.0\n\n- adding dictknife diff --output-format dict option\n- support loading markdown table format\n\n0.7.6\n\n- dictknife rename command concat -> cat\n- dictknife linecat command is deprecated\n- dictknife fake yaml module is broken when loading file\n- dictknife support stdin input\n- dictknife add --size option for dictknife.cat\n- dictknife add --quiet option\n\n0.7.5\n\n- add `errors` and `ignore` options, in loading.loadfile\n- when PyYAML is not installed, then, using fake yaml module(actually this is json module)\n\n0.7.2\n\n- add `-sort-keys` option\n- shape command\n\n0.7.0\n\n- support loading csv and tsv\n- rename iterate() to walk() of DictWalker\n\n0.6.0\n\n- drop click\n- many short options (e.g. -o for --output-format)\n- drop legacy LooseDictWalker and dictknife.chain\n- simply for lazy loading module, in dictknife.loading\n\n0.5.0\n\n- lazy loading for loading data (e.g. yaml, toml)\n- dictknife linecat command\n- short error message\n- dictknife diff support array\n\n0.4.7\n\n- loading via envvar with white list\n- jsonknife deref with --unwrap,--wrap option and --ref supports '<unwrap>@<wrap>' expression\n- jsonknife bundle generating ordered output\n\n0.4.5\n\n- dictknife cat with list JSON\n- omitting deprecated commands (extract, lift)\n\n0.4.4\n\n- adjusting commands options\n- changing yaml's multine line string format\n\n0.4.3\n\n- raw format\n\n0.4.2\n\n- deepmerge with override option\n- toml support\n- jsonknife cut command\n\n0.4.1\n\n- some commands have format option\n- some fixes\n\n0.3\n\n- command extras `pip install dictknife[command]`\n- adding dictknife-concat command\n- adding dictknife-transform command\n- adding dictknife-diff command\n\n\n0.2\n\n- external iterator is recommened. (using LooseDictWalkingIterator instead of LooseDictWalker)\n\n0.1\n\n- yaml/json load extras (`pip install dictknife[load]`)\n",
"bugtrack_url": null,
"license": "",
"summary": "utility set of handling dict",
"version": "0.14.1",
"project_urls": {
"Homepage": "https://github.com/podhmo/dictknife"
},
"split_keywords": [
"dict",
"dict-handling"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6d3a35ab3b11ce22609d1d54285dc3a30e07a780fb165ecb67ebc9e1520a0b2",
"md5": "d20a73b422cd56f971e2e6889aa0390f",
"sha256": "39a2105174a47b9e00ed355a73eea7908c2867620dc7ba1530bdf252f080d3d1"
},
"downloads": -1,
"filename": "dictknife-0.14.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d20a73b422cd56f971e2e6889aa0390f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 70023,
"upload_time": "2024-03-05T09:35:14",
"upload_time_iso_8601": "2024-03-05T09:35:14.272630Z",
"url": "https://files.pythonhosted.org/packages/b6/d3/a35ab3b11ce22609d1d54285dc3a30e07a780fb165ecb67ebc9e1520a0b2/dictknife-0.14.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5c539a32ae446ef0a8360489e185dcbb1003a6c24970733321a5b5d67467bbcf",
"md5": "bedcf54943fadbc2cf8f9a9431069046",
"sha256": "b5cd766335f105a7cfbf902eb31db603c41ddd870fe5a030e2f987de8a54b24d"
},
"downloads": -1,
"filename": "dictknife-0.14.1.tar.gz",
"has_sig": false,
"md5_digest": "bedcf54943fadbc2cf8f9a9431069046",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 53820,
"upload_time": "2024-03-05T09:35:07",
"upload_time_iso_8601": "2024-03-05T09:35:07.200195Z",
"url": "https://files.pythonhosted.org/packages/5c/53/9a32ae446ef0a8360489e185dcbb1003a6c24970733321a5b5d67467bbcf/dictknife-0.14.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-05 09:35:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "podhmo",
"github_project": "dictknife",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dictknife"
}