Project: dictknife

utility set of handling dict

Project Details

Latest version
0.14.0
Home Page
https://github.com/podhmo/dictknife
PyPI Page
https://pypi.org/project/dictknife/

Project Popularity

PageRank
0.001890719479553127
Number of downloads
69524

dictknife Python package PyPi version Code style: black

p swiss army knife for handling dict.

install

$ pip install dictknife[load,command]

doc

http://dictknife.readthedocs.io

(:warning: this document is obsoleted)

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 '@' 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])