Metadata-Version: 2.1
Name: dictknife
Version: 0.14.1
Summary: utility set of handling dict
Home-page: https://github.com/podhmo/dictknife
Author: podhmo
Author-email: ababjam61@gmail.com
Keywords: dict,dict-handling
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: testing
Requires-Dist: ruamel.yaml; extra == "testing"
Requires-Dist: jsonpatch; extra == "testing"
Provides-Extra: lint
Requires-Dist: flake8; extra == "lint"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: recommonmark; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Provides-Extra: load
Requires-Dist: ruamel.yaml; extra == "load"
Requires-Dist: tomlkit; extra == "load"
Provides-Extra: command
Requires-Dist: ruamel.yaml; extra == "command"
Requires-Dist: magicalimport; extra == "command"
Requires-Dist: prestring; extra == "command"
Provides-Extra: spreadsheet
Requires-Dist: google-api-python-client; extra == "spreadsheet"
Requires-Dist: google-auth-oauthlib; extra == "spreadsheet"

# 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]`)
