Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/pyaml-20.4.0.dist-info/METADATA @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/pyaml-20.4.0.dist-info/METADATA Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,337 @@ +Metadata-Version: 2.1 +Name: pyaml +Version: 20.4.0 +Summary: PyYAML-based module to produce pretty and readable YAML-serialized data +Home-page: https://github.com/mk-fg/pretty-yaml +Author: Mike Kazantsev +Author-email: mk.fraggod@gmail.com +License: WTFPL +Keywords: yaml serialization pretty print format human readable readability +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Topic :: Software Development +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Dist: PyYAML + +pretty-yaml (or pyaml) +====================== + +PyYAML-based python module to produce pretty and readable YAML-serialized data. + +This module is for serialization only, see `ruamel.yaml`_ module for literate +YAML parsing (keeping track of comments, spacing, line/column numbers of values, etc). + +[note: to dump stuff parsed by ruamel.yaml with this module, use only ``YAML(typ='safe')`` there] + +.. contents:: + :backlinks: none + + +Warning +------- + +Prime goal of this module is to produce human-readable output that can be easily +manipulated and re-used, but maybe with some occasional caveats. + +One good example of such "caveat" is that e.g. ``{'foo': '123'}`` will serialize +to ``foo: 123``, which for PyYAML would be a bug, as 123 will then be read back +as an integer from that, but here it's a feature. + +So please do not rely on the thing to produce output that can always be +deserialized exactly to what was exported, at least - use PyYAML (e.g. with +options from the next section) for that. + + +What this module does and why +----------------------------- + +YAML is generally nice and easy format to read *if* it was written by humans. + +PyYAML can a do fairly decent job of making stuff readable, and the best +combination of parameters for such output that I've seen so far is probably this one:: + + >>> m = [123, 45.67, {1: None, 2: False}, u'some text'] + >>> data = dict(a=u'asldnsa\nasldpáknsa\n', b=u'whatever text', ma=m, mb=m) + >>> yaml.safe_dump(data, sys.stdout, allow_unicode=True, default_flow_style=False) + a: 'asldnsa + + asldpáknsa + + ' + b: whatever text + ma: &id001 + - 123 + - 45.67 + - 1: null + 2: false + - some text + mb: *id001 + +pyaml tries to improve on that a bit, with the following tweaks: + +* Most human-friendly representation options in PyYAML (that I know of) 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, e.g.:: + + >>> yaml.safe_dump(cert, sys.stdout) + cert: '-----BEGIN CERTIFICATE----- + + MIIH3jCCBcagAwIBAgIJAJi7AjQ4Z87OMA0GCSqGSIb3DQEBCwUAMIHBMRcwFQYD + + VQQKFA52YWxlcm9uLm5vX2lzcDEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9y + ... + + >>> pyaml.p(cert): + cert: | + -----BEGIN CERTIFICATE----- + MIIH3jCCBcagAwIBAgIJAJi7AjQ4Z87OMA0GCSqGSIb3DQEBCwUAMIHBMRcwFQYD + VQQKFA52YWxlcm9uLm5vX2lzcDEeMBwGA1UECxMVQ2VydGlmaWNhdGUgQXV0aG9y + ... + +* "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, + i.e:: + + >>> pyaml.p(data, string_val_style='"') + key: "value\nasldpáknsa\n" + >>> yaml.safe_dump(data, sys.stdout, allow_unicode=True, default_style='"') + "key": "value\nasldpáknsa\n" + +* "sort_dicts=False" option to leave dict item ordering to python, and not + force-sort them in yaml output, which can be important for python 3.6+ where + they retain ordering info. + +* Has an option to add vertical spacing (empty lines) between keys on different + depths, to make output much more seekable. + +Result for the (rather meaningless) example above (without any additional +tweaks):: + + >>> pyaml.p(data) + a: | + asldnsa + asldpáknsa + b: 'whatever text' + ma: &ma + - 123 + - 45.67 + - 1: + 2: false + - 'some text' + mb: *ma + +---------- + +Extended example:: + + >>> pyaml.dump(conf, sys.stdout, vspacing=[2, 1]): + destination: + + encoding: + xz: + enabled: true + min_size: 5120 + options: + path_filter: + - \.(gz|bz2|t[gb]z2?|xz|lzma|7z|zip|rar)$ + - \.(rpm|deb|iso)$ + - \.(jpe?g|gif|png|mov|avi|ogg|mkv|webm|mp[34g]|flv|flac|ape|pdf|djvu)$ + - \.(sqlite3?|fossil|fsl)$ + - \.git/objects/[0-9a-f]+/[0-9a-f]+$ + + result: + append_to_file: + append_to_lafs_dir: + print_to_stdout: true + + url: http://localhost:3456/uri + + + filter: + - /(CVS|RCS|SCCS|_darcs|\{arch\})/$ + - /\.(git|hg|bzr|svn|cvs)(/|ignore|attributes|tags)?$ + - /=(RELEASE-ID|meta-update|update)$ + + + http: + + ca_certs_files: /etc/ssl/certs/ca-certificates.crt + + debug_requests: false + + request_pool_options: + cachedConnectionTimeout: 600 + maxPersistentPerHost: 10 + retryAutomatically: true + + + logging: + + formatters: + basic: + datefmt: '%Y-%m-%d %H:%M:%S' + format: '%(asctime)s :: %(name)s :: %(levelname)s: %(message)s' + + handlers: + console: + class: logging.StreamHandler + formatter: basic + level: custom + stream: ext://sys.stderr + + loggers: + twisted: + handlers: + - console + level: 0 + + root: + handlers: + - console + level: custom + +Note that unless there are many moderately wide and deep trees of data, which +are expected to be read and edited by people, it might be preferrable to +directly use PyYAML regardless, as it won't introduce another (rather pointless +in that case) dependency and a point of failure. + + +Some Tricks +----------- + +* Pretty-print any yaml or json (yaml subset) file from the shell:: + + % python -m pyaml /path/to/some/file.yaml + % curl -s https://www.githubstatus.com/api/v2/summary.json | python -m pyaml + +* Process and replace json/yaml file in-place:: + + % python -m pyaml -r file-with-json.data + +* Easier "debug printf" for more complex data (all funcs below are aliases to + same thing):: + + pyaml.p(stuff) + pyaml.pprint(my_data) + pyaml.pprint('----- HOW DOES THAT BREAKS!?!?', input_data, some_var, more_stuff) + pyaml.print(data, file=sys.stderr) # needs "from __future__ import print_function" + +* Force all string values to a certain style (see info on these in + `PyYAML docs`_):: + + pyaml.dump(many_weird_strings, string_val_style='|') + pyaml.dump(multiline_words, string_val_style='>') + pyaml.dump(no_want_quotes, string_val_style='plain') + + Using ``pyaml.add_representer()`` (note \*p\*yaml) as suggested in + `this SO thread`_ (or `github-issue-7`_) should also work. + +* Control indent and width of the results:: + + pyaml.dump(wide_and_deep, indent=4, width=120) + + These are actually keywords for PyYAML Emitter (passed to it from Dumper), + see more info on these in `PyYAML docs`_. + +* Dump multiple yaml documents into a file: ``pyaml.dump_all([data1, data2, data3], dst_file)`` + + explicit_start=True is implied, unless explicit_start=False is passed. + +.. _PyYAML docs: http://pyyaml.org/wiki/PyYAMLDocumentation#Scalars +.. _this SO thread: http://stackoverflow.com/a/7445560 +.. _github-issue-7: https://github.com/mk-fg/pretty-yaml/issues/7 + + +Installation +------------ + +It's a regular package for Python (3.x or 2.x). + +Module uses PyYAML_ for processing of the actual YAML files and should pull it +in as a dependency. + +Dependency on unidecode_ module is optional and should only be necessary if +same-id objects or recursion is used within serialized data. + +Be sure to use python3/python2, pip3/pip2, easy_install-... binaries below, +based on which python version you want to install the module for, if you have +several on the system (as is norm these days for py2-py3 transition). + +Using pip_ is the best way:: + + % pip install pyaml + +(add --user option to install into $HOME for current user only) + +Or, if you don't have "pip" command:: + + % python -m ensurepip + % python -m pip install --upgrade pip + % python -m pip install pyaml + +(same suggestion wrt "install --user" as above) + +On a very old systems, one of these might work:: + + % curl https://bootstrap.pypa.io/get-pip.py | python + % pip install pyaml + + % easy_install pyaml + + % git clone --depth=1 https://github.com/mk-fg/pretty-yaml + % cd pretty-yaml + % python setup.py install + +(all of install-commands here also have --user option, +see also `pip docs "installing" section`_) + +Current-git version can be installed like this:: + + % pip install 'git+https://github.com/mk-fg/pretty-yaml#egg=pyaml' + +Note that to install stuff to system-wide PATH and site-packages (without +--user), elevated privileges (i.e. root and su/sudo) are often required. + +Use "...install --user", `~/.pydistutils.cfg`_ or virtualenv_ to do unprivileged +installs into custom paths. + +More info on python packaging can be found at `packaging.python.org`_. + +.. _ruamel.yaml: https://bitbucket.org/ruamel/yaml/ +.. _PyYAML: http://pyyaml.org/ +.. _unidecode: http://pypi.python.org/pypi/Unidecode +.. _pip: http://pip-installer.org/ +.. _pip docs "installing" section: http://www.pip-installer.org/en/latest/installing.html +.. _~/.pydistutils.cfg: http://docs.python.org/install/index.html#distutils-configuration-files +.. _virtualenv: http://pypi.python.org/pypi/virtualenv +.. _packaging.python.org: https://packaging.python.org/installing/ + +