[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#845561: ITP: pyaml -- module to produce pretty and readable YAML-serialized data



Package: wnpp
Severity: wishlist
Owner: Sascha Steinbiss <satta@debian.org>

* Package name    : pyaml
  Version         : 16.11.4
  Upstream Author : Mike Kazantsev
* URL             : https://github.com/mk-fg/pretty-yaml
* License         : WTFPL-2
  Programming Lang: Python
  Description     : module to produce pretty and readable YAML-serialized data

YAML is generally nice and easy format to read if it was written by humans.
PyYAML (python-yaml in Debian) can a do fairly decent job of making stuff
readable. pyaml (pretty-yaml) tries to improve on that a bit, with the
following tweaks:

 - Most human-friendly representation options in PyYAML get picked as
   defaults.
 - Does not dump "null" values, if possible, replacing these with just empty
   strings, which have the same meaning but reduce visual clutter and are
   easier to edit.
 - Dicts, sets, OrderedDicts, defaultdicts, namedtuples, etc are
   representable and get sorted on output (OrderedDicts and namedtuples keep
   their ordering), so that output would be as diff-friendly as possible,
   and not arbitrarily depend on Python internals.
 - It appears that at least recent PyYAML versions also do such sorting for
   Python dicts.
 - List items get indented, as they should be.
 - bytestrings that can't be auto-converted to unicode raise error, as yaml
   has no "binary bytes" (i.e. unix strings) type.
 - Attempt is made to pick more readable string representation styles,
   depending on the value.
 - "force_embed" option to avoid having &id stuff scattered all over the
   output (which might be beneficial in some cases, hence the option).
 - "&id" anchors, if used, get labels from the keys they get attached to, not
   just use meaningless enumerators.
 - "string_val_style" option to only apply to strings that are values, not
   keys.
 - Has an option to add vertical spacing (empty lines) between keys on
   different depths, to make output much more seekable.


Reply to: