From 88d28c21f4a50112d38c301492181805b4784fe6 Mon Sep 17 00:00:00 2001 From: Mitchell Hentges Date: Mon, 27 Sep 2021 20:27:18 +0000 Subject: [PATCH] Bug 1731145: Don't ignore vendored package `*.egg-info` directories r=ahal The `*.egg-info` directories are needed for the packages to show up as "distributions" to `pip` and other environment-checking logic. We know that `*.egg-info` directories are cross-platform because they exist in the globally-usable `tar.gz` releases of packages. Differential Revision: https://phabricator.services.mozilla.com/D125909 --- .gitignore | 7 +- .hgignore | 5 +- python/mozbuild/mozbuild/test/test_vendor.py | 1 - .../src/MarkupSafe.egg-info/PKG-INFO | 101 ++ .../src/MarkupSafe.egg-info/SOURCES.txt | 31 + .../MarkupSafe.egg-info/dependency_links.txt | 1 + .../src/MarkupSafe.egg-info/top_level.txt | 1 + .../PyYAML/lib3/PyYAML.egg-info/PKG-INFO | 44 + .../PyYAML/lib3/PyYAML.egg-info/SOURCES.txt | 670 ++++++++++++ .../lib3/PyYAML.egg-info/dependency_links.txt | 1 + .../PyYAML/lib3/PyYAML.egg-info/top_level.txt | 2 + .../python/aiohttp/aiohttp.egg-info/PKG-INFO | 966 ++++++++++++++++++ .../aiohttp/aiohttp.egg-info/SOURCES.txt | 246 +++++ .../aiohttp.egg-info/dependency_links.txt | 1 + .../aiohttp/aiohttp.egg-info/requires.txt | 14 + .../aiohttp/aiohttp.egg-info/top_level.txt | 1 + .../coverage/coverage.egg-info/PKG-INFO | 187 ++++ .../coverage/coverage.egg-info/SOURCES.txt | 287 ++++++ .../coverage.egg-info/dependency_links.txt | 1 + .../coverage.egg-info/entry_points.txt | 5 + .../coverage/coverage.egg-info/not-zip-safe | 1 + .../coverage/coverage.egg-info/requires.txt | 3 + .../coverage/coverage.egg-info/top_level.txt | 1 + .../python/esprima/esprima.egg-info/PKG-INFO | 143 +++ .../esprima/esprima.egg-info/SOURCES.txt | 29 + .../esprima.egg-info/dependency_links.txt | 1 + .../esprima/esprima.egg-info/entry_points.txt | 3 + .../python/esprima/esprima.egg-info/pbr.json | 1 + .../esprima/esprima.egg-info/top_level.txt | 1 + .../fluent.migrate.egg-info/PKG-INFO | 18 + .../fluent.migrate.egg-info/SOURCES.txt | 23 + .../dependency_links.txt | 1 + .../fluent.migrate.egg-info/entry_points.txt | 4 + .../fluent.migrate.egg-info/requires.txt | 6 + .../fluent.migrate.egg-info/top_level.txt | 1 + .../idna-ssl/idna_ssl.egg-info/PKG-INFO | 81 ++ .../idna-ssl/idna_ssl.egg-info/SOURCES.txt | 12 + .../idna_ssl.egg-info/dependency_links.txt | 1 + .../idna-ssl/idna_ssl.egg-info/not-zip-safe | 1 + .../idna-ssl/idna_ssl.egg-info/requires.txt | 1 + .../idna-ssl/idna_ssl.egg-info/top_level.txt | 1 + .../python/jsmin/jsmin.egg-info/PKG-INFO | 117 +++ .../python/jsmin/jsmin.egg-info/SOURCES.txt | 13 + .../jsmin/jsmin.egg-info/dependency_links.txt | 1 + .../python/jsmin/jsmin.egg-info/top_level.txt | 1 + .../python/json-e/json_e.egg-info/PKG-INFO | 11 + .../python/json-e/json_e.egg-info/SOURCES.txt | 17 + .../json_e.egg-info/dependency_links.txt | 1 + .../json-e/json_e.egg-info/requires.txt | 3 + .../json-e/json_e.egg-info/top_level.txt | 1 + .../python/mohawk/mohawk.egg-info/PKG-INFO | 19 + .../python/mohawk/mohawk.egg-info/SOURCES.txt | 15 + .../mohawk.egg-info/dependency_links.txt | 1 + .../mohawk/mohawk.egg-info/requires.txt | 1 + .../mohawk/mohawk.egg-info/top_level.txt | 1 + .../multidict/multidict.egg-info/PKG-INFO | 128 +++ .../multidict/multidict.egg-info/SOURCES.txt | 71 ++ .../multidict.egg-info/dependency_links.txt | 1 + .../multidict.egg-info/top_level.txt | 1 + third_party/python/ply/ply.egg-info/PKG-INFO | 22 + .../python/ply/ply.egg-info/SOURCES.txt | 172 ++++ .../ply/ply.egg-info/dependency_links.txt | 1 + .../python/ply/ply.egg-info/top_level.txt | 1 + .../pyrsistent/pyrsistent.egg-info/PKG-INFO | 742 ++++++++++++++ .../pyrsistent.egg-info/SOURCES.txt | 53 + .../pyrsistent.egg-info/dependency_links.txt | 1 + .../pyrsistent.egg-info/requires.txt | 1 + .../pyrsistent.egg-info/top_level.txt | 3 + .../pystache/pystache.egg-info/PKG-INFO | 536 ++++++++++ .../pystache/pystache.egg-info/SOURCES.txt | 97 ++ .../pystache.egg-info/dependency_links.txt | 1 + .../pystache.egg-info/entry_points.txt | 4 + .../pystache/pystache.egg-info/top_level.txt | 1 + .../python/pytoml/pytoml.egg-info/PKG-INFO | 10 + .../python/pytoml/pytoml.egg-info/SOURCES.txt | 10 + .../pytoml.egg-info/dependency_links.txt | 1 + .../pytoml/pytoml.egg-info/top_level.txt | 1 + .../python/slugid/slugid.egg-info/PKG-INFO | 14 + .../python/slugid/slugid.egg-info/SOURCES.txt | 8 + .../slugid.egg-info/dependency_links.txt | 1 + .../slugid/slugid.egg-info/top_level.txt | 1 + .../python/yarl/yarl.egg-info/PKG-INFO | 797 +++++++++++++++ .../python/yarl/yarl.egg-info/SOURCES.txt | 42 + .../yarl/yarl.egg-info/dependency_links.txt | 1 + .../python/yarl/yarl.egg-info/requires.txt | 5 + .../python/yarl/yarl.egg-info/top_level.txt | 1 + 86 files changed, 5832 insertions(+), 3 deletions(-) create mode 100644 third_party/python/MarkupSafe/src/MarkupSafe.egg-info/PKG-INFO create mode 100644 third_party/python/MarkupSafe/src/MarkupSafe.egg-info/SOURCES.txt create mode 100644 third_party/python/MarkupSafe/src/MarkupSafe.egg-info/dependency_links.txt create mode 100644 third_party/python/MarkupSafe/src/MarkupSafe.egg-info/top_level.txt create mode 100644 third_party/python/PyYAML/lib3/PyYAML.egg-info/PKG-INFO create mode 100644 third_party/python/PyYAML/lib3/PyYAML.egg-info/SOURCES.txt create mode 100644 third_party/python/PyYAML/lib3/PyYAML.egg-info/dependency_links.txt create mode 100644 third_party/python/PyYAML/lib3/PyYAML.egg-info/top_level.txt create mode 100644 third_party/python/aiohttp/aiohttp.egg-info/PKG-INFO create mode 100644 third_party/python/aiohttp/aiohttp.egg-info/SOURCES.txt create mode 100644 third_party/python/aiohttp/aiohttp.egg-info/dependency_links.txt create mode 100644 third_party/python/aiohttp/aiohttp.egg-info/requires.txt create mode 100644 third_party/python/aiohttp/aiohttp.egg-info/top_level.txt create mode 100644 third_party/python/coverage/coverage.egg-info/PKG-INFO create mode 100644 third_party/python/coverage/coverage.egg-info/SOURCES.txt create mode 100644 third_party/python/coverage/coverage.egg-info/dependency_links.txt create mode 100644 third_party/python/coverage/coverage.egg-info/entry_points.txt create mode 100644 third_party/python/coverage/coverage.egg-info/not-zip-safe create mode 100644 third_party/python/coverage/coverage.egg-info/requires.txt create mode 100644 third_party/python/coverage/coverage.egg-info/top_level.txt create mode 100644 third_party/python/esprima/esprima.egg-info/PKG-INFO create mode 100644 third_party/python/esprima/esprima.egg-info/SOURCES.txt create mode 100644 third_party/python/esprima/esprima.egg-info/dependency_links.txt create mode 100644 third_party/python/esprima/esprima.egg-info/entry_points.txt create mode 100644 third_party/python/esprima/esprima.egg-info/pbr.json create mode 100644 third_party/python/esprima/esprima.egg-info/top_level.txt create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/PKG-INFO create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/SOURCES.txt create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/dependency_links.txt create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/entry_points.txt create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/requires.txt create mode 100644 third_party/python/fluent.migrate/fluent.migrate.egg-info/top_level.txt create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/PKG-INFO create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/SOURCES.txt create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/dependency_links.txt create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/not-zip-safe create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/requires.txt create mode 100644 third_party/python/idna-ssl/idna_ssl.egg-info/top_level.txt create mode 100644 third_party/python/jsmin/jsmin.egg-info/PKG-INFO create mode 100644 third_party/python/jsmin/jsmin.egg-info/SOURCES.txt create mode 100644 third_party/python/jsmin/jsmin.egg-info/dependency_links.txt create mode 100644 third_party/python/jsmin/jsmin.egg-info/top_level.txt create mode 100644 third_party/python/json-e/json_e.egg-info/PKG-INFO create mode 100644 third_party/python/json-e/json_e.egg-info/SOURCES.txt create mode 100644 third_party/python/json-e/json_e.egg-info/dependency_links.txt create mode 100644 third_party/python/json-e/json_e.egg-info/requires.txt create mode 100644 third_party/python/json-e/json_e.egg-info/top_level.txt create mode 100644 third_party/python/mohawk/mohawk.egg-info/PKG-INFO create mode 100644 third_party/python/mohawk/mohawk.egg-info/SOURCES.txt create mode 100644 third_party/python/mohawk/mohawk.egg-info/dependency_links.txt create mode 100644 third_party/python/mohawk/mohawk.egg-info/requires.txt create mode 100644 third_party/python/mohawk/mohawk.egg-info/top_level.txt create mode 100644 third_party/python/multidict/multidict.egg-info/PKG-INFO create mode 100644 third_party/python/multidict/multidict.egg-info/SOURCES.txt create mode 100644 third_party/python/multidict/multidict.egg-info/dependency_links.txt create mode 100644 third_party/python/multidict/multidict.egg-info/top_level.txt create mode 100644 third_party/python/ply/ply.egg-info/PKG-INFO create mode 100644 third_party/python/ply/ply.egg-info/SOURCES.txt create mode 100644 third_party/python/ply/ply.egg-info/dependency_links.txt create mode 100644 third_party/python/ply/ply.egg-info/top_level.txt create mode 100644 third_party/python/pyrsistent/pyrsistent.egg-info/PKG-INFO create mode 100644 third_party/python/pyrsistent/pyrsistent.egg-info/SOURCES.txt create mode 100644 third_party/python/pyrsistent/pyrsistent.egg-info/dependency_links.txt create mode 100644 third_party/python/pyrsistent/pyrsistent.egg-info/requires.txt create mode 100644 third_party/python/pyrsistent/pyrsistent.egg-info/top_level.txt create mode 100644 third_party/python/pystache/pystache.egg-info/PKG-INFO create mode 100644 third_party/python/pystache/pystache.egg-info/SOURCES.txt create mode 100644 third_party/python/pystache/pystache.egg-info/dependency_links.txt create mode 100644 third_party/python/pystache/pystache.egg-info/entry_points.txt create mode 100644 third_party/python/pystache/pystache.egg-info/top_level.txt create mode 100644 third_party/python/pytoml/pytoml.egg-info/PKG-INFO create mode 100644 third_party/python/pytoml/pytoml.egg-info/SOURCES.txt create mode 100644 third_party/python/pytoml/pytoml.egg-info/dependency_links.txt create mode 100644 third_party/python/pytoml/pytoml.egg-info/top_level.txt create mode 100644 third_party/python/slugid/slugid.egg-info/PKG-INFO create mode 100644 third_party/python/slugid/slugid.egg-info/SOURCES.txt create mode 100644 third_party/python/slugid/slugid.egg-info/dependency_links.txt create mode 100644 third_party/python/slugid/slugid.egg-info/top_level.txt create mode 100644 third_party/python/yarl/yarl.egg-info/PKG-INFO create mode 100644 third_party/python/yarl/yarl.egg-info/SOURCES.txt create mode 100644 third_party/python/yarl/yarl.egg-info/dependency_links.txt create mode 100644 third_party/python/yarl/yarl.egg-info/requires.txt create mode 100644 third_party/python/yarl/yarl.egg-info/top_level.txt diff --git a/.gitignore b/.gitignore index ffd0f9faf145..d5470cfce5d5 100644 --- a/.gitignore +++ b/.gitignore @@ -14,11 +14,16 @@ ID !id/ .DS_Store* *.pdb -*.egg-info .eslintcache # Filesystem temporaries .fuse_hidden* +# Ignore Python .egg-info directories for first-party modules (but, +# still add vendored packages' .egg-info directories) +*.egg-info +!third_party/python/**/*.egg-info +!testing/web-platform/tests/tools/third_party/**/*.egg-info + # Vim swap files. .*.sw[a-z] .sw[a-z] diff --git a/.hgignore b/.hgignore index e5d248a0175b..5dff49ad47b3 100644 --- a/.hgignore +++ b/.hgignore @@ -7,13 +7,16 @@ (^|/)ID$ (^|/)\.DS_Store$ \.pdb -\.egg-info \.eslintcache \.gcda \.gcno \.gcov compile_commands\.json +# Ignore Python .egg-info directories for first-party modules (but, +# still add vendored packages' .egg-info directories) +^(?=.*\.egg-info/)(?!^third_party/python/)(?!^testing/web-platform/tests/tools/third_party/) + # Vim swap files. ^\.sw.$ .[^/]*\.sw.$ diff --git a/python/mozbuild/mozbuild/test/test_vendor.py b/python/mozbuild/mozbuild/test/test_vendor.py index 860da7d21e6f..f91390ab324a 100644 --- a/python/mozbuild/mozbuild/test/test_vendor.py +++ b/python/mozbuild/mozbuild/test/test_vendor.py @@ -53,7 +53,6 @@ def test_up_to_date_vendor(): existing_vendored, work_vendored, "--exclude=__pycache__", - "--exclude=*.egg-info", ] ) diff --git a/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/PKG-INFO b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/PKG-INFO new file mode 100644 index 000000000000..9defab7de904 --- /dev/null +++ b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/PKG-INFO @@ -0,0 +1,101 @@ +Metadata-Version: 1.2 +Name: MarkupSafe +Version: 1.1.1 +Summary: Safely add untrusted strings to HTML/XML markup. +Home-page: https://palletsprojects.com/p/markupsafe/ +Author: Armin Ronacher +Author-email: armin.ronacher@active-4.com +Maintainer: The Pallets Team +Maintainer-email: contact@palletsprojects.com +License: BSD-3-Clause +Project-URL: Documentation, https://markupsafe.palletsprojects.com/ +Project-URL: Code, https://github.com/pallets/markupsafe +Project-URL: Issue tracker, https://github.com/pallets/markupsafe/issues +Description: MarkupSafe + ========== + + MarkupSafe implements a text object that escapes characters so it is + safe to use in HTML and XML. Characters that have special meanings are + replaced so that they display as the actual characters. This mitigates + injection attacks, meaning untrusted user input can safely be displayed + on a page. + + + Installing + ---------- + + Install and update using `pip`_: + + .. code-block:: text + + pip install -U MarkupSafe + + .. _pip: https://pip.pypa.io/en/stable/quickstart/ + + + Examples + -------- + + .. code-block:: pycon + + >>> from markupsafe import Markup, escape + >>> # escape replaces special characters and wraps in Markup + >>> escape('') + Markup(u'<script>alert(document.cookie);</script>') + >>> # wrap in Markup to mark text "safe" and prevent escaping + >>> Markup('Hello') + Markup('hello') + >>> escape(Markup('Hello')) + Markup('hello') + >>> # Markup is a text subclass (str on Python 3, unicode on Python 2) + >>> # methods and operators escape their arguments + >>> template = Markup("Hello %s") + >>> template % '"World"' + Markup('Hello "World"') + + + Donate + ------ + + The Pallets organization develops and supports MarkupSafe and other + libraries that use it. In order to grow the community of contributors + and users, and allow the maintainers to devote more time to the + projects, `please donate today`_. + + .. _please donate today: https://palletsprojects.com/donate + + + Links + ----- + + * Website: https://palletsprojects.com/p/markupsafe/ + * Documentation: https://markupsafe.palletsprojects.com/ + * License: `BSD-3-Clause `_ + * Releases: https://pypi.org/project/MarkupSafe/ + * Code: https://github.com/pallets/markupsafe + * Issue tracker: https://github.com/pallets/markupsafe/issues + * Test status: + + * Linux, Mac: https://travis-ci.org/pallets/markupsafe + * Windows: https://ci.appveyor.com/project/pallets/markupsafe + + * Test coverage: https://codecov.io/gh/pallets/markupsafe + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: Markup :: HTML +Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.* diff --git a/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/SOURCES.txt b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/SOURCES.txt new file mode 100644 index 000000000000..70108af00ee6 --- /dev/null +++ b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/SOURCES.txt @@ -0,0 +1,31 @@ +CHANGES.rst +LICENSE.rst +MANIFEST.in +README.rst +setup.cfg +setup.py +tox.ini +docs/Makefile +docs/changes.rst +docs/conf.py +docs/escaping.rst +docs/formatting.rst +docs/html.rst +docs/index.rst +docs/license.rst +docs/make.bat +docs/requirements.txt +src/MarkupSafe.egg-info/PKG-INFO +src/MarkupSafe.egg-info/SOURCES.txt +src/MarkupSafe.egg-info/dependency_links.txt +src/MarkupSafe.egg-info/top_level.txt +src/markupsafe/__init__.py +src/markupsafe/_compat.py +src/markupsafe/_constants.py +src/markupsafe/_native.py +src/markupsafe/_speedups.c +tests/conftest.py +tests/test_escape.py +tests/test_exception_custom_html.py +tests/test_leak.py +tests/test_markupsafe.py \ No newline at end of file diff --git a/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/dependency_links.txt b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/top_level.txt b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/top_level.txt new file mode 100644 index 000000000000..75bf729258f9 --- /dev/null +++ b/third_party/python/MarkupSafe/src/MarkupSafe.egg-info/top_level.txt @@ -0,0 +1 @@ +markupsafe diff --git a/third_party/python/PyYAML/lib3/PyYAML.egg-info/PKG-INFO b/third_party/python/PyYAML/lib3/PyYAML.egg-info/PKG-INFO new file mode 100644 index 000000000000..04d0abf6e5f7 --- /dev/null +++ b/third_party/python/PyYAML/lib3/PyYAML.egg-info/PKG-INFO @@ -0,0 +1,44 @@ +Metadata-Version: 1.2 +Name: PyYAML +Version: 5.4.1 +Summary: YAML parser and emitter for Python +Home-page: https://pyyaml.org/ +Author: Kirill Simonov +Author-email: xi@resolvent.net +License: MIT +Download-URL: https://pypi.org/project/PyYAML/ +Project-URL: Bug Tracker, https://github.com/yaml/pyyaml/issues +Project-URL: CI, https://github.com/yaml/pyyaml/actions +Project-URL: Documentation, https://pyyaml.org/wiki/PyYAMLDocumentation +Project-URL: Mailing lists, http://lists.sourceforge.net/lists/listinfo/yaml-core +Project-URL: Source Code, https://github.com/yaml/pyyaml +Description: YAML is a data serialization format designed for human readability + and interaction with scripting languages. PyYAML is a YAML parser + and emitter for Python. + + PyYAML features a complete YAML 1.1 parser, Unicode support, pickle + support, capable extension API, and sensible error messages. PyYAML + supports standard YAML tags and provides Python-specific tags that + allow to represent an arbitrary Python object. + + PyYAML is applicable for a broad range of tasks from complex + configuration files to object serialization and persistence. +Platform: Any +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Cython +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: Markup +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.* diff --git a/third_party/python/PyYAML/lib3/PyYAML.egg-info/SOURCES.txt b/third_party/python/PyYAML/lib3/PyYAML.egg-info/SOURCES.txt new file mode 100644 index 000000000000..89f5a63c0928 --- /dev/null +++ b/third_party/python/PyYAML/lib3/PyYAML.egg-info/SOURCES.txt @@ -0,0 +1,670 @@ +CHANGES +LICENSE +MANIFEST.in +Makefile +README +pyproject.toml +setup.cfg +setup.py +examples/pygments-lexer/example.yaml +examples/pygments-lexer/yaml.py +examples/yaml-highlight/yaml_hl.cfg +examples/yaml-highlight/yaml_hl.py +lib/_yaml/__init__.py +lib/yaml/__init__.py +lib/yaml/composer.py +lib/yaml/constructor.py +lib/yaml/cyaml.py +lib/yaml/dumper.py +lib/yaml/emitter.py +lib/yaml/error.py +lib/yaml/events.py +lib/yaml/loader.py +lib/yaml/nodes.py +lib/yaml/parser.py +lib/yaml/reader.py +lib/yaml/representer.py +lib/yaml/resolver.py +lib/yaml/scanner.py +lib/yaml/serializer.py +lib/yaml/tokens.py +lib3/PyYAML.egg-info/PKG-INFO +lib3/PyYAML.egg-info/SOURCES.txt +lib3/PyYAML.egg-info/dependency_links.txt +lib3/PyYAML.egg-info/top_level.txt +lib3/_yaml/__init__.py +lib3/yaml/__init__.py +lib3/yaml/composer.py +lib3/yaml/constructor.py +lib3/yaml/cyaml.py +lib3/yaml/dumper.py +lib3/yaml/emitter.py +lib3/yaml/error.py +lib3/yaml/events.py +lib3/yaml/loader.py +lib3/yaml/nodes.py +lib3/yaml/parser.py +lib3/yaml/reader.py +lib3/yaml/representer.py +lib3/yaml/resolver.py +lib3/yaml/scanner.py +lib3/yaml/serializer.py +lib3/yaml/tokens.py +tests/data/a-nasty-libyaml-bug.loader-error +tests/data/aliases-cdumper-bug.code +tests/data/aliases.events +tests/data/bool.data +tests/data/bool.detect +tests/data/construct-binary-py2.code +tests/data/construct-binary-py2.data +tests/data/construct-binary-py3.code +tests/data/construct-binary-py3.data +tests/data/construct-bool.code +tests/data/construct-bool.data +tests/data/construct-custom.code +tests/data/construct-custom.data +tests/data/construct-float.code +tests/data/construct-float.data +tests/data/construct-int.code +tests/data/construct-int.data +tests/data/construct-map.code +tests/data/construct-map.data +tests/data/construct-merge.code +tests/data/construct-merge.data +tests/data/construct-null.code +tests/data/construct-null.data +tests/data/construct-omap.code +tests/data/construct-omap.data +tests/data/construct-pairs.code +tests/data/construct-pairs.data +tests/data/construct-python-bool.code +tests/data/construct-python-bool.data +tests/data/construct-python-bytes-py3.code +tests/data/construct-python-bytes-py3.data +tests/data/construct-python-complex.code +tests/data/construct-python-complex.data +tests/data/construct-python-float.code +tests/data/construct-python-float.data +tests/data/construct-python-int.code +tests/data/construct-python-int.data +tests/data/construct-python-long-short-py2.code +tests/data/construct-python-long-short-py2.data +tests/data/construct-python-long-short-py3.code +tests/data/construct-python-long-short-py3.data +tests/data/construct-python-name-module.code +tests/data/construct-python-name-module.data +tests/data/construct-python-none.code +tests/data/construct-python-none.data +tests/data/construct-python-object.code +tests/data/construct-python-object.data +tests/data/construct-python-str-ascii.code +tests/data/construct-python-str-ascii.data +tests/data/construct-python-str-utf8-py2.code +tests/data/construct-python-str-utf8-py2.data +tests/data/construct-python-str-utf8-py3.code +tests/data/construct-python-str-utf8-py3.data +tests/data/construct-python-tuple-list-dict.code +tests/data/construct-python-tuple-list-dict.data +tests/data/construct-python-unicode-ascii-py2.code +tests/data/construct-python-unicode-ascii-py2.data +tests/data/construct-python-unicode-ascii-py3.code +tests/data/construct-python-unicode-ascii-py3.data +tests/data/construct-python-unicode-utf8-py2.code +tests/data/construct-python-unicode-utf8-py2.data +tests/data/construct-python-unicode-utf8-py3.code +tests/data/construct-python-unicode-utf8-py3.data +tests/data/construct-seq.code +tests/data/construct-seq.data +tests/data/construct-set.code +tests/data/construct-set.data +tests/data/construct-str-ascii.code +tests/data/construct-str-ascii.data +tests/data/construct-str-utf8-py2.code +tests/data/construct-str-utf8-py2.data +tests/data/construct-str-utf8-py3.code +tests/data/construct-str-utf8-py3.data +tests/data/construct-str.code +tests/data/construct-str.data +tests/data/construct-timestamp.code +tests/data/construct-timestamp.data +tests/data/construct-value.code +tests/data/construct-value.data +tests/data/document-separator-in-quoted-scalar.loader-error +tests/data/documents.events +tests/data/duplicate-anchor-1.loader-error +tests/data/duplicate-anchor-2.loader-error +tests/data/duplicate-key.former-loader-error.code +tests/data/duplicate-key.former-loader-error.data +tests/data/duplicate-mapping-key.former-loader-error.code +tests/data/duplicate-mapping-key.former-loader-error.data +tests/data/duplicate-merge-key.former-loader-error.code +tests/data/duplicate-merge-key.former-loader-error.data +tests/data/duplicate-tag-directive.loader-error +tests/data/duplicate-value-key.former-loader-error.code +tests/data/duplicate-value-key.former-loader-error.data +tests/data/duplicate-yaml-directive.loader-error +tests/data/emit-block-scalar-in-simple-key-context-bug.canonical +tests/data/emit-block-scalar-in-simple-key-context-bug.data +tests/data/emitting-unacceptable-unicode-character-bug-py3.code +tests/data/emitting-unacceptable-unicode-character-bug-py3.data +tests/data/emitting-unacceptable-unicode-character-bug-py3.skip-ext +tests/data/emitting-unacceptable-unicode-character-bug.code +tests/data/emitting-unacceptable-unicode-character-bug.data +tests/data/emitting-unacceptable-unicode-character-bug.skip-ext +tests/data/emoticons.unicode +tests/data/emoticons2.unicode +tests/data/empty-anchor.emitter-error +tests/data/empty-document-bug.canonical +tests/data/empty-document-bug.data +tests/data/empty-document-bug.empty +tests/data/empty-documents.single-loader-error +tests/data/empty-python-module.loader-error +tests/data/empty-python-name.loader-error +tests/data/empty-tag-handle.emitter-error +tests/data/empty-tag-prefix.emitter-error +tests/data/empty-tag.emitter-error +tests/data/expected-document-end.emitter-error +tests/data/expected-document-start.emitter-error +tests/data/expected-mapping.loader-error +tests/data/expected-node-1.emitter-error +tests/data/expected-node-2.emitter-error +tests/data/expected-nothing.emitter-error +tests/data/expected-scalar.loader-error +tests/data/expected-sequence.loader-error +tests/data/expected-stream-start.emitter-error +tests/data/explicit-document.single-loader-error +tests/data/fetch-complex-value-bug.loader-error +tests/data/float-representer-2.3-bug.code +tests/data/float-representer-2.3-bug.data +tests/data/float.data +tests/data/float.detect +tests/data/forbidden-entry.loader-error +tests/data/forbidden-key.loader-error +tests/data/forbidden-value.loader-error +tests/data/implicit-document.single-loader-error +tests/data/int.data +tests/data/int.detect +tests/data/invalid-anchor-1.loader-error +tests/data/invalid-anchor-2.loader-error +tests/data/invalid-anchor.emitter-error +tests/data/invalid-base64-data-2.loader-error +tests/data/invalid-base64-data.loader-error +tests/data/invalid-block-scalar-indicator.loader-error +tests/data/invalid-character.loader-error +tests/data/invalid-character.stream-error +tests/data/invalid-directive-line.loader-error +tests/data/invalid-directive-name-1.loader-error +tests/data/invalid-directive-name-2.loader-error +tests/data/invalid-escape-character.loader-error +tests/data/invalid-escape-numbers.loader-error +tests/data/invalid-indentation-indicator-1.loader-error +tests/data/invalid-indentation-indicator-2.loader-error +tests/data/invalid-item-without-trailing-break.loader-error +tests/data/invalid-merge-1.loader-error +tests/data/invalid-merge-2.loader-error +tests/data/invalid-omap-1.loader-error +tests/data/invalid-omap-2.loader-error +tests/data/invalid-omap-3.loader-error +tests/data/invalid-pairs-1.loader-error +tests/data/invalid-pairs-2.loader-error +tests/data/invalid-pairs-3.loader-error +tests/data/invalid-python-bytes-2-py3.loader-error +tests/data/invalid-python-bytes-py3.loader-error +tests/data/invalid-python-module-kind.loader-error +tests/data/invalid-python-module-value.loader-error +tests/data/invalid-python-module.loader-error +tests/data/invalid-python-name-kind.loader-error +tests/data/invalid-python-name-module.loader-error +tests/data/invalid-python-name-object.loader-error +tests/data/invalid-python-name-value.loader-error +tests/data/invalid-simple-key.loader-error +tests/data/invalid-single-quote-bug.code +tests/data/invalid-single-quote-bug.data +tests/data/invalid-starting-character.loader-error +tests/data/invalid-tag-1.loader-error +tests/data/invalid-tag-2.loader-error +tests/data/invalid-tag-directive-handle.loader-error +tests/data/invalid-tag-directive-prefix.loader-error +tests/data/invalid-tag-handle-1.emitter-error +tests/data/invalid-tag-handle-1.loader-error +tests/data/invalid-tag-handle-2.emitter-error +tests/data/invalid-tag-handle-2.loader-error +tests/data/invalid-uri-escapes-1.loader-error +tests/data/invalid-uri-escapes-2.loader-error +tests/data/invalid-uri-escapes-3.loader-error +tests/data/invalid-uri.loader-error +tests/data/invalid-utf8-byte.loader-error +tests/data/invalid-utf8-byte.stream-error +tests/data/invalid-yaml-directive-version-1.loader-error +tests/data/invalid-yaml-directive-version-2.loader-error +tests/data/invalid-yaml-directive-version-3.loader-error +tests/data/invalid-yaml-directive-version-4.loader-error +tests/data/invalid-yaml-directive-version-5.loader-error +tests/data/invalid-yaml-directive-version-6.loader-error +tests/data/invalid-yaml-version.loader-error +tests/data/latin.unicode +tests/data/mapping.sort +tests/data/mapping.sorted +tests/data/mappings.events +tests/data/merge.data +tests/data/merge.detect +tests/data/more-floats.code +tests/data/more-floats.data +tests/data/multi-constructor.code +tests/data/multi-constructor.multi +tests/data/myfullloader.subclass_blacklist +tests/data/negative-float-bug.code +tests/data/negative-float-bug.data +tests/data/no-alias-anchor.emitter-error +tests/data/no-alias-anchor.skip-ext +tests/data/no-block-collection-end.loader-error +tests/data/no-block-mapping-end-2.loader-error +tests/data/no-block-mapping-end.loader-error +tests/data/no-document-start.loader-error +tests/data/no-flow-mapping-end.loader-error +tests/data/no-flow-sequence-end.loader-error +tests/data/no-node-1.loader-error +tests/data/no-node-2.loader-error +tests/data/no-tag.emitter-error +tests/data/null.data +tests/data/null.detect +tests/data/odd-utf16.stream-error +tests/data/overwrite-state-new-constructor.loader-error +tests/data/recursive-anchor.former-loader-error +tests/data/recursive-dict.recursive +tests/data/recursive-list.recursive +tests/data/recursive-set.recursive +tests/data/recursive-state.recursive +tests/data/recursive-tuple.recursive +tests/data/recursive.former-dumper-error +tests/data/remove-possible-simple-key-bug.loader-error +tests/data/resolver.data +tests/data/resolver.path +tests/data/run-parser-crash-bug.data +tests/data/scalars.events +tests/data/scan-document-end-bug.canonical +tests/data/scan-document-end-bug.data +tests/data/scan-line-break-bug.canonical +tests/data/scan-line-break-bug.data +tests/data/sequences.events +tests/data/serializer-is-already-opened.dumper-error +tests/data/serializer-is-closed-1.dumper-error +tests/data/serializer-is-closed-2.dumper-error +tests/data/serializer-is-not-opened-1.dumper-error +tests/data/serializer-is-not-opened-2.dumper-error +tests/data/single-dot-is-not-float-bug.code +tests/data/single-dot-is-not-float-bug.data +tests/data/sloppy-indentation.canonical +tests/data/sloppy-indentation.data +tests/data/spec-02-01.data +tests/data/spec-02-01.structure +tests/data/spec-02-01.tokens +tests/data/spec-02-02.data +tests/data/spec-02-02.structure +tests/data/spec-02-02.tokens +tests/data/spec-02-03.data +tests/data/spec-02-03.structure +tests/data/spec-02-03.tokens +tests/data/spec-02-04.data +tests/data/spec-02-04.structure +tests/data/spec-02-04.tokens +tests/data/spec-02-05.data +tests/data/spec-02-05.structure +tests/data/spec-02-05.tokens +tests/data/spec-02-06.data +tests/data/spec-02-06.structure +tests/data/spec-02-06.tokens +tests/data/spec-02-07.data +tests/data/spec-02-07.structure +tests/data/spec-02-07.tokens +tests/data/spec-02-08.data +tests/data/spec-02-08.structure +tests/data/spec-02-08.tokens +tests/data/spec-02-09.data +tests/data/spec-02-09.structure +tests/data/spec-02-09.tokens +tests/data/spec-02-10.data +tests/data/spec-02-10.structure +tests/data/spec-02-10.tokens +tests/data/spec-02-11.data +tests/data/spec-02-11.structure +tests/data/spec-02-11.tokens +tests/data/spec-02-12.data +tests/data/spec-02-12.structure +tests/data/spec-02-12.tokens +tests/data/spec-02-13.data +tests/data/spec-02-13.structure +tests/data/spec-02-13.tokens +tests/data/spec-02-14.data +tests/data/spec-02-14.structure +tests/data/spec-02-14.tokens +tests/data/spec-02-15.data +tests/data/spec-02-15.structure +tests/data/spec-02-15.tokens +tests/data/spec-02-16.data +tests/data/spec-02-16.structure +tests/data/spec-02-16.tokens +tests/data/spec-02-17.data +tests/data/spec-02-17.structure +tests/data/spec-02-17.tokens +tests/data/spec-02-18.data +tests/data/spec-02-18.structure +tests/data/spec-02-18.tokens +tests/data/spec-02-19.data +tests/data/spec-02-19.structure +tests/data/spec-02-19.tokens +tests/data/spec-02-20.data +tests/data/spec-02-20.structure +tests/data/spec-02-20.tokens +tests/data/spec-02-21.data +tests/data/spec-02-21.structure +tests/data/spec-02-21.tokens +tests/data/spec-02-22.data +tests/data/spec-02-22.structure +tests/data/spec-02-22.tokens +tests/data/spec-02-23.data +tests/data/spec-02-23.structure +tests/data/spec-02-23.tokens +tests/data/spec-02-24.data +tests/data/spec-02-24.structure +tests/data/spec-02-24.tokens +tests/data/spec-02-25.data +tests/data/spec-02-25.structure +tests/data/spec-02-25.tokens +tests/data/spec-02-26.data +tests/data/spec-02-26.structure +tests/data/spec-02-26.tokens +tests/data/spec-02-27.data +tests/data/spec-02-27.structure +tests/data/spec-02-27.tokens +tests/data/spec-02-28.data +tests/data/spec-02-28.structure +tests/data/spec-02-28.tokens +tests/data/spec-05-01-utf16be.data +tests/data/spec-05-01-utf16be.empty +tests/data/spec-05-01-utf16le.data +tests/data/spec-05-01-utf16le.empty +tests/data/spec-05-01-utf8.data +tests/data/spec-05-01-utf8.empty +tests/data/spec-05-02-utf16be.data +tests/data/spec-05-02-utf16be.error +tests/data/spec-05-02-utf16le.data +tests/data/spec-05-02-utf16le.error +tests/data/spec-05-02-utf8.data +tests/data/spec-05-02-utf8.error +tests/data/spec-05-03.canonical +tests/data/spec-05-03.data +tests/data/spec-05-04.canonical +tests/data/spec-05-04.data +tests/data/spec-05-05.data +tests/data/spec-05-05.empty +tests/data/spec-05-06.canonical +tests/data/spec-05-06.data +tests/data/spec-05-07.canonical +tests/data/spec-05-07.data +tests/data/spec-05-08.canonical +tests/data/spec-05-08.data +tests/data/spec-05-09.canonical +tests/data/spec-05-09.data +tests/data/spec-05-10.data +tests/data/spec-05-10.error +tests/data/spec-05-11.canonical +tests/data/spec-05-11.data +tests/data/spec-05-12.data +tests/data/spec-05-12.error +tests/data/spec-05-13.canonical +tests/data/spec-05-13.data +tests/data/spec-05-14.canonical +tests/data/spec-05-14.data +tests/data/spec-05-15.data +tests/data/spec-05-15.error +tests/data/spec-06-01.canonical +tests/data/spec-06-01.data +tests/data/spec-06-02.data +tests/data/spec-06-02.empty +tests/data/spec-06-03.canonical +tests/data/spec-06-03.data +tests/data/spec-06-04.canonical +tests/data/spec-06-04.data +tests/data/spec-06-05.canonical +tests/data/spec-06-05.data +tests/data/spec-06-06.canonical +tests/data/spec-06-06.data +tests/data/spec-06-07.canonical +tests/data/spec-06-07.data +tests/data/spec-06-08.canonical +tests/data/spec-06-08.data +tests/data/spec-07-01.canonical +tests/data/spec-07-01.data +tests/data/spec-07-01.skip-ext +tests/data/spec-07-02.canonical +tests/data/spec-07-02.data +tests/data/spec-07-02.skip-ext +tests/data/spec-07-03.data +tests/data/spec-07-03.error +tests/data/spec-07-04.canonical +tests/data/spec-07-04.data +tests/data/spec-07-05.data +tests/data/spec-07-05.error +tests/data/spec-07-06.canonical +tests/data/spec-07-06.data +tests/data/spec-07-07a.canonical +tests/data/spec-07-07a.data +tests/data/spec-07-07b.canonical +tests/data/spec-07-07b.data +tests/data/spec-07-08.canonical +tests/data/spec-07-08.data +tests/data/spec-07-09.canonical +tests/data/spec-07-09.data +tests/data/spec-07-10.canonical +tests/data/spec-07-10.data +tests/data/spec-07-11.data +tests/data/spec-07-11.empty +tests/data/spec-07-12a.canonical +tests/data/spec-07-12a.data +tests/data/spec-07-12b.canonical +tests/data/spec-07-12b.data +tests/data/spec-07-13.canonical +tests/data/spec-07-13.data +tests/data/spec-08-01.canonical +tests/data/spec-08-01.data +tests/data/spec-08-02.canonical +tests/data/spec-08-02.data +tests/data/spec-08-03.canonical +tests/data/spec-08-03.data +tests/data/spec-08-04.data +tests/data/spec-08-04.error +tests/data/spec-08-05.canonical +tests/data/spec-08-05.data +tests/data/spec-08-06.data +tests/data/spec-08-06.error +tests/data/spec-08-07.canonical +tests/data/spec-08-07.data +tests/data/spec-08-08.canonical +tests/data/spec-08-08.data +tests/data/spec-08-09.canonical +tests/data/spec-08-09.data +tests/data/spec-08-10.canonical +tests/data/spec-08-10.data +tests/data/spec-08-11.canonical +tests/data/spec-08-11.data +tests/data/spec-08-12.canonical +tests/data/spec-08-12.data +tests/data/spec-08-13.canonical +tests/data/spec-08-13.data +tests/data/spec-08-13.skip-ext +tests/data/spec-08-14.canonical +tests/data/spec-08-14.data +tests/data/spec-08-15.canonical +tests/data/spec-08-15.data +tests/data/spec-09-01.canonical +tests/data/spec-09-01.data +tests/data/spec-09-02.canonical +tests/data/spec-09-02.data +tests/data/spec-09-03.canonical +tests/data/spec-09-03.data +tests/data/spec-09-04.canonical +tests/data/spec-09-04.data +tests/data/spec-09-05.canonical +tests/data/spec-09-05.data +tests/data/spec-09-06.canonical +tests/data/spec-09-06.data +tests/data/spec-09-07.canonical +tests/data/spec-09-07.data +tests/data/spec-09-08.canonical +tests/data/spec-09-08.data +tests/data/spec-09-09.canonical +tests/data/spec-09-09.data +tests/data/spec-09-10.canonical +tests/data/spec-09-10.data +tests/data/spec-09-11.canonical +tests/data/spec-09-11.data +tests/data/spec-09-12.canonical +tests/data/spec-09-12.data +tests/data/spec-09-13.canonical +tests/data/spec-09-13.data +tests/data/spec-09-14.data +tests/data/spec-09-14.error +tests/data/spec-09-15.canonical +tests/data/spec-09-15.data +tests/data/spec-09-16.canonical +tests/data/spec-09-16.data +tests/data/spec-09-17.canonical +tests/data/spec-09-17.data +tests/data/spec-09-18.canonical +tests/data/spec-09-18.data +tests/data/spec-09-19.canonical +tests/data/spec-09-19.data +tests/data/spec-09-20.canonical +tests/data/spec-09-20.data +tests/data/spec-09-20.skip-ext +tests/data/spec-09-21.data +tests/data/spec-09-21.error +tests/data/spec-09-22.canonical +tests/data/spec-09-22.data +tests/data/spec-09-23.canonical +tests/data/spec-09-23.data +tests/data/spec-09-24.canonical +tests/data/spec-09-24.data +tests/data/spec-09-25.canonical +tests/data/spec-09-25.data +tests/data/spec-09-26.canonical +tests/data/spec-09-26.data +tests/data/spec-09-27.canonical +tests/data/spec-09-27.data +tests/data/spec-09-28.canonical +tests/data/spec-09-28.data +tests/data/spec-09-29.canonical +tests/data/spec-09-29.data +tests/data/spec-09-30.canonical +tests/data/spec-09-30.data +tests/data/spec-09-31.canonical +tests/data/spec-09-31.data +tests/data/spec-09-32.canonical +tests/data/spec-09-32.data +tests/data/spec-09-33.canonical +tests/data/spec-09-33.data +tests/data/spec-10-01.canonical +tests/data/spec-10-01.data +tests/data/spec-10-02.canonical +tests/data/spec-10-02.data +tests/data/spec-10-03.canonical +tests/data/spec-10-03.data +tests/data/spec-10-04.canonical +tests/data/spec-10-04.data +tests/data/spec-10-05.canonical +tests/data/spec-10-05.data +tests/data/spec-10-06.canonical +tests/data/spec-10-06.data +tests/data/spec-10-07.canonical +tests/data/spec-10-07.data +tests/data/spec-10-08.data +tests/data/spec-10-08.error +tests/data/spec-10-09.canonical +tests/data/spec-10-09.data +tests/data/spec-10-10.canonical +tests/data/spec-10-10.data +tests/data/spec-10-11.canonical +tests/data/spec-10-11.data +tests/data/spec-10-12.canonical +tests/data/spec-10-12.data +tests/data/spec-10-13.canonical +tests/data/spec-10-13.data +tests/data/spec-10-14.canonical +tests/data/spec-10-14.data +tests/data/spec-10-15.canonical +tests/data/spec-10-15.data +tests/data/str.data +tests/data/str.detect +tests/data/tags.events +tests/data/test_mark.marks +tests/data/timestamp-bugs.code +tests/data/timestamp-bugs.data +tests/data/timestamp.data +tests/data/timestamp.detect +tests/data/unacceptable-key.loader-error +tests/data/unclosed-bracket.loader-error +tests/data/unclosed-quoted-scalar.loader-error +tests/data/undefined-anchor.loader-error +tests/data/undefined-constructor.loader-error +tests/data/undefined-tag-handle.loader-error +tests/data/unknown.dumper-error +tests/data/unsupported-version.emitter-error +tests/data/utf16be.code +tests/data/utf16be.data +tests/data/utf16le.code +tests/data/utf16le.data +tests/data/utf8-implicit.code +tests/data/utf8-implicit.data +tests/data/utf8.code +tests/data/utf8.data +tests/data/value.data +tests/data/value.detect +tests/data/yaml.data +tests/data/yaml.detect +tests/lib/canonical.py +tests/lib/test_all.py +tests/lib/test_appliance.py +tests/lib/test_build.py +tests/lib/test_build_ext.py +tests/lib/test_canonical.py +tests/lib/test_constructor.py +tests/lib/test_emitter.py +tests/lib/test_errors.py +tests/lib/test_input_output.py +tests/lib/test_mark.py +tests/lib/test_multi_constructor.py +tests/lib/test_reader.py +tests/lib/test_recursive.py +tests/lib/test_representer.py +tests/lib/test_resolver.py +tests/lib/test_sort_keys.py +tests/lib/test_structure.py +tests/lib/test_tokens.py +tests/lib/test_yaml.py +tests/lib/test_yaml_ext.py +tests/lib3/canonical.py +tests/lib3/test_all.py +tests/lib3/test_appliance.py +tests/lib3/test_build.py +tests/lib3/test_build_ext.py +tests/lib3/test_canonical.py +tests/lib3/test_constructor.py +tests/lib3/test_emitter.py +tests/lib3/test_errors.py +tests/lib3/test_input_output.py +tests/lib3/test_mark.py +tests/lib3/test_multi_constructor.py +tests/lib3/test_reader.py +tests/lib3/test_recursive.py +tests/lib3/test_representer.py +tests/lib3/test_resolver.py +tests/lib3/test_sort_keys.py +tests/lib3/test_structure.py +tests/lib3/test_tokens.py +tests/lib3/test_yaml.py +tests/lib3/test_yaml_ext.py +yaml/__init__.pxd +yaml/_yaml.h +yaml/_yaml.pxd +yaml/_yaml.pyx \ No newline at end of file diff --git a/third_party/python/PyYAML/lib3/PyYAML.egg-info/dependency_links.txt b/third_party/python/PyYAML/lib3/PyYAML.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/PyYAML/lib3/PyYAML.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/PyYAML/lib3/PyYAML.egg-info/top_level.txt b/third_party/python/PyYAML/lib3/PyYAML.egg-info/top_level.txt new file mode 100644 index 000000000000..e6475e911f62 --- /dev/null +++ b/third_party/python/PyYAML/lib3/PyYAML.egg-info/top_level.txt @@ -0,0 +1,2 @@ +_yaml +yaml diff --git a/third_party/python/aiohttp/aiohttp.egg-info/PKG-INFO b/third_party/python/aiohttp/aiohttp.egg-info/PKG-INFO new file mode 100644 index 000000000000..a0c00158c790 --- /dev/null +++ b/third_party/python/aiohttp/aiohttp.egg-info/PKG-INFO @@ -0,0 +1,966 @@ +Metadata-Version: 2.1 +Name: aiohttp +Version: 3.7.4.post0 +Summary: Async http client/server framework (asyncio) +Home-page: https://github.com/aio-libs/aiohttp +Author: Nikolay Kim +Author-email: fafhrd91@gmail.com +Maintainer: Nikolay Kim , Andrew Svetlov +Maintainer-email: aio-libs@googlegroups.com +License: Apache 2 +Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby +Project-URL: CI: Azure Pipelines, https://dev.azure.com/aio-libs/aiohttp/_build +Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/aiohttp +Project-URL: Docs: RTD, https://docs.aiohttp.org +Project-URL: GitHub: issues, https://github.com/aio-libs/aiohttp/issues +Project-URL: GitHub: repo, https://github.com/aio-libs/aiohttp +Description: ================================== + Async http client/server framework + ================================== + + .. image:: https://raw.githubusercontent.com/aio-libs/aiohttp/master/docs/_static/aiohttp-icon-128x128.png + :height: 64px + :width: 64px + :alt: aiohttp logo + + | + + .. image:: https://github.com/aio-libs/aiohttp/workflows/CI/badge.svg + :target: https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI + :alt: GitHub Actions status for master branch + + .. image:: https://codecov.io/gh/aio-libs/aiohttp/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/aiohttp + :alt: codecov.io status for master branch + + .. image:: https://badge.fury.io/py/aiohttp.svg + :target: https://pypi.org/project/aiohttp + :alt: Latest PyPI package version + + .. image:: https://readthedocs.org/projects/aiohttp/badge/?version=latest + :target: https://docs.aiohttp.org/ + :alt: Latest Read The Docs + + .. image:: https://img.shields.io/discourse/status?server=https%3A%2F%2Faio-libs.discourse.group + :target: https://aio-libs.discourse.group + :alt: Discourse status + + .. image:: https://badges.gitter.im/Join%20Chat.svg + :target: https://gitter.im/aio-libs/Lobby + :alt: Chat on Gitter + + + Key Features + ============ + + - Supports both client and server side of HTTP protocol. + - Supports both client and server Web-Sockets out-of-the-box and avoids + Callback Hell. + - Provides Web-server with middlewares and plugable routing. + + + Getting started + =============== + + Client + ------ + + To get something from the web: + + .. code-block:: python + + import aiohttp + import asyncio + + async def main(): + + async with aiohttp.ClientSession() as session: + async with session.get('http://python.org') as response: + + print("Status:", response.status) + print("Content-type:", response.headers['content-type']) + + html = await response.text() + print("Body:", html[:15], "...") + + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) + + This prints: + + .. code-block:: + + Status: 200 + Content-type: text/html; charset=utf-8 + Body: ... + + Coming from `requests `_ ? Read `why we need so many lines `_. + + Server + ------ + + An example using a simple server: + + .. code-block:: python + + # examples/server_simple.py + from aiohttp import web + + async def handle(request): + name = request.match_info.get('name', "Anonymous") + text = "Hello, " + name + return web.Response(text=text) + + async def wshandle(request): + ws = web.WebSocketResponse() + await ws.prepare(request) + + async for msg in ws: + if msg.type == web.WSMsgType.text: + await ws.send_str("Hello, {}".format(msg.data)) + elif msg.type == web.WSMsgType.binary: + await ws.send_bytes(msg.data) + elif msg.type == web.WSMsgType.close: + break + + return ws + + + app = web.Application() + app.add_routes([web.get('/', handle), + web.get('/echo', wshandle), + web.get('/{name}', handle)]) + + if __name__ == '__main__': + web.run_app(app) + + + Documentation + ============= + + https://aiohttp.readthedocs.io/ + + + Demos + ===== + + https://github.com/aio-libs/aiohttp-demos + + + External links + ============== + + * `Third party libraries + `_ + * `Built with aiohttp + `_ + * `Powered by aiohttp + `_ + + Feel free to make a Pull Request for adding your link to these pages! + + + Communication channels + ====================== + + *aio-libs discourse group*: https://aio-libs.discourse.group + + *gitter chat* https://gitter.im/aio-libs/Lobby + + We support `Stack Overflow + `_. + Please add *aiohttp* tag to your question there. + + Requirements + ============ + + - Python >= 3.6 + - async-timeout_ + - attrs_ + - chardet_ + - multidict_ + - yarl_ + + Optionally you may install the cChardet_ and aiodns_ libraries (highly + recommended for sake of speed). + + .. _chardet: https://pypi.python.org/pypi/chardet + .. _aiodns: https://pypi.python.org/pypi/aiodns + .. _attrs: https://github.com/python-attrs/attrs + .. _multidict: https://pypi.python.org/pypi/multidict + .. _yarl: https://pypi.python.org/pypi/yarl + .. _async-timeout: https://pypi.python.org/pypi/async_timeout + .. _cChardet: https://pypi.python.org/pypi/cchardet + + License + ======= + + ``aiohttp`` is offered under the Apache 2 license. + + + Keepsafe + ======== + + The aiohttp community would like to thank Keepsafe + (https://www.getkeepsafe.com) for its support in the early days of + the project. + + + Source code + =========== + + The latest developer version is available in a GitHub repository: + https://github.com/aio-libs/aiohttp + + Benchmarks + ========== + + If you are interested in efficiency, the AsyncIO community maintains a + list of benchmarks on the official wiki: + https://github.com/python/asyncio/wiki/Benchmarks + + ========= + Changelog + ========= + + .. + You should *NOT* be adding new change log entries to this file, this + file is managed by towncrier. You *may* edit previous change logs to + fix problems like typo corrections or such. + To add a new change log entry, please see + https://pip.pypa.io/en/latest/development/#adding-a-news-entry + we named the news folder "changes". + + WARNING: Don't drop the next directive! + + .. towncrier release notes start + + 3.7.4.post0 (2021-03-06) + ======================== + + Misc + ---- + + - Bumped upper bound of the ``chardet`` runtime dependency + to allow their v4.0 version stream. + `#5366 `_ + + + ---- + + + 3.7.4 (2021-02-25) + ================== + + Bugfixes + -------- + + - **(SECURITY BUG)** Started preventing open redirects in the + ``aiohttp.web.normalize_path_middleware`` middleware. For + more details, see + https://github.com/aio-libs/aiohttp/security/advisories/GHSA-v6wp-4m6f-gcjg. + + Thanks to `Beast Glatisant `__ for + finding the first instance of this issue and `Jelmer Vernooij + `__ for reporting and tracking it down + in aiohttp. + `#5497 `_ + - Fix interpretation difference of the pure-Python and the Cython-based + HTTP parsers construct a ``yarl.URL`` object for HTTP request-target. + + Before this fix, the Python parser would turn the URI's absolute-path + for ``//some-path`` into ``/`` while the Cython code preserved it as + ``//some-path``. Now, both do the latter. + `#5498 `_ + + + ---- + + + 3.7.3 (2020-11-18) + ================== + + Features + -------- + + - Use Brotli instead of brotlipy + `#3803 `_ + - Made exceptions pickleable. Also changed the repr of some exceptions. + `#4077 `_ + + + Bugfixes + -------- + + - Raise a ClientResponseError instead of an AssertionError for a blank + HTTP Reason Phrase. + `#3532 `_ + - Fix ``web_middlewares.normalize_path_middleware`` behavior for patch without slash. + `#3669 `_ + - Fix overshadowing of overlapped sub-applications prefixes. + `#3701 `_ + - Make `BaseConnector.close()` a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax. + `#3736 `_ + - Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.client`` response. + `#3808 `_ + - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View + `#3880 `_ + - Fixed querying the address families from DNS that the current host supports. + `#5156 `_ + - Change return type of MultipartReader.__aiter__() and BodyPartReader.__aiter__() to AsyncIterator. + `#5163 `_ + - Provide x86 Windows wheels. + `#5230 `_ + + + Improved Documentation + ---------------------- + + - Add documentation for ``aiohttp.web.FileResponse``. + `#3958 `_ + - Removed deprecation warning in tracing example docs + `#3964 `_ + - Fixed wrong "Usage" docstring of ``aiohttp.client.request``. + `#4603 `_ + - Add aiohttp-pydantic to third party libraries + `#5228 `_ + + + Misc + ---- + + - `#4102 `_ + + + ---- + + + 3.7.2 (2020-10-27) + ================== + + Bugfixes + -------- + + - Fixed static files handling for loops without ``.sendfile()`` support + `#5149 `_ + + + ---- + + + 3.7.1 (2020-10-25) + ================== + + Bugfixes + -------- + + - Fixed a type error caused by the conditional import of `Protocol`. + `#5111 `_ + - Server doesn't send Content-Length for 1xx or 204 + `#4901 `_ + - Fix run_app typing + `#4957 `_ + - Always require ``typing_extensions`` library. + `#5107 `_ + - Fix a variable-shadowing bug causing `ThreadedResolver.resolve` to + return the resolved IP as the ``hostname`` in each record, which prevented + validation of HTTPS connections. + `#5110 `_ + - Added annotations to all public attributes. + `#5115 `_ + - Fix flaky test_when_timeout_smaller_second + `#5116 `_ + - Ensure sending a zero byte file does not throw an exception + `#5124 `_ + - Fix a bug in ``web.run_app()`` about Python version checking on Windows + `#5127 `_ + + + ---- + + + 3.7.0 (2020-10-24) + ================== + + Features + -------- + + - Response headers are now prepared prior to running ``on_response_prepare`` hooks, directly before headers are sent to the client. + `#1958 `_ + - Add a ``quote_cookie`` option to ``CookieJar``, a way to skip quotation wrapping of cookies containing special characters. + `#2571 `_ + - Call ``AccessLogger.log`` with the current exception available from ``sys.exc_info()``. + `#3557 `_ + - `web.UrlDispatcher.add_routes` and `web.Application.add_routes` return a list + of registered `AbstractRoute` instances. `AbstractRouteDef.register` (and all + subclasses) return a list of registered resources registered resource. + `#3866 `_ + - Added properties of default ClientSession params to ClientSession class so it is available for introspection + `#3882 `_ + - Don't cancel web handler on peer disconnection, raise `OSError` on reading/writing instead. + `#4080 `_ + - Implement BaseRequest.get_extra_info() to access a protocol transports' extra info. + `#4189 `_ + - Added `ClientSession.timeout` property. + `#4191 `_ + - allow use of SameSite in cookies. + `#4224 `_ + - Use ``loop.sendfile()`` instead of custom implementation if available. + `#4269 `_ + - Apply SO_REUSEADDR to test server's socket. + `#4393 `_ + - Use .raw_host instead of slower .host in client API + `#4402 `_ + - Allow configuring the buffer size of input stream by passing ``read_bufsize`` argument. + `#4453 `_ + - Pass tests on Python 3.8 for Windows. + `#4513 `_ + - Add `method` and `url` attributes to `TraceRequestChunkSentParams` and `TraceResponseChunkReceivedParams`. + `#4674 `_ + - Add ClientResponse.ok property for checking status code under 400. + `#4711 `_ + - Don't ceil timeouts that are smaller than 5 seconds. + `#4850 `_ + - TCPSite now listens by default on all interfaces instead of just IPv4 when `None` is passed in as the host. + `#4894 `_ + - Bump ``http_parser`` to 2.9.4 + `#5070 `_ + + + Bugfixes + -------- + + - Fix keepalive connections not being closed in time + `#3296 `_ + - Fix failed websocket handshake leaving connection hanging. + `#3380 `_ + - Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact. + `#3805 `_ + - Don't start heartbeat until _writer is set + `#4062 `_ + - Fix handling of multipart file uploads without a content type. + `#4089 `_ + - Preserve view handler function attributes across middlewares + `#4174 `_ + - Fix the string representation of ``ServerDisconnectedError``. + `#4175 `_ + - Raising RuntimeError when trying to get encoding from not read body + `#4214 `_ + - Remove warning messages from noop. + `#4282 `_ + - Raise ClientPayloadError if FormData re-processed. + `#4345 `_ + - Fix a warning about unfinished task in ``web_protocol.py`` + `#4408 `_ + - Fixed 'deflate' compression. According to RFC 2616 now. + `#4506 `_ + - Fixed OverflowError on platforms with 32-bit time_t + `#4515 `_ + - Fixed request.body_exists returns wrong value for methods without body. + `#4528 `_ + - Fix connecting to link-local IPv6 addresses. + `#4554 `_ + - Fix a problem with connection waiters that are never awaited. + `#4562 `_ + - Always make sure transport is not closing before reuse a connection. + + Reuse a protocol based on keepalive in headers is unreliable. + For example, uWSGI will not support keepalive even it serves a + HTTP 1.1 request, except explicitly configure uWSGI with a + ``--http-keepalive`` option. + + Servers designed like uWSGI could cause aiohttp intermittently + raise a ConnectionResetException when the protocol poll runs + out and some protocol is reused. + `#4587 `_ + - Handle the last CRLF correctly even if it is received via separate TCP segment. + `#4630 `_ + - Fix the register_resource function to validate route name before splitting it so that route name can include python keywords. + `#4691 `_ + - Improve typing annotations for ``web.Request``, ``aiohttp.ClientResponse`` and + ``multipart`` module. + `#4736 `_ + - Fix resolver task is not awaited when connector is cancelled + `#4795 `_ + - Fix a bug "Aiohttp doesn't return any error on invalid request methods" + `#4798 `_ + - Fix HEAD requests for static content. + `#4809 `_ + - Fix incorrect size calculation for memoryview + `#4890 `_ + - Add HTTPMove to _all__. + `#4897 `_ + - Fixed the type annotations in the ``tracing`` module. + `#4912 `_ + - Fix typing for multipart ``__aiter__``. + `#4931 `_ + - Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit. + `#4936 `_ + - Add forced UTF-8 encoding for ``application/rdap+json`` responses. + `#4938 `_ + - Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL. + `#4972 `_ + - Fix connection closing issue in HEAD request. + `#5012 `_ + - Fix type hint on BaseRunner.addresses (from ``List[str]`` to ``List[Any]``) + `#5086 `_ + - Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly + increases CPU load as a side effect. + `#5098 `_ + + + Improved Documentation + ---------------------- + + - Fix example code in client quick-start + `#3376 `_ + - Updated the docs so there is no contradiction in ``ttl_dns_cache`` default value + `#3512 `_ + - Add 'Deploy with SSL' to docs. + `#4201 `_ + - Change typing of the secure argument on StreamResponse.set_cookie from ``Optional[str]`` to ``Optional[bool]`` + `#4204 `_ + - Changes ``ttl_dns_cache`` type from int to Optional[int]. + `#4270 `_ + - Simplify README hello word example and add a documentation page for people coming from requests. + `#4272 `_ + - Improve some code examples in the documentation involving websockets and starting a simple HTTP site with an AppRunner. + `#4285 `_ + - Fix typo in code example in Multipart docs + `#4312 `_ + - Fix code example in Multipart section. + `#4314 `_ + - Update contributing guide so new contributors read the most recent version of that guide. Update command used to create test coverage reporting. + `#4810 `_ + - Spelling: Change "canonize" to "canonicalize". + `#4986 `_ + - Add ``aiohttp-sse-client`` library to third party usage list. + `#5084 `_ + + + Misc + ---- + + - `#2856 `_, `#4218 `_, `#4250 `_ + + + ---- + + + 3.6.3 (2020-10-12) + ================== + + Bugfixes + -------- + + - Pin yarl to ``<1.6.0`` to avoid buggy behavior that will be fixed by the next aiohttp + release. + + 3.6.2 (2019-10-09) + ================== + + Features + -------- + + - Made exceptions pickleable. Also changed the repr of some exceptions. + `#4077 `_ + - Use ``Iterable`` type hint instead of ``Sequence`` for ``Application`` *middleware* + parameter. `#4125 `_ + + + Bugfixes + -------- + + - Reset the ``sock_read`` timeout each time data is received for a + ``aiohttp.ClientResponse``. `#3808 + `_ + - Fix handling of expired cookies so they are not stored in CookieJar. + `#4063 `_ + - Fix misleading message in the string representation of ``ClientConnectorError``; + ``self.ssl == None`` means default SSL context, not SSL disabled `#4097 + `_ + - Don't clobber HTTP status when using FileResponse. + `#4106 `_ + + + Improved Documentation + ---------------------- + + - Added minimal required logging configuration to logging documentation. + `#2469 `_ + - Update docs to reflect proxy support. + `#4100 `_ + - Fix typo in code example in testing docs. + `#4108 `_ + + + Misc + ---- + + - `#4102 `_ + + + ---- + + + 3.6.1 (2019-09-19) + ================== + + Features + -------- + + - Compatibility with Python 3.8. + `#4056 `_ + + + Bugfixes + -------- + + - correct some exception string format + `#4068 `_ + - Emit a warning when ``ssl.OP_NO_COMPRESSION`` is + unavailable because the runtime is built against + an outdated OpenSSL. + `#4052 `_ + - Update multidict requirement to >= 4.5 + `#4057 `_ + + + Improved Documentation + ---------------------- + + - Provide pytest-aiohttp namespace for pytest fixtures in docs. + `#3723 `_ + + + ---- + + + 3.6.0 (2019-09-06) + ================== + + Features + -------- + + - Add support for Named Pipes (Site and Connector) under Windows. This feature requires + Proactor event loop to work. `#3629 + `_ + - Removed ``Transfer-Encoding: chunked`` header from websocket responses to be + compatible with more http proxy servers. `#3798 + `_ + - Accept non-GET request for starting websocket handshake on server side. + `#3980 `_ + + + Bugfixes + -------- + + - Raise a ClientResponseError instead of an AssertionError for a blank + HTTP Reason Phrase. + `#3532 `_ + - Fix an issue where cookies would sometimes not be set during a redirect. + `#3576 `_ + - Change normalize_path_middleware to use 308 redirect instead of 301. + + This behavior should prevent clients from being unable to use PUT/POST + methods on endpoints that are redirected because of a trailing slash. + `#3579 `_ + - Drop the processed task from ``all_tasks()`` list early. It prevents logging about a + task with unhandled exception when the server is used in conjunction with + ``asyncio.run()``. `#3587 `_ + - ``Signal`` type annotation changed from ``Signal[Callable[['TraceConfig'], + Awaitable[None]]]`` to ``Signal[Callable[ClientSession, SimpleNamespace, ...]``. + `#3595 `_ + - Use sanitized URL as Location header in redirects + `#3614 `_ + - Improve typing annotations for multipart.py along with changes required + by mypy in files that references multipart.py. + `#3621 `_ + - Close session created inside ``aiohttp.request`` when unhandled exception occurs + `#3628 `_ + - Cleanup per-chunk data in generic data read. Memory leak fixed. + `#3631 `_ + - Use correct type for add_view and family + `#3633 `_ + - Fix _keepalive field in __slots__ of ``RequestHandler``. + `#3644 `_ + - Properly handle ConnectionResetError, to silence the "Cannot write to closing + transport" exception when clients disconnect uncleanly. + `#3648 `_ + - Suppress pytest warnings due to ``test_utils`` classes + `#3660 `_ + - Fix overshadowing of overlapped sub-application prefixes. + `#3701 `_ + - Fixed return type annotation for WSMessage.json() + `#3720 `_ + - Properly expose TooManyRedirects publicly as documented. + `#3818 `_ + - Fix missing brackets for IPv6 in proxy CONNECT request + `#3841 `_ + - Make the signature of ``aiohttp.test_utils.TestClient.request`` match + ``asyncio.ClientSession.request`` according to the docs `#3852 + `_ + - Use correct style for re-exported imports, makes mypy ``--strict`` mode happy. + `#3868 `_ + - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of + View `#3880 `_ + - Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is + missing. `#3906 `_ + - Add URL to the string representation of ClientResponseError. + `#3959 `_ + - Accept ``istr`` keys in ``LooseHeaders`` type hints. + `#3976 `_ + - Fixed race conditions in _resolve_host caching and throttling when tracing is enabled. + `#4013 `_ + - For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of + "localhost:None". `#4039 `_ + + + Improved Documentation + ---------------------- + + - Modify documentation for Background Tasks to remove deprecated usage of event loop. + `#3526 `_ + - use ``if __name__ == '__main__':`` in server examples. + `#3775 `_ + - Update documentation reference to the default access logger. + `#3783 `_ + - Improve documentation for ``web.BaseRequest.path`` and ``web.BaseRequest.raw_path``. + `#3791 `_ + - Removed deprecation warning in tracing example docs + `#3964 `_ + + + ---- + + + 3.5.4 (2019-01-12) + ================== + + Bugfixes + -------- + + - Fix stream ``.read()`` / ``.readany()`` / ``.iter_any()`` which used to return a + partial content only in case of compressed content + `#3525 `_ + + + 3.5.3 (2019-01-10) + ================== + + Bugfixes + -------- + + - Fix type stubs for ``aiohttp.web.run_app(access_log=True)`` and fix edge case of + ``access_log=True`` and the event loop being in debug mode. `#3504 + `_ + - Fix ``aiohttp.ClientTimeout`` type annotations to accept ``None`` for fields + `#3511 `_ + - Send custom per-request cookies even if session jar is empty + `#3515 `_ + - Restore Linux binary wheels publishing on PyPI + + ---- + + + 3.5.2 (2019-01-08) + ================== + + Features + -------- + + - ``FileResponse`` from ``web_fileresponse.py`` uses a ``ThreadPoolExecutor`` to work + with files asynchronously. I/O based payloads from ``payload.py`` uses a + ``ThreadPoolExecutor`` to work with I/O objects asynchronously. `#3313 + `_ + - Internal Server Errors in plain text if the browser does not support HTML. + `#3483 `_ + + + Bugfixes + -------- + + - Preserve MultipartWriter parts headers on write. Refactor the way how + ``Payload.headers`` are handled. Payload instances now always have headers and + Content-Type defined. Fix Payload Content-Disposition header reset after initial + creation. `#3035 `_ + - Log suppressed exceptions in ``GunicornWebWorker``. + `#3464 `_ + - Remove wildcard imports. + `#3468 `_ + - Use the same task for app initialization and web server handling in gunicorn workers. + It allows to use Python3.7 context vars smoothly. + `#3471 `_ + - Fix handling of chunked+gzipped response when first chunk does not give uncompressed + data `#3477 `_ + - Replace ``collections.MutableMapping`` with ``collections.abc.MutableMapping`` to + avoid a deprecation warning. `#3480 + `_ + - ``Payload.size`` type annotation changed from ``Optional[float]`` to + ``Optional[int]``. `#3484 `_ + - Ignore done tasks when cancels pending activities on ``web.run_app`` finalization. + `#3497 `_ + + + Improved Documentation + ---------------------- + + - Add documentation for ``aiohttp.web.HTTPException``. + `#3490 `_ + + + Misc + ---- + + - `#3487 `_ + + + ---- + + + 3.5.1 (2018-12-24) + ==================== + + - Fix a regression about ``ClientSession._requote_redirect_url`` modification in debug + mode. + + 3.5.0 (2018-12-22) + ==================== + + Features + -------- + + - The library type annotations are checked in strict mode now. + - Add support for setting cookies for individual request (`#2387 + `_) + - Application.add_domain implementation (`#2809 + `_) + - The default ``app`` in the request returned by ``test_utils.make_mocked_request`` can + now have objects assigned to it and retrieved using the ``[]`` operator. (`#3174 + `_) + - Make ``request.url`` accessible when transport is closed. (`#3177 + `_) + - Add ``zlib_executor_size`` argument to ``Response`` constructor to allow compression + to run in a background executor to avoid blocking the main thread and potentially + triggering health check failures. (`#3205 + `_) + - Enable users to set ``ClientTimeout`` in ``aiohttp.request`` (`#3213 + `_) + - Don't raise a warning if ``NETRC`` environment variable is not set and ``~/.netrc`` + file doesn't exist. (`#3267 `_) + - Add default logging handler to web.run_app If the ``Application.debug``` flag is set + and the default logger ``aiohttp.access`` is used, access logs will now be output + using a *stderr* ``StreamHandler`` if no handlers are attached. Furthermore, if the + default logger has no log level set, the log level will be set to ``DEBUG``. (`#3324 + `_) + - Add method argument to ``session.ws_connect()``. Sometimes server API requires a + different HTTP method for WebSocket connection establishment. For example, ``Docker + exec`` needs POST. (`#3378 `_) + - Create a task per request handling. (`#3406 + `_) + + + Bugfixes + -------- + + - Enable passing ``access_log_class`` via ``handler_args`` (`#3158 + `_) + - Return empty bytes with end-of-chunk marker in empty stream reader. (`#3186 + `_) + - Accept ``CIMultiDictProxy`` instances for ``headers`` argument in ``web.Response`` + constructor. (`#3207 `_) + - Don't uppercase HTTP method in parser (`#3233 + `_) + - Make method match regexp RFC-7230 compliant (`#3235 + `_) + - Add ``app.pre_frozen`` state to properly handle startup signals in + sub-applications. (`#3237 `_) + - Enhanced parsing and validation of helpers.BasicAuth.decode. (`#3239 + `_) + - Change imports from collections module in preparation for 3.8. (`#3258 + `_) + - Ensure Host header is added first to ClientRequest to better replicate browser (`#3265 + `_) + - Fix forward compatibility with Python 3.8: importing ABCs directly from the + collections module will not be supported anymore. (`#3273 + `_) + - Keep the query string by ``normalize_path_middleware``. (`#3278 + `_) + - Fix missing parameter ``raise_for_status`` for aiohttp.request() (`#3290 + `_) + - Bracket IPv6 addresses in the HOST header (`#3304 + `_) + - Fix default message for server ping and pong frames. (`#3308 + `_) + - Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop + def. (`#3337 `_) + - Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function + (`#3361 `_) + - Release HTTP response before raising status exception (`#3364 + `_) + - Fix task cancellation when ``sendfile()`` syscall is used by static file + handling. (`#3383 `_) + - Fix stack trace for ``asyncio.TimeoutError`` which was not logged, when it is caught + in the handler. (`#3414 `_) + + + Improved Documentation + ---------------------- + + - Improve documentation of ``Application.make_handler`` parameters. (`#3152 + `_) + - Fix BaseRequest.raw_headers doc. (`#3215 + `_) + - Fix typo in TypeError exception reason in ``web.Application._handle`` (`#3229 + `_) + - Make server access log format placeholder %b documentation reflect + behavior and docstring. (`#3307 `_) + + + Deprecations and Removals + ------------------------- + + - Deprecate modification of ``session.requote_redirect_url`` (`#2278 + `_) + - Deprecate ``stream.unread_data()`` (`#3260 + `_) + - Deprecated use of boolean in ``resp.enable_compression()`` (`#3318 + `_) + - Encourage creation of aiohttp public objects inside a coroutine (`#3331 + `_) + - Drop dead ``Connection.detach()`` and ``Connection.writer``. Both methods were broken + for more than 2 years. (`#3358 `_) + - Deprecate ``app.loop``, ``request.loop``, ``client.loop`` and ``connector.loop`` + properties. (`#3374 `_) + - Deprecate explicit debug argument. Use asyncio debug mode instead. (`#3381 + `_) + - Deprecate body parameter in HTTPException (and derived classes) constructor. (`#3385 + `_) + - Deprecate bare connector close, use ``async with connector:`` and ``await + connector.close()`` instead. (`#3417 + `_) + - Deprecate obsolete ``read_timeout`` and ``conn_timeout`` in ``ClientSession`` + constructor. (`#3438 `_) + + + Misc + ---- + + - #3341, #3351 +Platform: UNKNOWN +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Development Status :: 5 - Production/Stable +Classifier: Operating System :: POSIX +Classifier: Operating System :: MacOS :: MacOS X +Classifier: Operating System :: Microsoft :: Windows +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Framework :: AsyncIO +Requires-Python: >=3.6 +Provides-Extra: speedups diff --git a/third_party/python/aiohttp/aiohttp.egg-info/SOURCES.txt b/third_party/python/aiohttp/aiohttp.egg-info/SOURCES.txt new file mode 100644 index 000000000000..e006e2a0d816 --- /dev/null +++ b/third_party/python/aiohttp/aiohttp.egg-info/SOURCES.txt @@ -0,0 +1,246 @@ +CHANGES.rst +CONTRIBUTORS.txt +LICENSE.txt +MANIFEST.in +Makefile +README.rst +pyproject.toml +setup.cfg +setup.py +aiohttp/__init__.py +aiohttp/_cparser.pxd +aiohttp/_find_header.c +aiohttp/_find_header.h +aiohttp/_find_header.pxd +aiohttp/_frozenlist.c +aiohttp/_frozenlist.pyx +aiohttp/_headers.pxi +aiohttp/_helpers.c +aiohttp/_helpers.pyi +aiohttp/_helpers.pyx +aiohttp/_http_parser.c +aiohttp/_http_parser.pyx +aiohttp/_http_writer.c +aiohttp/_http_writer.pyx +aiohttp/_websocket.c +aiohttp/_websocket.pyx +aiohttp/abc.py +aiohttp/base_protocol.py +aiohttp/client.py +aiohttp/client_exceptions.py +aiohttp/client_proto.py +aiohttp/client_reqrep.py +aiohttp/client_ws.py +aiohttp/connector.py +aiohttp/cookiejar.py +aiohttp/formdata.py +aiohttp/frozenlist.py +aiohttp/frozenlist.pyi +aiohttp/hdrs.py +aiohttp/helpers.py +aiohttp/http.py +aiohttp/http_exceptions.py +aiohttp/http_parser.py +aiohttp/http_websocket.py +aiohttp/http_writer.py +aiohttp/locks.py +aiohttp/log.py +aiohttp/multipart.py +aiohttp/payload.py +aiohttp/payload_streamer.py +aiohttp/py.typed +aiohttp/pytest_plugin.py +aiohttp/resolver.py +aiohttp/signals.py +aiohttp/signals.pyi +aiohttp/streams.py +aiohttp/tcp_helpers.py +aiohttp/test_utils.py +aiohttp/tracing.py +aiohttp/typedefs.py +aiohttp/web.py +aiohttp/web_app.py +aiohttp/web_exceptions.py +aiohttp/web_fileresponse.py +aiohttp/web_log.py +aiohttp/web_middlewares.py +aiohttp/web_protocol.py +aiohttp/web_request.py +aiohttp/web_response.py +aiohttp/web_routedef.py +aiohttp/web_runner.py +aiohttp/web_server.py +aiohttp/web_urldispatcher.py +aiohttp/web_ws.py +aiohttp/worker.py +aiohttp.egg-info/PKG-INFO +aiohttp.egg-info/SOURCES.txt +aiohttp.egg-info/dependency_links.txt +aiohttp.egg-info/requires.txt +aiohttp.egg-info/top_level.txt +aiohttp/.hash/_cparser.pxd.hash +aiohttp/.hash/_find_header.pxd.hash +aiohttp/.hash/_frozenlist.pyx.hash +aiohttp/.hash/_helpers.pyi.hash +aiohttp/.hash/_helpers.pyx.hash +aiohttp/.hash/_http_parser.pyx.hash +aiohttp/.hash/_http_writer.pyx.hash +aiohttp/.hash/_websocket.pyx.hash +aiohttp/.hash/frozenlist.pyi.hash +aiohttp/.hash/hdrs.py.hash +aiohttp/.hash/signals.pyi.hash +docs/Makefile +docs/abc.rst +docs/aiohttp-icon.svg +docs/aiohttp-plain.svg +docs/built_with.rst +docs/changes.rst +docs/client.rst +docs/client_advanced.rst +docs/client_quickstart.rst +docs/client_reference.rst +docs/conf.py +docs/contributing.rst +docs/deployment.rst +docs/essays.rst +docs/external.rst +docs/faq.rst +docs/favicon.ico +docs/glossary.rst +docs/http_request_lifecycle.rst +docs/index.rst +docs/logging.rst +docs/make.bat +docs/migration_to_2xx.rst +docs/misc.rst +docs/multipart.rst +docs/multipart_reference.rst +docs/new_router.rst +docs/old-logo.png +docs/old-logo.svg +docs/powered_by.rst +docs/signals.rst +docs/spelling_wordlist.txt +docs/streams.rst +docs/structures.rst +docs/testing.rst +docs/third_party.rst +docs/tracing_reference.rst +docs/utilities.rst +docs/web.rst +docs/web_advanced.rst +docs/web_lowlevel.rst +docs/web_quickstart.rst +docs/web_reference.rst +docs/websocket_utilities.rst +docs/whats_new_1_1.rst +docs/whats_new_3_0.rst +docs/_static/aiohttp-icon-128x128.png +examples/background_tasks.py +examples/cli_app.py +examples/client_auth.py +examples/client_json.py +examples/client_ws.py +examples/curl.py +examples/fake_server.py +examples/lowlevel_srv.py +examples/server.crt +examples/server.csr +examples/server.key +examples/server_simple.py +examples/static_files.py +examples/web_classview.py +examples/web_cookies.py +examples/web_rewrite_headers_middleware.py +examples/web_srv.py +examples/web_srv_route_deco.py +examples/web_srv_route_table.py +examples/web_ws.py +examples/websocket.html +examples/legacy/crawl.py +examples/legacy/srv.py +examples/legacy/tcp_protocol_parser.py +tests/aiohttp.jpg +tests/aiohttp.png +tests/conftest.py +tests/data.unknown_mime_type +tests/data.zero_bytes +tests/hello.txt.gz +tests/test_base_protocol.py +tests/test_classbasedview.py +tests/test_client_connection.py +tests/test_client_exceptions.py +tests/test_client_fingerprint.py +tests/test_client_functional.py +tests/test_client_proto.py +tests/test_client_request.py +tests/test_client_response.py +tests/test_client_session.py +tests/test_client_ws.py +tests/test_client_ws_functional.py +tests/test_connector.py +tests/test_cookiejar.py +tests/test_flowcontrol_streams.py +tests/test_formdata.py +tests/test_frozenlist.py +tests/test_helpers.py +tests/test_http_exceptions.py +tests/test_http_parser.py +tests/test_http_writer.py +tests/test_locks.py +tests/test_loop.py +tests/test_multipart.py +tests/test_multipart_helpers.py +tests/test_payload.py +tests/test_proxy.py +tests/test_proxy_functional.py +tests/test_pytest_plugin.py +tests/test_resolver.py +tests/test_route_def.py +tests/test_run_app.py +tests/test_signals.py +tests/test_streams.py +tests/test_tcp_helpers.py +tests/test_test_utils.py +tests/test_tracing.py +tests/test_urldispatch.py +tests/test_web_app.py +tests/test_web_cli.py +tests/test_web_exceptions.py +tests/test_web_functional.py +tests/test_web_log.py +tests/test_web_middleware.py +tests/test_web_protocol.py +tests/test_web_request.py +tests/test_web_request_handler.py +tests/test_web_response.py +tests/test_web_runner.py +tests/test_web_sendfile.py +tests/test_web_sendfile_functional.py +tests/test_web_server.py +tests/test_web_urldispatcher.py +tests/test_web_websocket.py +tests/test_web_websocket_functional.py +tests/test_websocket_handshake.py +tests/test_websocket_parser.py +tests/test_websocket_writer.py +tests/test_worker.py +tests/autobahn/client.py +tests/autobahn/fuzzingclient.json +tests/autobahn/fuzzingserver.json +tests/autobahn/server.py +vendor/http-parser/.git +vendor/http-parser/.gitignore +vendor/http-parser/.mailmap +vendor/http-parser/.travis.yml +vendor/http-parser/AUTHORS +vendor/http-parser/LICENSE-MIT +vendor/http-parser/Makefile +vendor/http-parser/README.md +vendor/http-parser/bench.c +vendor/http-parser/http_parser.c +vendor/http-parser/http_parser.gyp +vendor/http-parser/http_parser.h +vendor/http-parser/test.c +vendor/http-parser/contrib/parsertrace.c +vendor/http-parser/contrib/url_parser.c \ No newline at end of file diff --git a/third_party/python/aiohttp/aiohttp.egg-info/dependency_links.txt b/third_party/python/aiohttp/aiohttp.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/aiohttp/aiohttp.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/aiohttp/aiohttp.egg-info/requires.txt b/third_party/python/aiohttp/aiohttp.egg-info/requires.txt new file mode 100644 index 000000000000..746f3f8655e4 --- /dev/null +++ b/third_party/python/aiohttp/aiohttp.egg-info/requires.txt @@ -0,0 +1,14 @@ +attrs>=17.3.0 +chardet<5.0,>=2.0 +multidict<7.0,>=4.5 +async_timeout<4.0,>=3.0 +yarl<2.0,>=1.0 +typing_extensions>=3.6.5 + +[:python_version < "3.7"] +idna-ssl>=1.0 + +[speedups] +aiodns +brotlipy +cchardet diff --git a/third_party/python/aiohttp/aiohttp.egg-info/top_level.txt b/third_party/python/aiohttp/aiohttp.egg-info/top_level.txt new file mode 100644 index 000000000000..ee4ba4f3d739 --- /dev/null +++ b/third_party/python/aiohttp/aiohttp.egg-info/top_level.txt @@ -0,0 +1 @@ +aiohttp diff --git a/third_party/python/coverage/coverage.egg-info/PKG-INFO b/third_party/python/coverage/coverage.egg-info/PKG-INFO new file mode 100644 index 000000000000..181e84b15c42 --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/PKG-INFO @@ -0,0 +1,187 @@ +Metadata-Version: 2.1 +Name: coverage +Version: 5.1 +Summary: Code coverage measurement for Python +Home-page: https://github.com/nedbat/coveragepy +Author: Ned Batchelder and 131 others +Author-email: ned@nedbatchelder.com +License: Apache 2.0 +Project-URL: Documentation, https://coverage.readthedocs.io +Project-URL: Funding, https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=pypi +Project-URL: Issues, https://github.com/nedbat/coveragepy/issues +Description: .. Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 + .. For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt + + =========== + Coverage.py + =========== + + Code coverage testing for Python. + + | |license| |versions| |status| + | |ci-status| |win-ci-status| |docs| |codecov| + | |kit| |format| |repos| + | |stars| |forks| |contributors| + | |tidelift| |twitter-coveragepy| |twitter-nedbat| + + Coverage.py measures code coverage, typically during test execution. It uses + the code analysis tools and tracing hooks provided in the Python standard + library to determine which lines are executable, and which have been executed. + + Coverage.py runs on many versions of Python: + + * CPython 2.7. + * CPython 3.5 through 3.9 alpha 4. + * PyPy2 7.3.0 and PyPy3 7.3.0. + + Documentation is on `Read the Docs`_. Code repository and issue tracker are on + `GitHub`_. + + .. _Read the Docs: https://coverage.readthedocs.io/ + .. _GitHub: https://github.com/nedbat/coveragepy + + + **New in 5.0:** SQLite data storage, JSON report, contexts, relative filenames, + dropped support for Python 2.6, 3.3 and 3.4. + + + For Enterprise + -------------- + + .. |tideliftlogo| image:: https://nedbatchelder.com/pix/Tidelift_Logo_small.png + :width: 75 + :alt: Tidelift + :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme + + .. list-table:: + :widths: 10 100 + + * - |tideliftlogo| + - `Available as part of the Tidelift Subscription. `_ + Coverage and thousands of other packages are working with + Tidelift to deliver one enterprise subscription that covers all of the open + source you use. If you want the flexibility of open source and the confidence + of commercial-grade software, this is for you. + `Learn more. `_ + + + Getting Started + --------------- + + See the `Quick Start section`_ of the docs. + + .. _Quick Start section: https://coverage.readthedocs.io/#quick-start + + + Change history + -------------- + + The complete history of changes is on the `change history page`_. + + .. _change history page: https://coverage.readthedocs.io/en/latest/changes.html + + + Contributing + ------------ + + See the `Contributing section`_ of the docs. + + .. _Contributing section: https://coverage.readthedocs.io/en/latest/contributing.html + + + Security + -------- + + To report a security vulnerability, please use the `Tidelift security + contact`_. Tidelift will coordinate the fix and disclosure. + + .. _Tidelift security contact: https://tidelift.com/security + + + License + ------- + + Licensed under the `Apache 2.0 License`_. For details, see `NOTICE.txt`_. + + .. _Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0 + .. _NOTICE.txt: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt + + + .. |ci-status| image:: https://travis-ci.com/nedbat/coveragepy.svg?branch=master + :target: https://travis-ci.com/nedbat/coveragepy + :alt: Build status + .. |win-ci-status| image:: https://ci.appveyor.com/api/projects/status/kmeqpdje7h9r6vsf/branch/master?svg=true + :target: https://ci.appveyor.com/project/nedbat/coveragepy + :alt: Windows build status + .. |docs| image:: https://readthedocs.org/projects/coverage/badge/?version=latest&style=flat + :target: https://coverage.readthedocs.io/ + :alt: Documentation + .. |reqs| image:: https://requires.io/github/nedbat/coveragepy/requirements.svg?branch=master + :target: https://requires.io/github/nedbat/coveragepy/requirements/?branch=master + :alt: Requirements status + .. |kit| image:: https://badge.fury.io/py/coverage.svg + :target: https://pypi.org/project/coverage/ + :alt: PyPI status + .. |format| image:: https://img.shields.io/pypi/format/coverage.svg + :target: https://pypi.org/project/coverage/ + :alt: Kit format + .. |downloads| image:: https://img.shields.io/pypi/dw/coverage.svg + :target: https://pypi.org/project/coverage/ + :alt: Weekly PyPI downloads + .. |versions| image:: https://img.shields.io/pypi/pyversions/coverage.svg?logo=python&logoColor=FBE072 + :target: https://pypi.org/project/coverage/ + :alt: Python versions supported + .. |status| image:: https://img.shields.io/pypi/status/coverage.svg + :target: https://pypi.org/project/coverage/ + :alt: Package stability + .. |license| image:: https://img.shields.io/pypi/l/coverage.svg + :target: https://pypi.org/project/coverage/ + :alt: License + .. |codecov| image:: https://codecov.io/github/nedbat/coveragepy/coverage.svg?branch=master&precision=2 + :target: https://codecov.io/github/nedbat/coveragepy?branch=master + :alt: Coverage! + .. |repos| image:: https://repology.org/badge/tiny-repos/python:coverage.svg + :target: https://repology.org/metapackage/python:coverage/versions + :alt: Packaging status + .. |tidelift| image:: https://tidelift.com/badges/package/pypi/coverage + :target: https://tidelift.com/subscription/pkg/pypi-coverage?utm_source=pypi-coverage&utm_medium=referral&utm_campaign=readme + :alt: Tidelift + .. |stars| image:: https://img.shields.io/github/stars/nedbat/coveragepy.svg?logo=github + :target: https://github.com/nedbat/coveragepy/stargazers + :alt: Github stars + .. |forks| image:: https://img.shields.io/github/forks/nedbat/coveragepy.svg?logo=github + :target: https://github.com/nedbat/coveragepy/network/members + :alt: Github forks + .. |contributors| image:: https://img.shields.io/github/contributors/nedbat/coveragepy.svg?logo=github + :target: https://github.com/nedbat/coveragepy/graphs/contributors + :alt: Contributors + .. |twitter-coveragepy| image:: https://img.shields.io/twitter/follow/coveragepy.svg?label=coveragepy&style=flat&logo=twitter&logoColor=4FADFF + :target: https://twitter.com/coveragepy + :alt: coverage.py on Twitter + .. |twitter-nedbat| image:: https://img.shields.io/twitter/follow/nedbat.svg?label=nedbat&style=flat&logo=twitter&logoColor=4FADFF + :target: https://twitter.com/nedbat + :alt: nedbat on Twitter + +Keywords: code coverage testing +Platform: UNKNOWN +Classifier: Environment :: Console +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Classifier: Topic :: Software Development :: Quality Assurance +Classifier: Topic :: Software Development :: Testing +Classifier: Development Status :: 5 - Production/Stable +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4 +Description-Content-Type: text/x-rst +Provides-Extra: toml diff --git a/third_party/python/coverage/coverage.egg-info/SOURCES.txt b/third_party/python/coverage/coverage.egg-info/SOURCES.txt new file mode 100644 index 000000000000..fb09ab389f9b --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/SOURCES.txt @@ -0,0 +1,287 @@ +.editorconfig +.readthedocs.yml +.travis.yml +CHANGES.rst +CONTRIBUTORS.txt +LICENSE.txt +MANIFEST.in +Makefile +NOTICE.txt +README.rst +__main__.py +appveyor.yml +howto.txt +igor.py +metacov.ini +pylintrc +setup.cfg +setup.py +tox.ini +tox_wheels.ini +ci/README.txt +ci/download_appveyor.py +ci/install.ps1 +ci/manylinux.sh +ci/run_with_env.cmd +ci/upload_relnotes.py +coverage/__init__.py +coverage/__main__.py +coverage/annotate.py +coverage/backunittest.py +coverage/backward.py +coverage/bytecode.py +coverage/cmdline.py +coverage/collector.py +coverage/config.py +coverage/context.py +coverage/control.py +coverage/data.py +coverage/debug.py +coverage/disposition.py +coverage/env.py +coverage/execfile.py +coverage/files.py +coverage/html.py +coverage/inorout.py +coverage/jsonreport.py +coverage/misc.py +coverage/multiproc.py +coverage/numbits.py +coverage/optional.py +coverage/parser.py +coverage/phystokens.py +coverage/plugin.py +coverage/plugin_support.py +coverage/python.py +coverage/pytracer.py +coverage/report.py +coverage/results.py +coverage/sqldata.py +coverage/summary.py +coverage/templite.py +coverage/tomlconfig.py +coverage/version.py +coverage/xmlreport.py +coverage.egg-info/PKG-INFO +coverage.egg-info/SOURCES.txt +coverage.egg-info/dependency_links.txt +coverage.egg-info/entry_points.txt +coverage.egg-info/not-zip-safe +coverage.egg-info/requires.txt +coverage.egg-info/top_level.txt +coverage/ctracer/datastack.c +coverage/ctracer/datastack.h +coverage/ctracer/filedisp.c +coverage/ctracer/filedisp.h +coverage/ctracer/module.c +coverage/ctracer/stats.h +coverage/ctracer/tracer.c +coverage/ctracer/tracer.h +coverage/ctracer/util.h +coverage/fullcoverage/encodings.py +coverage/htmlfiles/coverage_html.js +coverage/htmlfiles/index.html +coverage/htmlfiles/jquery.ba-throttle-debounce.min.js +coverage/htmlfiles/jquery.hotkeys.js +coverage/htmlfiles/jquery.isonscreen.js +coverage/htmlfiles/jquery.min.js +coverage/htmlfiles/jquery.tablesorter.min.js +coverage/htmlfiles/keybd_closed.png +coverage/htmlfiles/keybd_open.png +coverage/htmlfiles/pyfile.html +coverage/htmlfiles/style.css +coverage/htmlfiles/style.scss +doc/api.rst +doc/api_coverage.rst +doc/api_coveragedata.rst +doc/api_module.rst +doc/api_plugin.rst +doc/branch.rst +doc/changes.rst +doc/check_copied_from.py +doc/cmd.rst +doc/conf.py +doc/config.rst +doc/contexts.rst +doc/contributing.rst +doc/dbschema.rst +doc/dict.txt +doc/excluding.rst +doc/faq.rst +doc/howitworks.rst +doc/index.rst +doc/install.rst +doc/plugins.rst +doc/python-coverage.1.txt +doc/requirements.pip +doc/sleepy.rst +doc/source.rst +doc/subprocess.rst +doc/trouble.rst +doc/whatsnew5x.rst +doc/_static/coverage.css +doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +doc/media/sleepy-snake-600.png +doc/media/sleepy-snake-circle-150.png +doc/sample_html/keybd_closed.png +doc/sample_html/keybd_open.png +requirements/ci.pip +requirements/dev.pip +requirements/pytest.pip +requirements/tox.pip +requirements/wheel.pip +tests/__init__.py +tests/conftest.py +tests/coveragetest.py +tests/covmodzip1.py +tests/goldtest.py +tests/helpers.py +tests/osinfo.py +tests/plugin1.py +tests/plugin2.py +tests/plugin_config.py +tests/stress_phystoken.tok +tests/stress_phystoken_dos.tok +tests/test_annotate.py +tests/test_api.py +tests/test_arcs.py +tests/test_backward.py +tests/test_cmdline.py +tests/test_collector.py +tests/test_concurrency.py +tests/test_config.py +tests/test_context.py +tests/test_coverage.py +tests/test_data.py +tests/test_debug.py +tests/test_execfile.py +tests/test_filereporter.py +tests/test_files.py +tests/test_html.py +tests/test_json.py +tests/test_misc.py +tests/test_numbits.py +tests/test_oddball.py +tests/test_parser.py +tests/test_phystokens.py +tests/test_plugins.py +tests/test_process.py +tests/test_python.py +tests/test_results.py +tests/test_setup.py +tests/test_summary.py +tests/test_templite.py +tests/test_testing.py +tests/test_version.py +tests/test_xml.py +tests/eggsrc/setup.py +tests/eggsrc/egg1/__init__.py +tests/eggsrc/egg1/egg1.py +tests/gold/README.rst +tests/gold/annotate/anno_dir/a___init__.py,cover +tests/gold/annotate/anno_dir/a_a.py,cover +tests/gold/annotate/anno_dir/b___init__.py,cover +tests/gold/annotate/anno_dir/b_b.py,cover +tests/gold/annotate/anno_dir/multi.py,cover +tests/gold/annotate/annotate/white.py,cover +tests/gold/annotate/encodings/utf8.py,cover +tests/gold/annotate/multi/multi.py,cover +tests/gold/annotate/multi/a/__init__.py,cover +tests/gold/annotate/multi/a/a.py,cover +tests/gold/annotate/multi/b/__init__.py,cover +tests/gold/annotate/multi/b/b.py,cover +tests/gold/html/Makefile +tests/gold/html/a/a_py.html +tests/gold/html/a/index.html +tests/gold/html/b_branch/b_py.html +tests/gold/html/b_branch/index.html +tests/gold/html/bom/bom_py.html +tests/gold/html/bom/index.html +tests/gold/html/bom/2/bom_py.html +tests/gold/html/bom/2/index.html +tests/gold/html/isolatin1/index.html +tests/gold/html/isolatin1/isolatin1_py.html +tests/gold/html/omit_1/index.html +tests/gold/html/omit_1/m1_py.html +tests/gold/html/omit_1/m2_py.html +tests/gold/html/omit_1/m3_py.html +tests/gold/html/omit_1/main_py.html +tests/gold/html/omit_2/index.html +tests/gold/html/omit_2/m2_py.html +tests/gold/html/omit_2/m3_py.html +tests/gold/html/omit_2/main_py.html +tests/gold/html/omit_3/index.html +tests/gold/html/omit_3/m3_py.html +tests/gold/html/omit_3/main_py.html +tests/gold/html/omit_4/index.html +tests/gold/html/omit_4/m1_py.html +tests/gold/html/omit_4/m3_py.html +tests/gold/html/omit_4/main_py.html +tests/gold/html/omit_5/index.html +tests/gold/html/omit_5/m1_py.html +tests/gold/html/omit_5/main_py.html +tests/gold/html/other/blah_blah_other_py.html +tests/gold/html/other/here_py.html +tests/gold/html/other/index.html +tests/gold/html/partial/index.html +tests/gold/html/partial/partial_py.html +tests/gold/html/styled/a_py.html +tests/gold/html/styled/extra.css +tests/gold/html/styled/index.html +tests/gold/html/styled/style.css +tests/gold/html/support/coverage_html.js +tests/gold/html/support/jquery.ba-throttle-debounce.min.js +tests/gold/html/support/jquery.hotkeys.js +tests/gold/html/support/jquery.isonscreen.js +tests/gold/html/support/jquery.min.js +tests/gold/html/support/jquery.tablesorter.min.js +tests/gold/html/support/keybd_closed.png +tests/gold/html/support/keybd_open.png +tests/gold/html/support/style.css +tests/gold/html/unicode/index.html +tests/gold/html/unicode/unicode_py.html +tests/gold/xml/x_xml/coverage.xml +tests/gold/xml/y_xml_branch/coverage.xml +tests/js/index.html +tests/js/tests.js +tests/modules/covmod1.py +tests/modules/runmod1.py +tests/modules/usepkgs.py +tests/modules/aa/__init__.py +tests/modules/aa/afile.odd.py +tests/modules/aa/afile.py +tests/modules/aa/zfile.py +tests/modules/aa/bb/__init__.py +tests/modules/aa/bb/bfile.odd.py +tests/modules/aa/bb/bfile.py +tests/modules/aa/bb.odd/bfile.py +tests/modules/aa/bb/cc/__init__.py +tests/modules/aa/bb/cc/cfile.py +tests/modules/namespace_420/sub1/__init__.py +tests/modules/pkg1/__init__.py +tests/modules/pkg1/__main__.py +tests/modules/pkg1/p1a.py +tests/modules/pkg1/p1b.py +tests/modules/pkg1/p1c.py +tests/modules/pkg1/runmod2.py +tests/modules/pkg1/sub/__init__.py +tests/modules/pkg1/sub/__main__.py +tests/modules/pkg1/sub/ps1a.py +tests/modules/pkg1/sub/runmod3.py +tests/modules/pkg2/__init__.py +tests/modules/pkg2/p2a.py +tests/modules/pkg2/p2b.py +tests/modules/plugins/__init__.py +tests/modules/plugins/a_plugin.py +tests/modules/plugins/another.py +tests/modules/process_test/__init__.py +tests/modules/process_test/try_execfile.py +tests/moremodules/namespace_420/sub2/__init__.py +tests/moremodules/othermods/__init__.py +tests/moremodules/othermods/othera.py +tests/moremodules/othermods/otherb.py +tests/moremodules/othermods/sub/__init__.py +tests/moremodules/othermods/sub/osa.py +tests/moremodules/othermods/sub/osb.py +tests/qunit/jquery.tmpl.min.js \ No newline at end of file diff --git a/third_party/python/coverage/coverage.egg-info/dependency_links.txt b/third_party/python/coverage/coverage.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/coverage/coverage.egg-info/entry_points.txt b/third_party/python/coverage/coverage.egg-info/entry_points.txt new file mode 100644 index 000000000000..58d31949dedd --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/entry_points.txt @@ -0,0 +1,5 @@ +[console_scripts] +coverage = coverage.cmdline:main +coverage-3.8 = coverage.cmdline:main +coverage3 = coverage.cmdline:main + diff --git a/third_party/python/coverage/coverage.egg-info/not-zip-safe b/third_party/python/coverage/coverage.egg-info/not-zip-safe new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/third_party/python/coverage/coverage.egg-info/requires.txt b/third_party/python/coverage/coverage.egg-info/requires.txt new file mode 100644 index 000000000000..c694f11c9d76 --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/requires.txt @@ -0,0 +1,3 @@ + +[toml] +toml diff --git a/third_party/python/coverage/coverage.egg-info/top_level.txt b/third_party/python/coverage/coverage.egg-info/top_level.txt new file mode 100644 index 000000000000..4ebc8aea50e0 --- /dev/null +++ b/third_party/python/coverage/coverage.egg-info/top_level.txt @@ -0,0 +1 @@ +coverage diff --git a/third_party/python/esprima/esprima.egg-info/PKG-INFO b/third_party/python/esprima/esprima.egg-info/PKG-INFO new file mode 100644 index 000000000000..c2fee6ace6f6 --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/PKG-INFO @@ -0,0 +1,143 @@ +Metadata-Version: 1.1 +Name: esprima +Version: 4.0.1 +Summary: ECMAScript parsing infrastructure for multipurpose analysis in Python +Home-page: https://github.com/Kronuz/esprima-python +Author: German M. Bravo (Kronuz) +Author-email: german.mb@gmail.com +License: BSD License +Description: |Donate| |PyPI Version| |PyPI License| |PyPI Format| |PyPI Status| + + **Esprima** (`esprima.org `__, BSD license) is a + high performance, standard-compliant + `ECMAScript `__ + parser officially written in ECMAScript (also popularly known as + `JavaScript `__) and ported to + Python. Esprima is created and maintained by `Ariya + Hidayat `__, with the help of `many + contributors `__. + + Python port is a line-by-line manual translation and was created and is + maintained by `German Mendez Bravo + (Kronuz) `__. + + Features + ~~~~~~~~ + + - Full support for ECMAScript 2017 (`ECMA-262 8th + Edition `__) + - Sensible `syntax tree + format `__ as + standardized by `ESTree project `__ + - Experimental support for `JSX `__, a + syntax extension for `React `__ + - Optional tracking of syntax node location (index-based and + line-column) + - `Heavily tested `__ (~1500 `unit + tests `__ + with `full code + coverage `__) + + Installation + ~~~~~~~~~~~~ + + .. code:: shell + + pip install esprima + + API + ~~~ + + Esprima can be used to perform `lexical + analysis `__ + (tokenization) or `syntactic + analysis `__ (parsing) of a + JavaScript program. + + A simple example: + + .. code:: javascript + + >>> import esprima + >>> program = 'const answer = 42' + + >>> esprima.tokenize(program) + [{ + type: "Keyword", + value: "const" + }, { + type: "Identifier", + value: "answer" + }, { + type: "Punctuator", + value: "=" + }, { + type: "Numeric", + value: "42" + }] + + >>> esprima.parseScript(program) + { + body: [ + { + kind: "const", + declarations: [ + { + init: { + raw: "42", + type: "Literal", + value: 42 + }, + type: "VariableDeclarator", + id: { + type: "Identifier", + name: "answer" + } + } + ], + type: "VariableDeclaration" + } + ], + type: "Program", + sourceType: "script" + } + + For more information, please read the `complete + documentation `__. + + .. |Donate| image:: https://img.shields.io/badge/Donate-PayPal-green.svg + :target: https://www.paypal.me/Kronuz/25 + .. |PyPI Version| image:: https://img.shields.io/pypi/v/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI License| image:: https://img.shields.io/pypi/l/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Wheel| image:: https://img.shields.io/pypi/wheel/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Format| image:: https://img.shields.io/pypi/format/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Python Version| image:: https://img.shields.io/pypi/pyversions/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Implementation| image:: https://img.shields.io/pypi/implementation/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Status| image:: https://img.shields.io/pypi/status/esprima.svg + :target: https://pypi.python.org/pypi/esprima + .. |PyPI Downloads| image:: https://img.shields.io/pypi/dm/esprima.svg + :target: https://pypi.python.org/pypi/esprima +Keywords: esprima ecmascript javascript parser ast +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Topic :: Software Development :: Code Generators +Classifier: Topic :: Software Development :: Compilers +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: Text Processing :: General +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 diff --git a/third_party/python/esprima/esprima.egg-info/SOURCES.txt b/third_party/python/esprima/esprima.egg-info/SOURCES.txt new file mode 100644 index 000000000000..16bea37b8d2e --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/SOURCES.txt @@ -0,0 +1,29 @@ +README +setup.py +esprima/__init__.py +esprima/__main__.py +esprima/character.py +esprima/comment_handler.py +esprima/compat.py +esprima/error_handler.py +esprima/esprima.py +esprima/jsx_nodes.py +esprima/jsx_parser.py +esprima/jsx_syntax.py +esprima/messages.py +esprima/nodes.py +esprima/objects.py +esprima/parser.py +esprima/scanner.py +esprima/syntax.py +esprima/token.py +esprima/tokenizer.py +esprima/utils.py +esprima/visitor.py +esprima/xhtml_entities.py +esprima.egg-info/PKG-INFO +esprima.egg-info/SOURCES.txt +esprima.egg-info/dependency_links.txt +esprima.egg-info/entry_points.txt +esprima.egg-info/pbr.json +esprima.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/esprima/esprima.egg-info/dependency_links.txt b/third_party/python/esprima/esprima.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/esprima/esprima.egg-info/entry_points.txt b/third_party/python/esprima/esprima.egg-info/entry_points.txt new file mode 100644 index 000000000000..0170557792e4 --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +esprima = esprima.__main__:main + diff --git a/third_party/python/esprima/esprima.egg-info/pbr.json b/third_party/python/esprima/esprima.egg-info/pbr.json new file mode 100644 index 000000000000..d8e931d7dd88 --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/pbr.json @@ -0,0 +1 @@ +{"is_release": false, "git_version": "ac65290"} \ No newline at end of file diff --git a/third_party/python/esprima/esprima.egg-info/top_level.txt b/third_party/python/esprima/esprima.egg-info/top_level.txt new file mode 100644 index 000000000000..c0ba54881edf --- /dev/null +++ b/third_party/python/esprima/esprima.egg-info/top_level.txt @@ -0,0 +1 @@ +esprima diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/PKG-INFO b/third_party/python/fluent.migrate/fluent.migrate.egg-info/PKG-INFO new file mode 100644 index 000000000000..e15a76d1d684 --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/PKG-INFO @@ -0,0 +1,18 @@ +Metadata-Version: 2.1 +Name: fluent.migrate +Version: 0.11 +Summary: Toolchain to migrate legacy translation to Fluent. +Home-page: https://hg.mozilla.org/l10n/fluent-migration/ +Author: Mozilla +Author-email: l10n-drivers@mozilla.org +License: APL 2 +Description: UNKNOWN +Keywords: fluent,localization,l10n +Platform: UNKNOWN +Classifier: Development Status :: 3 - Alpha +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.7 +Description-Content-Type: text/markdown +Provides-Extra: hg diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/SOURCES.txt b/third_party/python/fluent.migrate/fluent.migrate.egg-info/SOURCES.txt new file mode 100644 index 000000000000..6d51c427d1e6 --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/SOURCES.txt @@ -0,0 +1,23 @@ +README.md +setup.cfg +setup.py +fluent/__init__.py +fluent.migrate.egg-info/PKG-INFO +fluent.migrate.egg-info/SOURCES.txt +fluent.migrate.egg-info/dependency_links.txt +fluent.migrate.egg-info/entry_points.txt +fluent.migrate.egg-info/requires.txt +fluent.migrate.egg-info/top_level.txt +fluent/migrate/__init__.py +fluent/migrate/_context.py +fluent/migrate/blame.py +fluent/migrate/changesets.py +fluent/migrate/context.py +fluent/migrate/errors.py +fluent/migrate/evaluator.py +fluent/migrate/helpers.py +fluent/migrate/merge.py +fluent/migrate/tool.py +fluent/migrate/transforms.py +fluent/migrate/util.py +fluent/migrate/validator.py \ No newline at end of file diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/dependency_links.txt b/third_party/python/fluent.migrate/fluent.migrate.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/entry_points.txt b/third_party/python/fluent.migrate/fluent.migrate.egg-info/entry_points.txt new file mode 100644 index 000000000000..7a1ebbf874ae --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/entry_points.txt @@ -0,0 +1,4 @@ +[console_scripts] +migrate-l10n = fluent.migrate.tool:cli +validate-l10n-recipe = fluent.migrate.validator:cli + diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/requires.txt b/third_party/python/fluent.migrate/fluent.migrate.egg-info/requires.txt new file mode 100644 index 000000000000..84a38c8fe23f --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/requires.txt @@ -0,0 +1,6 @@ +compare-locales<9.0,>=8.1 +fluent.syntax<0.19,>=0.18.0 +six + +[hg] +python-hglib diff --git a/third_party/python/fluent.migrate/fluent.migrate.egg-info/top_level.txt b/third_party/python/fluent.migrate/fluent.migrate.egg-info/top_level.txt new file mode 100644 index 000000000000..a3582d405aef --- /dev/null +++ b/third_party/python/fluent.migrate/fluent.migrate.egg-info/top_level.txt @@ -0,0 +1 @@ +fluent diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/PKG-INFO b/third_party/python/idna-ssl/idna_ssl.egg-info/PKG-INFO new file mode 100644 index 000000000000..54ea22146d07 --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/PKG-INFO @@ -0,0 +1,81 @@ +Metadata-Version: 1.1 +Name: idna-ssl +Version: 1.1.0 +Summary: Patch ssl.match_hostname for Unicode(idna) domains support +Home-page: https://github.com/aio-libs/idna-ssl +Author: Victor Kovtun +Author-email: hellysmile@gmail.com +License: UNKNOWN +Description: idna-ssl + ======== + + :info: Patch ssl.match_hostname for Unicode(idna) domains support + + .. image:: https://travis-ci.com/aio-libs/idna-ssl.svg?branch=master + :target: https://travis-ci.com/aio-libs/idna-ssl + + .. image:: https://img.shields.io/pypi/v/idna_ssl.svg + :target: https://pypi.python.org/pypi/idna_ssl + + .. image:: https://codecov.io/gh/aio-libs/idna-ssl/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/idna-ssl + + Installation + ------------ + + .. code-block:: shell + + pip install idna-ssl + + Usage + ----- + + .. code-block:: python + + from idna_ssl import patch_match_hostname # noqa isort:skip + patch_match_hostname() # noqa isort:skip + + import asyncio + + import aiohttp + + URL = 'https://цфоут.мвд.рф/news/item/8065038/' + + + async def main(): + async with aiohttp.ClientSession() as session: + async with session.get(URL) as response: + print(response) + + + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) + + Motivation + ---------- + + * Here is 100% backward capability + * Related aiohttp `issue `_ + * Related Python `bug `_ + * Related Python `pull request `_ + * It is fixed (by January 27 2018) in upcoming Python 3.7, but `IDNA2008 `_ is still broken + + Thanks + ------ + + The library was donated by `Ocean S.A. `_ + + Thanks to the company for contribution. + +Keywords: ssl,Unicode,idna,match_hostname +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/SOURCES.txt b/third_party/python/idna-ssl/idna_ssl.egg-info/SOURCES.txt new file mode 100644 index 000000000000..0ed8815e2859 --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/SOURCES.txt @@ -0,0 +1,12 @@ +LICENSE +MANIFEST.in +README.rst +idna_ssl.py +setup.cfg +setup.py +idna_ssl.egg-info/PKG-INFO +idna_ssl.egg-info/SOURCES.txt +idna_ssl.egg-info/dependency_links.txt +idna_ssl.egg-info/not-zip-safe +idna_ssl.egg-info/requires.txt +idna_ssl.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/dependency_links.txt b/third_party/python/idna-ssl/idna_ssl.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/not-zip-safe b/third_party/python/idna-ssl/idna_ssl.egg-info/not-zip-safe new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/not-zip-safe @@ -0,0 +1 @@ + diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/requires.txt b/third_party/python/idna-ssl/idna_ssl.egg-info/requires.txt new file mode 100644 index 000000000000..af5772da9934 --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/requires.txt @@ -0,0 +1 @@ +idna>=2.0 diff --git a/third_party/python/idna-ssl/idna_ssl.egg-info/top_level.txt b/third_party/python/idna-ssl/idna_ssl.egg-info/top_level.txt new file mode 100644 index 000000000000..15da36aac121 --- /dev/null +++ b/third_party/python/idna-ssl/idna_ssl.egg-info/top_level.txt @@ -0,0 +1 @@ +idna_ssl diff --git a/third_party/python/jsmin/jsmin.egg-info/PKG-INFO b/third_party/python/jsmin/jsmin.egg-info/PKG-INFO new file mode 100644 index 000000000000..27f88212e575 --- /dev/null +++ b/third_party/python/jsmin/jsmin.egg-info/PKG-INFO @@ -0,0 +1,117 @@ +Metadata-Version: 1.1 +Name: jsmin +Version: 2.1.0 +Summary: JavaScript minifier. +PLEASE UPDATE TO VERSION >= 2.0.6. Older versions have a serious bug related to comments. +Home-page: https://bitbucket.org/dcs/jsmin/ +Author: Tikitu de Jager +Author-email: tikitu+jsmin@logophile.org +License: MIT License +Description: ===== + jsmin + ===== + + JavaScript minifier. + + Usage + ===== + + .. code:: python + + from jsmin import jsmin + with open('myfile.js') as js_file: + minified = jsmin(js_file.read()) + + You can run it as a commandline tool also:: + + python -m jsmin myfile.js + + As yet, ``jsmin`` makes no attempt to be compatible with + `ECMAScript 6 / ES.next / Harmony `_. + If you're using it on Harmony code, though, you might find the ``quote_chars`` + parameter useful: + + .. code:: python + + from jsmin import jsmin + with open('myfile.js') as js_file: + minified = jsmin(js_file.read(), quote_chars="'\"`") + + + Where to get it + =============== + + * install the package `from pypi `_ + * get the latest release `from the stable branch on bitbucket `_ + * get the development version `from the default branch on bitbucket `_ + + Contributing + ============ + + `Issues `_ and `Pull requests `_ + will be gratefully received on Bitbucket. Pull requests on github are great too, but the issue tracker lives on + bitbucket. + + If possible, please make separate pull requests for tests and for code: tests will be committed on the stable branch + (which tracks the latest released version) while code will go to default by, erm, default. + + Unless you request otherwise, your Bitbucket identity will be added to the contributor's list below; if you prefer a + different name feel free to add it in your pull request instead. (If you prefer not to be mentioned you'll have to let + the maintainer know somehow.) + + Build/test status + ================= + + Both default and stable branches are tested with Travis: https://travis-ci.org/tikitu/jsmin + + Stable (latest released version plus any new tests) is tested against CPython 2.6, 2.7, 3.2, and 3.3. + Currently: + + .. image:: https://travis-ci.org/tikitu/jsmin.png?branch=ghstable + + If stable is failing that means there's a new test that fails on *the latest released version on pypi*, with no fix yet + released. + + Default (development version, might be ahead of latest released version) is tested against CPython 2.6, 2.7, 3.2, and + 3.3. Currently: + + .. image:: https://travis-ci.org/tikitu/jsmin.png?branch=master + + If default is failing don't use it, but as long as stable is passing the pypi release should be ok. + + Contributors (chronological commit order) + ========================================= + + * `Dave St.Germain `_ (original author) + * `Hans weltar `_ + * `Tikitu de Jager `_ (current maintainer) + * https://bitbucket.org/rennat + * `Nick Alexander `_ + + Changelog + ========= + + v2.1.0 (2014-12-24) Tikitu de Jager + ----------------------------------- + + * First changelog entries; see README.rst for prior contributors. + + * Expose quote_chars parameter to provide just enough unofficial Harmony + support to be useful. + + +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content +Classifier: Topic :: Software Development :: Pre-processors +Classifier: Topic :: Text Processing :: Filters diff --git a/third_party/python/jsmin/jsmin.egg-info/SOURCES.txt b/third_party/python/jsmin/jsmin.egg-info/SOURCES.txt new file mode 100644 index 000000000000..ae208f4b6065 --- /dev/null +++ b/third_party/python/jsmin/jsmin.egg-info/SOURCES.txt @@ -0,0 +1,13 @@ +CHANGELOG.txt +LICENSE.txt +MANIFEST.in +README.rst +setup.cfg +setup.py +jsmin/__init__.py +jsmin/__main__.py +jsmin/test.py +jsmin.egg-info/PKG-INFO +jsmin.egg-info/SOURCES.txt +jsmin.egg-info/dependency_links.txt +jsmin.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/jsmin/jsmin.egg-info/dependency_links.txt b/third_party/python/jsmin/jsmin.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/jsmin/jsmin.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/jsmin/jsmin.egg-info/top_level.txt b/third_party/python/jsmin/jsmin.egg-info/top_level.txt new file mode 100644 index 000000000000..79abaa99eece --- /dev/null +++ b/third_party/python/jsmin/jsmin.egg-info/top_level.txt @@ -0,0 +1 @@ +jsmin diff --git a/third_party/python/json-e/json_e.egg-info/PKG-INFO b/third_party/python/json-e/json_e.egg-info/PKG-INFO new file mode 100644 index 000000000000..bf41f8216701 --- /dev/null +++ b/third_party/python/json-e/json_e.egg-info/PKG-INFO @@ -0,0 +1,11 @@ +Metadata-Version: 2.1 +Name: json-e +Version: 2.7.0 +Summary: A data-structure parameterization system written for embedding context in JSON objects +Home-page: https://taskcluster.github.io/json-e/ +Author: Dustin J. Mitchell +Author-email: dustin@mozilla.com +License: MPL2 +Description: UNKNOWN +Platform: UNKNOWN +Provides-Extra: release diff --git a/third_party/python/json-e/json_e.egg-info/SOURCES.txt b/third_party/python/json-e/json_e.egg-info/SOURCES.txt new file mode 100644 index 000000000000..ec2e4f666bf7 --- /dev/null +++ b/third_party/python/json-e/json_e.egg-info/SOURCES.txt @@ -0,0 +1,17 @@ +MANIFEST.in +README.md +package.json +setup.cfg +setup.py +json_e.egg-info/PKG-INFO +json_e.egg-info/SOURCES.txt +json_e.egg-info/dependency_links.txt +json_e.egg-info/requires.txt +json_e.egg-info/top_level.txt +jsone/__init__.py +jsone/builtins.py +jsone/interpreter.py +jsone/prattparser.py +jsone/render.py +jsone/shared.py +jsone/six.py \ No newline at end of file diff --git a/third_party/python/json-e/json_e.egg-info/dependency_links.txt b/third_party/python/json-e/json_e.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/json-e/json_e.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/json-e/json_e.egg-info/requires.txt b/third_party/python/json-e/json_e.egg-info/requires.txt new file mode 100644 index 000000000000..f25a637d715a --- /dev/null +++ b/third_party/python/json-e/json_e.egg-info/requires.txt @@ -0,0 +1,3 @@ + +[release] +towncrier diff --git a/third_party/python/json-e/json_e.egg-info/top_level.txt b/third_party/python/json-e/json_e.egg-info/top_level.txt new file mode 100644 index 000000000000..afe8caa74cad --- /dev/null +++ b/third_party/python/json-e/json_e.egg-info/top_level.txt @@ -0,0 +1 @@ +jsone diff --git a/third_party/python/mohawk/mohawk.egg-info/PKG-INFO b/third_party/python/mohawk/mohawk.egg-info/PKG-INFO new file mode 100644 index 000000000000..131f03cfc50d --- /dev/null +++ b/third_party/python/mohawk/mohawk.egg-info/PKG-INFO @@ -0,0 +1,19 @@ +Metadata-Version: 1.1 +Name: mohawk +Version: 0.3.4 +Summary: Library for Hawk HTTP authorization +Home-page: https://github.com/kumar303/mohawk +Author: Kumar McMillan, Austin King +Author-email: kumar.mcmillan@gmail.com +License: MPL 2.0 (Mozilla Public License) +Description: UNKNOWN +Platform: UNKNOWN +Classifier: Intended Audience :: Developers +Classifier: Natural Language :: English +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Topic :: Internet :: WWW/HTTP diff --git a/third_party/python/mohawk/mohawk.egg-info/SOURCES.txt b/third_party/python/mohawk/mohawk.egg-info/SOURCES.txt new file mode 100644 index 000000000000..880beddbc40f --- /dev/null +++ b/third_party/python/mohawk/mohawk.egg-info/SOURCES.txt @@ -0,0 +1,15 @@ +README.rst +setup.py +mohawk/__init__.py +mohawk/base.py +mohawk/bewit.py +mohawk/exc.py +mohawk/receiver.py +mohawk/sender.py +mohawk/tests.py +mohawk/util.py +mohawk.egg-info/PKG-INFO +mohawk.egg-info/SOURCES.txt +mohawk.egg-info/dependency_links.txt +mohawk.egg-info/requires.txt +mohawk.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/mohawk/mohawk.egg-info/dependency_links.txt b/third_party/python/mohawk/mohawk.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/mohawk/mohawk.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/mohawk/mohawk.egg-info/requires.txt b/third_party/python/mohawk/mohawk.egg-info/requires.txt new file mode 100644 index 000000000000..ffe2fce49895 --- /dev/null +++ b/third_party/python/mohawk/mohawk.egg-info/requires.txt @@ -0,0 +1 @@ +six diff --git a/third_party/python/mohawk/mohawk.egg-info/top_level.txt b/third_party/python/mohawk/mohawk.egg-info/top_level.txt new file mode 100644 index 000000000000..2b859fd06c73 --- /dev/null +++ b/third_party/python/mohawk/mohawk.egg-info/top_level.txt @@ -0,0 +1 @@ +mohawk diff --git a/third_party/python/multidict/multidict.egg-info/PKG-INFO b/third_party/python/multidict/multidict.egg-info/PKG-INFO new file mode 100644 index 000000000000..bbd48649479a --- /dev/null +++ b/third_party/python/multidict/multidict.egg-info/PKG-INFO @@ -0,0 +1,128 @@ +Metadata-Version: 1.2 +Name: multidict +Version: 5.1.0 +Summary: multidict implementation +Home-page: https://github.com/aio-libs/multidict +Author: Andrew Svetlov +Author-email: andrew.svetlov@gmail.com +License: Apache 2 +Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby +Project-URL: CI: Azure Pipelines, https://dev.azure.com/aio-libs/multidict/_build +Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict +Project-URL: Docs: RTD, https://multidict.readthedocs.io +Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues +Project-URL: GitHub: repo, https://github.com/aio-libs/multidict +Description: ========= + multidict + ========= + + .. image:: https://github.com/aio-libs/multidict/workflows/CI/badge.svg + :target: https://github.com/aio-libs/multidict/actions?query=workflow%3ACI + :alt: GitHub status for master branch + + .. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/multidict + :alt: Coverage metrics + + .. image:: https://img.shields.io/pypi/v/multidict.svg + :target: https://pypi.org/project/multidict + :alt: PyPI + + .. image:: https://readthedocs.org/projects/multidict/badge/?version=latest + :target: http://multidict.readthedocs.org/en/latest/?badge=latest + :alt: Documentationb + + .. image:: https://img.shields.io/pypi/pyversions/multidict.svg + :target: https://pypi.org/project/multidict + :alt: Python versions + + .. image:: https://badges.gitter.im/Join%20Chat.svg + :target: https://gitter.im/aio-libs/Lobby + :alt: Chat on Gitter + + Multidict is dict-like collection of *key-value pairs* where key + might be occurred more than once in the container. + + Introduction + ------------ + + *HTTP Headers* and *URL query string* require specific data structure: + *multidict*. It behaves mostly like a regular ``dict`` but it may have + several *values* for the same *key* and *preserves insertion ordering*. + + The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries). + + ``multidict`` has four multidict classes: + ``MultiDict``, ``MultiDictProxy``, ``CIMultiDict`` + and ``CIMultiDictProxy``. + + Immutable proxies (``MultiDictProxy`` and + ``CIMultiDictProxy``) provide a dynamic view for the + proxied multidict, the view reflects underlying collection changes. They + implement the ``collections.abc.Mapping`` interface. + + Regular mutable (``MultiDict`` and ``CIMultiDict``) classes + implement ``collections.abc.MutableMapping`` and allows to change + their own content. + + + *Case insensitive* (``CIMultiDict`` and + ``CIMultiDictProxy``) ones assume the *keys* are case + insensitive, e.g.:: + + >>> dct = CIMultiDict(key='val') + >>> 'Key' in dct + True + >>> dct['Key'] + 'val' + + *Keys* should be ``str`` or ``istr`` instances. + + The library has optional C Extensions for sake of speed. + + + License + ------- + + Apache 2 + + Library Installation + -------------------- + + .. code-block:: bash + + $ pip install multidict + + The library is Python 3 only! + + PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install + ``multidict`` on another operation system (or *Alpine Linux* inside a Docker) the + Tarball will be used to compile the library from sources. It requires C compiler and + Python headers installed. + + To skip the compilation please use `MULTIDICT_NO_EXTENSIONS` environment variable, + e.g.: + + .. code-block:: bash + + $ MULTIDICT_NO_EXTENSIONS=1 pip install multidict + + Please note, Pure Python (uncompiled) version is about 20-50 times slower depending on + the usage scenario!!! + + + + Changelog + --------- + See `RTD page `_. +Platform: UNKNOWN +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Development Status :: 5 - Production/Stable +Requires-Python: >=3.6 diff --git a/third_party/python/multidict/multidict.egg-info/SOURCES.txt b/third_party/python/multidict/multidict.egg-info/SOURCES.txt new file mode 100644 index 000000000000..6c6257ea9b0b --- /dev/null +++ b/third_party/python/multidict/multidict.egg-info/SOURCES.txt @@ -0,0 +1,71 @@ +CHANGES.rst +LICENSE +MANIFEST.in +Makefile +README.rst +pyproject.toml +setup.cfg +setup.py +docs/Makefile +docs/benchmark.rst +docs/changes.rst +docs/conf.py +docs/index.rst +docs/make.bat +docs/multidict.rst +docs/spelling_wordlist.txt +multidict/__init__.py +multidict/__init__.pyi +multidict/_abc.py +multidict/_compat.py +multidict/_multidict.c +multidict/_multidict_base.py +multidict/_multidict_py.py +multidict/py.typed +multidict.egg-info/PKG-INFO +multidict.egg-info/SOURCES.txt +multidict.egg-info/dependency_links.txt +multidict.egg-info/top_level.txt +multidict/_multilib/defs.h +multidict/_multilib/dict.h +multidict/_multilib/istr.h +multidict/_multilib/iter.h +multidict/_multilib/pair_list.h +multidict/_multilib/views.h +tests/cimultidict.pickle.0 +tests/cimultidict.pickle.1 +tests/cimultidict.pickle.2 +tests/cimultidict.pickle.3 +tests/cimultidict.pickle.4 +tests/cimultidict.pickle.5 +tests/conftest.py +tests/gen_pickles.py +tests/multidict.pickle.0 +tests/multidict.pickle.1 +tests/multidict.pickle.2 +tests/multidict.pickle.3 +tests/multidict.pickle.4 +tests/multidict.pickle.5 +tests/pycimultidict.pickle.0 +tests/pycimultidict.pickle.1 +tests/pycimultidict.pickle.2 +tests/pycimultidict.pickle.3 +tests/pycimultidict.pickle.4 +tests/pycimultidict.pickle.5 +tests/pymultidict.pickle.0 +tests/pymultidict.pickle.1 +tests/pymultidict.pickle.2 +tests/pymultidict.pickle.3 +tests/pymultidict.pickle.4 +tests/pymultidict.pickle.5 +tests/test_abc.py +tests/test_copy.py +tests/test_guard.py +tests/test_istr.py +tests/test_multidict.py +tests/test_mutable_multidict.py +tests/test_mypy.py +tests/test_pickle.py +tests/test_types.py +tests/test_update.py +tests/test_version.py \ No newline at end of file diff --git a/third_party/python/multidict/multidict.egg-info/dependency_links.txt b/third_party/python/multidict/multidict.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/multidict/multidict.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/multidict/multidict.egg-info/top_level.txt b/third_party/python/multidict/multidict.egg-info/top_level.txt new file mode 100644 index 000000000000..afcecdff0822 --- /dev/null +++ b/third_party/python/multidict/multidict.egg-info/top_level.txt @@ -0,0 +1 @@ +multidict diff --git a/third_party/python/ply/ply.egg-info/PKG-INFO b/third_party/python/ply/ply.egg-info/PKG-INFO new file mode 100644 index 000000000000..6eedf4259539 --- /dev/null +++ b/third_party/python/ply/ply.egg-info/PKG-INFO @@ -0,0 +1,22 @@ +Metadata-Version: 1.1 +Name: ply +Version: 3.10 +Summary: Python Lex & Yacc +Home-page: http://www.dabeaz.com/ply/ +Author: David Beazley +Author-email: dave@dabeaz.com +License: BSD +Description: + PLY is yet another implementation of lex and yacc for Python. Some notable + features include the fact that its implemented entirely in Python and it + uses LALR(1) parsing which is efficient and well suited for larger grammars. + + PLY provides most of the standard lex/yacc features including support for empty + productions, precedence rules, error recovery, and support for ambiguous grammars. + + PLY is extremely easy to use and provides very extensive error checking. + It is compatible with both Python 2 and Python 3. + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 2 diff --git a/third_party/python/ply/ply.egg-info/SOURCES.txt b/third_party/python/ply/ply.egg-info/SOURCES.txt new file mode 100644 index 000000000000..2dff7dd29b8f --- /dev/null +++ b/third_party/python/ply/ply.egg-info/SOURCES.txt @@ -0,0 +1,172 @@ +ANNOUNCE +CHANGES +MANIFEST.in +README.md +TODO +setup.cfg +setup.py +doc/internal.html +doc/makedoc.py +doc/ply.html +example/README +example/cleanup.sh +example/BASIC/README +example/BASIC/basic.py +example/BASIC/basiclex.py +example/BASIC/basiclog.py +example/BASIC/basinterp.py +example/BASIC/basparse.py +example/BASIC/dim.bas +example/BASIC/func.bas +example/BASIC/gcd.bas +example/BASIC/gosub.bas +example/BASIC/hello.bas +example/BASIC/linear.bas +example/BASIC/maxsin.bas +example/BASIC/powers.bas +example/BASIC/rand.bas +example/BASIC/sales.bas +example/BASIC/sears.bas +example/BASIC/sqrt1.bas +example/BASIC/sqrt2.bas +example/GardenSnake/GardenSnake.py +example/GardenSnake/README +example/ansic/README +example/ansic/clex.py +example/ansic/cparse.py +example/calc/calc.py +example/calcdebug/calc.py +example/calceof/calc.py +example/classcalc/calc.py +example/closurecalc/calc.py +example/hedit/hedit.py +example/newclasscalc/calc.py +example/optcalc/README +example/optcalc/calc.py +example/unicalc/calc.py +example/yply/README +example/yply/ylex.py +example/yply/yparse.py +example/yply/yply.py +ply/__init__.py +ply/cpp.py +ply/ctokens.py +ply/lex.py +ply/yacc.py +ply/ygen.py +ply.egg-info/PKG-INFO +ply.egg-info/SOURCES.txt +ply.egg-info/dependency_links.txt +ply.egg-info/top_level.txt +test/README +test/calclex.py +test/cleanup.sh +test/lex_closure.py +test/lex_doc1.py +test/lex_dup1.py +test/lex_dup2.py +test/lex_dup3.py +test/lex_empty.py +test/lex_error1.py +test/lex_error2.py +test/lex_error3.py +test/lex_error4.py +test/lex_hedit.py +test/lex_ignore.py +test/lex_ignore2.py +test/lex_literal1.py +test/lex_literal2.py +test/lex_literal3.py +test/lex_many_tokens.py +test/lex_module.py +test/lex_module_import.py +test/lex_object.py +test/lex_opt_alias.py +test/lex_optimize.py +test/lex_optimize2.py +test/lex_optimize3.py +test/lex_re1.py +test/lex_re2.py +test/lex_re3.py +test/lex_rule1.py +test/lex_rule2.py +test/lex_rule3.py +test/lex_state1.py +test/lex_state2.py +test/lex_state3.py +test/lex_state4.py +test/lex_state5.py +test/lex_state_noerror.py +test/lex_state_norule.py +test/lex_state_try.py +test/lex_token1.py +test/lex_token2.py +test/lex_token3.py +test/lex_token4.py +test/lex_token5.py +test/lex_token_dup.py +test/testlex.py +test/testyacc.py +test/yacc_badargs.py +test/yacc_badid.py +test/yacc_badprec.py +test/yacc_badprec2.py +test/yacc_badprec3.py +test/yacc_badrule.py +test/yacc_badtok.py +test/yacc_dup.py +test/yacc_error1.py +test/yacc_error2.py +test/yacc_error3.py +test/yacc_error4.py +test/yacc_error5.py +test/yacc_error6.py +test/yacc_error7.py +test/yacc_inf.py +test/yacc_literal.py +test/yacc_misplaced.py +test/yacc_missing1.py +test/yacc_nested.py +test/yacc_nodoc.py +test/yacc_noerror.py +test/yacc_nop.py +test/yacc_notfunc.py +test/yacc_notok.py +test/yacc_prec1.py +test/yacc_rr.py +test/yacc_rr_unused.py +test/yacc_simple.py +test/yacc_sr.py +test/yacc_term1.py +test/yacc_unicode_literals.py +test/yacc_unused.py +test/yacc_unused_rule.py +test/yacc_uprec.py +test/yacc_uprec2.py +test/pkg_test1/__init__.py +test/pkg_test1/parsing/__init__.py +test/pkg_test1/parsing/calclex.py +test/pkg_test1/parsing/calcparse.py +test/pkg_test2/__init__.py +test/pkg_test2/parsing/__init__.py +test/pkg_test2/parsing/calclex.py +test/pkg_test2/parsing/calcparse.py +test/pkg_test3/__init__.py +test/pkg_test3/generated/__init__.py +test/pkg_test3/parsing/__init__.py +test/pkg_test3/parsing/calclex.py +test/pkg_test3/parsing/calcparse.py +test/pkg_test4/__init__.py +test/pkg_test4/parsing/__init__.py +test/pkg_test4/parsing/calclex.py +test/pkg_test4/parsing/calcparse.py +test/pkg_test5/__init__.py +test/pkg_test5/parsing/__init__.py +test/pkg_test5/parsing/calclex.py +test/pkg_test5/parsing/calcparse.py +test/pkg_test6/__init__.py +test/pkg_test6/parsing/__init__.py +test/pkg_test6/parsing/calclex.py +test/pkg_test6/parsing/calcparse.py +test/pkg_test6/parsing/expression.py +test/pkg_test6/parsing/statement.py \ No newline at end of file diff --git a/third_party/python/ply/ply.egg-info/dependency_links.txt b/third_party/python/ply/ply.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/ply/ply.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/ply/ply.egg-info/top_level.txt b/third_party/python/ply/ply.egg-info/top_level.txt new file mode 100644 index 000000000000..90412f06833c --- /dev/null +++ b/third_party/python/ply/ply.egg-info/top_level.txt @@ -0,0 +1 @@ +ply diff --git a/third_party/python/pyrsistent/pyrsistent.egg-info/PKG-INFO b/third_party/python/pyrsistent/pyrsistent.egg-info/PKG-INFO new file mode 100644 index 000000000000..1d1c15903475 --- /dev/null +++ b/third_party/python/pyrsistent/pyrsistent.egg-info/PKG-INFO @@ -0,0 +1,742 @@ +Metadata-Version: 1.1 +Name: pyrsistent +Version: 0.16.0 +Summary: Persistent/Functional/Immutable data structures +Home-page: http://github.com/tobgu/pyrsistent/ +Author: Tobias Gustafsson +Author-email: tobias.l.gustafsson@gmail.com +License: MIT +Description: Pyrsistent + ========== + .. image:: https://travis-ci.org/tobgu/pyrsistent.png?branch=master + :target: https://travis-ci.org/tobgu/pyrsistent + + .. image:: https://badge.fury.io/py/pyrsistent.svg + :target: https://badge.fury.io/py/pyrsistent + + .. image:: https://coveralls.io/repos/tobgu/pyrsistent/badge.svg?branch=master&service=github + :target: https://coveralls.io/github/tobgu/pyrsistent?branch=master + + + .. _Pyrthon: https://www.github.com/tobgu/pyrthon/ + + Pyrsistent is a number of persistent collections (by some referred to as functional data structures). Persistent in + the sense that they are immutable. + + All methods on a data structure that would normally mutate it instead return a new copy of the structure containing the + requested updates. The original structure is left untouched. + + This will simplify the reasoning about what a program does since no hidden side effects ever can take place to these + data structures. You can rest assured that the object you hold a reference to will remain the same throughout its + lifetime and need not worry that somewhere five stack levels below you in the darkest corner of your application + someone has decided to remove that element that you expected to be there. + + Pyrsistent is influenced by persistent data structures such as those found in the standard library of Clojure. The + data structures are designed to share common elements through path copying. + It aims at taking these concepts and make them as pythonic as possible so that they can be easily integrated into any python + program without hassle. + + If you want to go all in on persistent data structures and use literal syntax to define them in your code rather + than function calls check out Pyrthon_. + + Examples + -------- + .. _Sequence: collections_ + .. _Hashable: collections_ + .. _Mapping: collections_ + .. _Mappings: collections_ + .. _Set: collections_ + .. _collections: https://docs.python.org/3/library/collections.abc.html + .. _documentation: http://pyrsistent.readthedocs.org/ + + The collection types and key features currently implemented are: + + * PVector_, similar to a python list + * PMap_, similar to dict + * PSet_, similar to set + * PRecord_, a PMap on steroids with fixed fields, optional type and invariant checking and much more + * PClass_, a Python class fixed fields, optional type and invariant checking and much more + * `Checked collections`_, PVector, PMap and PSet with optional type and invariance checks and more + * PBag, similar to collections.Counter + * PList, a classic singly linked list + * PDeque, similar to collections.deque + * Immutable object type (immutable) built on the named tuple + * freeze_ and thaw_ functions to convert between pythons standard collections and pyrsistent collections. + * Flexible transformations_ of arbitrarily complex structures built from PMaps and PVectors. + + Below are examples of common usage patterns for some of the structures and features. More information and + full documentation for all data structures is available in the documentation_. + + .. _PVector: + + PVector + ~~~~~~~ + With full support for the Sequence_ protocol PVector is meant as a drop in replacement to the built in list from a readers + point of view. Write operations of course differ since no in place mutation is done but naming should be in line + with corresponding operations on the built in list. + + Support for the Hashable_ protocol also means that it can be used as key in Mappings_. + + Appends are amortized O(1). Random access and insert is log32(n) where n is the size of the vector. + + .. code:: python + + >>> from pyrsistent import v, pvector + + # No mutation of vectors once created, instead they + # are "evolved" leaving the original untouched + >>> v1 = v(1, 2, 3) + >>> v2 = v1.append(4) + >>> v3 = v2.set(1, 5) + >>> v1 + pvector([1, 2, 3]) + >>> v2 + pvector([1, 2, 3, 4]) + >>> v3 + pvector([1, 5, 3, 4]) + + # Random access and slicing + >>> v3[1] + 5 + >>> v3[1:3] + pvector([5, 3]) + + # Iteration + >>> list(x + 1 for x in v3) + [2, 6, 4, 5] + >>> pvector(2 * x for x in range(3)) + pvector([0, 2, 4]) + + .. _PMap: + + PMap + ~~~~ + With full support for the Mapping_ protocol PMap is meant as a drop in replacement to the built in dict from a readers point + of view. Support for the Hashable_ protocol also means that it can be used as key in other Mappings_. + + Random access and insert is log32(n) where n is the size of the map. + + .. code:: python + + >>> from pyrsistent import m, pmap, v + + # No mutation of maps once created, instead they are + # "evolved" leaving the original untouched + >>> m1 = m(a=1, b=2) + >>> m2 = m1.set('c', 3) + >>> m3 = m2.set('a', 5) + >>> m1 + pmap({'a': 1, 'b': 2}) + >>> m2 + pmap({'a': 1, 'c': 3, 'b': 2}) + >>> m3 + pmap({'a': 5, 'c': 3, 'b': 2}) + >>> m3['a'] + 5 + + # Evolution of nested persistent structures + >>> m4 = m(a=5, b=6, c=v(1, 2)) + >>> m4.transform(('c', 1), 17) + pmap({'a': 5, 'c': pvector([1, 17]), 'b': 6}) + >>> m5 = m(a=1, b=2) + + # Evolve by merging with other mappings + >>> m5.update(m(a=2, c=3), {'a': 17, 'd': 35}) + pmap({'a': 17, 'c': 3, 'b': 2, 'd': 35}) + >>> pmap({'x': 1, 'y': 2}) + pmap({'y': 3, 'z': 4}) + pmap({'y': 3, 'x': 1, 'z': 4}) + + # Dict-like methods to convert to list and iterate + >>> m3.items() + pvector([('a', 5), ('c', 3), ('b', 2)]) + >>> list(m3) + ['a', 'c', 'b'] + + .. _PSet: + + PSet + ~~~~ + With full support for the Set_ protocol PSet is meant as a drop in replacement to the built in set from a readers point + of view. Support for the Hashable_ protocol also means that it can be used as key in Mappings_. + + Random access and insert is log32(n) where n is the size of the set. + + .. code:: python + + >>> from pyrsistent import s + + # No mutation of sets once created, you know the story... + >>> s1 = s(1, 2, 3, 2) + >>> s2 = s1.add(4) + >>> s3 = s1.remove(1) + >>> s1 + pset([1, 2, 3]) + >>> s2 + pset([1, 2, 3, 4]) + >>> s3 + pset([2, 3]) + + # Full support for set operations + >>> s1 | s(3, 4, 5) + pset([1, 2, 3, 4, 5]) + >>> s1 & s(3, 4, 5) + pset([3]) + >>> s1 < s2 + True + >>> s1 < s(3, 4, 5) + False + + .. _PRecord: + + PRecord + ~~~~~~~ + A PRecord is a PMap with a fixed set of specified fields. Records are declared as python classes inheriting + from PRecord. Because it is a PMap it has full support for all Mapping methods such as iteration and element + access using subscript notation. + + .. code:: python + + >>> from pyrsistent import PRecord, field + >>> class ARecord(PRecord): + ... x = field() + ... + >>> r = ARecord(x=3) + >>> r + ARecord(x=3) + >>> r.x + 3 + >>> r.set(x=2) + ARecord(x=2) + >>> r.set(y=2) + Traceback (most recent call last): + AttributeError: 'y' is not among the specified fields for ARecord + + Type information + **************** + It is possible to add type information to the record to enforce type checks. Multiple allowed types can be specified + by providing an iterable of types. + + .. code:: python + + >>> class BRecord(PRecord): + ... x = field(type=int) + ... y = field(type=(int, type(None))) + ... + >>> BRecord(x=3, y=None) + BRecord(y=None, x=3) + >>> BRecord(x=3.0) + Traceback (most recent call last): + PTypeError: Invalid type for field BRecord.x, was float + + + Custom types (classes) that are iterable should be wrapped in a tuple to prevent their + members being added to the set of valid types. Although Enums in particular are now + supported without wrapping, see #83 for more information. + + Mandatory fields + **************** + Fields are not mandatory by default but can be specified as such. If fields are missing an + *InvariantException* will be thrown which contains information about the missing fields. + + .. code:: python + + >>> from pyrsistent import InvariantException + >>> class CRecord(PRecord): + ... x = field(mandatory=True) + ... + >>> r = CRecord(x=3) + >>> try: + ... r.discard('x') + ... except InvariantException as e: + ... print(e.missing_fields) + ... + ('CRecord.x',) + + Invariants + ********** + It is possible to add invariants that must hold when evolving the record. Invariants can be + specified on both field and record level. If invariants fail an *InvariantException* will be + thrown which contains information about the failing invariants. An invariant function should + return a tuple consisting of a boolean that tells if the invariant holds or not and an object + describing the invariant. This object can later be used to identify which invariant that failed. + + The global invariant function is only executed if all field invariants hold. + + Global invariants are inherited to subclasses. + + .. code:: python + + >>> class RestrictedVector(PRecord): + ... __invariant__ = lambda r: (r.y >= r.x, 'x larger than y') + ... x = field(invariant=lambda x: (x > 0, 'x negative')) + ... y = field(invariant=lambda y: (y > 0, 'y negative')) + ... + >>> r = RestrictedVector(y=3, x=2) + >>> try: + ... r.set(x=-1, y=-2) + ... except InvariantException as e: + ... print(e.invariant_errors) + ... + ('y negative', 'x negative') + >>> try: + ... r.set(x=2, y=1) + ... except InvariantException as e: + ... print(e.invariant_errors) + ... + ('x larger than y',) + + Invariants may also contain multiple assertions. For those cases the invariant function should + return a tuple of invariant tuples as described above. This structure is reflected in the + invariant_errors attribute of the exception which will contain tuples with data from all failed + invariants. Eg: + + .. code:: python + + >>> class EvenX(PRecord): + ... x = field(invariant=lambda x: ((x > 0, 'x negative'), (x % 2 == 0, 'x odd'))) + ... + >>> try: + ... EvenX(x=-1) + ... except InvariantException as e: + ... print(e.invariant_errors) + ... + (('x negative', 'x odd'),) + + + Factories + ********* + It's possible to specify factory functions for fields. The factory function receives whatever + is supplied as field value and the actual returned by the factory is assigned to the field + given that any type and invariant checks hold. + PRecords have a default factory specified as a static function on the class, create(). It takes + a *Mapping* as argument and returns an instance of the specific record. + If a record has fields of type PRecord the create() method of that record will + be called to create the "sub record" if no factory has explicitly been specified to override + this behaviour. + + .. code:: python + + >>> class DRecord(PRecord): + ... x = field(factory=int) + ... + >>> class ERecord(PRecord): + ... d = field(type=DRecord) + ... + >>> ERecord.create({'d': {'x': '1'}}) + ERecord(d=DRecord(x=1)) + + Collection fields + ***************** + It is also possible to have fields with ``pyrsistent`` collections. + + .. code:: python + + >>> from pyrsistent import pset_field, pmap_field, pvector_field + >>> class MultiRecord(PRecord): + ... set_of_ints = pset_field(int) + ... map_int_to_str = pmap_field(int, str) + ... vector_of_strs = pvector_field(str) + ... + + Serialization + ************* + PRecords support serialization back to dicts. Default serialization will take keys and values + "as is" and output them into a dict. It is possible to specify custom serialization functions + to take care of fields that require special treatment. + + .. code:: python + + >>> from datetime import date + >>> class Person(PRecord): + ... name = field(type=unicode) + ... birth_date = field(type=date, + ... serializer=lambda format, d: d.strftime(format['date'])) + ... + >>> john = Person(name=u'John', birth_date=date(1985, 10, 21)) + >>> john.serialize({'date': '%Y-%m-%d'}) + {'birth_date': '1985-10-21', 'name': u'John'} + + + .. _instar: https://github.com/boxed/instar/ + + .. _PClass: + + PClass + ~~~~~~ + A PClass is a python class with a fixed set of specified fields. PClasses are declared as python classes inheriting + from PClass. It is defined the same way that PRecords are and behaves like a PRecord in all aspects except that it + is not a PMap and hence not a collection but rather a plain Python object. + + .. code:: python + + >>> from pyrsistent import PClass, field + >>> class AClass(PClass): + ... x = field() + ... + >>> a = AClass(x=3) + >>> a + AClass(x=3) + >>> a.x + 3 + + + Checked collections + ~~~~~~~~~~~~~~~~~~~ + Checked collections currently come in three flavors: CheckedPVector, CheckedPMap and CheckedPSet. + + .. code:: python + + >>> from pyrsistent import CheckedPVector, CheckedPMap, CheckedPSet, thaw + >>> class Positives(CheckedPSet): + ... __type__ = (long, int) + ... __invariant__ = lambda n: (n >= 0, 'Negative') + ... + >>> class Lottery(PRecord): + ... name = field(type=str) + ... numbers = field(type=Positives, invariant=lambda p: (len(p) > 0, 'No numbers')) + ... + >>> class Lotteries(CheckedPVector): + ... __type__ = Lottery + ... + >>> class LotteriesByDate(CheckedPMap): + ... __key_type__ = date + ... __value_type__ = Lotteries + ... + >>> lotteries = LotteriesByDate.create({date(2015, 2, 15): [{'name': 'SuperLotto', 'numbers': {1, 2, 3}}, + ... {'name': 'MegaLotto', 'numbers': {4, 5, 6}}], + ... date(2015, 2, 16): [{'name': 'SuperLotto', 'numbers': {3, 2, 1}}, + ... {'name': 'MegaLotto', 'numbers': {6, 5, 4}}]}) + >>> lotteries + LotteriesByDate({datetime.date(2015, 2, 15): Lotteries([Lottery(numbers=Positives([1, 2, 3]), name='SuperLotto'), Lottery(numbers=Positives([4, 5, 6]), name='MegaLotto')]), datetime.date(2015, 2, 16): Lotteries([Lottery(numbers=Positives([1, 2, 3]), name='SuperLotto'), Lottery(numbers=Positives([4, 5, 6]), name='MegaLotto')])}) + + # The checked versions support all operations that the corresponding + # unchecked types do + >>> lottery_0215 = lotteries[date(2015, 2, 15)] + >>> lottery_0215.transform([0, 'name'], 'SuperDuperLotto') + Lotteries([Lottery(numbers=Positives([1, 2, 3]), name='SuperDuperLotto'), Lottery(numbers=Positives([4, 5, 6]), name='MegaLotto')]) + + # But also makes asserts that types and invariants hold + >>> lottery_0215.transform([0, 'name'], 999) + Traceback (most recent call last): + PTypeError: Invalid type for field Lottery.name, was int + + >>> lottery_0215.transform([0, 'numbers'], set()) + Traceback (most recent call last): + InvariantException: Field invariant failed + + # They can be converted back to python built ins with either thaw() + # or serialize() (which provides possibilities to customize serialization) + >>> thaw(lottery_0215) + [{'numbers': set([1, 2, 3]), 'name': 'SuperLotto'}, {'numbers': set([4, 5, 6]), 'name': 'MegaLotto'}] + >>> lottery_0215.serialize() + [{'numbers': set([1, 2, 3]), 'name': 'SuperLotto'}, {'numbers': set([4, 5, 6]), 'name': 'MegaLotto'}] + + .. _transformations: + + Transformations + ~~~~~~~~~~~~~~~ + Transformations are inspired by the cool library instar_ for Clojure. They let you evolve PMaps and PVectors + with arbitrarily deep/complex nesting using simple syntax and flexible matching syntax. + + The first argument to transformation is the path that points out the value to transform. The + second is the transformation to perform. If the transformation is callable it will be applied + to the value(s) matching the path. The path may also contain callables. In that case they are + treated as matchers. If the matcher returns True for a specific key it is considered for transformation. + + .. code:: python + + # Basic examples + >>> from pyrsistent import inc, freeze, thaw, rex, ny, discard + >>> v1 = freeze([1, 2, 3, 4, 5]) + >>> v1.transform([2], inc) + pvector([1, 2, 4, 4, 5]) + >>> v1.transform([lambda ix: 0 < ix < 4], 8) + pvector([1, 8, 8, 8, 5]) + >>> v1.transform([lambda ix, v: ix == 0 or v == 5], 0) + pvector([0, 2, 3, 4, 0]) + + # The (a)ny matcher can be used to match anything + >>> v1.transform([ny], 8) + pvector([8, 8, 8, 8, 8]) + + # Regular expressions can be used for matching + >>> scores = freeze({'John': 12, 'Joseph': 34, 'Sara': 23}) + >>> scores.transform([rex('^Jo')], 0) + pmap({'Joseph': 0, 'Sara': 23, 'John': 0}) + + # Transformations can be done on arbitrarily deep structures + >>> news_paper = freeze({'articles': [{'author': 'Sara', 'content': 'A short article'}, + ... {'author': 'Steve', 'content': 'A slightly longer article'}], + ... 'weather': {'temperature': '11C', 'wind': '5m/s'}}) + >>> short_news = news_paper.transform(['articles', ny, 'content'], lambda c: c[:25] + '...' if len(c) > 25 else c) + >>> very_short_news = news_paper.transform(['articles', ny, 'content'], lambda c: c[:15] + '...' if len(c) > 15 else c) + >>> very_short_news.articles[0].content + 'A short article' + >>> very_short_news.articles[1].content + 'A slightly long...' + + # When nothing has been transformed the original data structure is kept + >>> short_news is news_paper + True + >>> very_short_news is news_paper + False + >>> very_short_news.articles[0] is news_paper.articles[0] + True + + # There is a special transformation that can be used to discard elements. Also + # multiple transformations can be applied in one call + >>> thaw(news_paper.transform(['weather'], discard, ['articles', ny, 'content'], discard)) + {'articles': [{'author': 'Sara'}, {'author': 'Steve'}]} + + Evolvers + ~~~~~~~~ + PVector, PMap and PSet all have support for a concept dubbed *evolvers*. An evolver acts like a mutable + view of the underlying persistent data structure with "transaction like" semantics. No updates of the original + data structure is ever performed, it is still fully immutable. + + The evolvers have a very limited API by design to discourage excessive, and inappropriate, usage as that would + take us down the mutable road. In principle only basic mutation and element access functions are supported. + Check out the documentation_ of each data structure for specific examples. + + Examples of when you may want to use an evolver instead of working directly with the data structure include: + + * Multiple updates are done to the same data structure and the intermediate results are of no + interest. In this case using an evolver may be a more efficient and easier to work with. + * You need to pass a vector into a legacy function or a function that you have no control + over which performs in place mutations. In this case pass an evolver instance + instead and then create a new pvector from the evolver once the function returns. + + .. code:: python + + >>> from pyrsistent import v + + # In place mutation as when working with the built in counterpart + >>> v1 = v(1, 2, 3) + >>> e = v1.evolver() + >>> e[1] = 22 + >>> e = e.append(4) + >>> e = e.extend([5, 6]) + >>> e[5] += 1 + >>> len(e) + 6 + + # The evolver is considered *dirty* when it contains changes compared to the underlying vector + >>> e.is_dirty() + True + + # But the underlying pvector still remains untouched + >>> v1 + pvector([1, 2, 3]) + + # Once satisfied with the updates you can produce a new pvector containing the updates. + # The new pvector will share data with the original pvector in the same way that would have + # been done if only using operations on the pvector. + >>> v2 = e.persistent() + >>> v2 + pvector([1, 22, 3, 4, 5, 7]) + + # The evolver is now no longer considered *dirty* as it contains no differences compared to the + # pvector just produced. + >>> e.is_dirty() + False + + # You may continue to work with the same evolver without affecting the content of v2 + >>> e[0] = 11 + + # Or create a new evolver from v2. The two evolvers can be updated independently but will both + # share data with v2 where possible. + >>> e2 = v2.evolver() + >>> e2[0] = 1111 + >>> e.persistent() + pvector([11, 22, 3, 4, 5, 7]) + >>> e2.persistent() + pvector([1111, 22, 3, 4, 5, 7]) + + .. _freeze: + .. _thaw: + + freeze and thaw + ~~~~~~~~~~~~~~~ + These functions are great when your cozy immutable world has to interact with the evil mutable world outside. + + .. code:: python + + >>> from pyrsistent import freeze, thaw, v, m + >>> freeze([1, {'a': 3}]) + pvector([1, pmap({'a': 3})]) + >>> thaw(v(1, m(a=3))) + [1, {'a': 3}] + + Compatibility + ------------- + + Pyrsistent is developed and tested on Python 2.7, 3.5, 3.6, 3.7 and PyPy (Python 2 and 3 compatible). It will most + likely work on all other versions >= 3.4 but no guarantees are given. :) + + Compatibility issues + ~~~~~~~~~~~~~~~~~~~~ + + .. _27: https://github.com/tobgu/pyrsistent/issues/27 + + There is currently one known compatibility issue when comparing built in sets and frozensets to PSets as discussed in 27_. + It affects python 2 versions < 2.7.8 and python 3 versions < 3.4.0 and is due to a bug described in + http://bugs.python.org/issue8743. + + Comparisons will fail or be incorrect when using the set/frozenset as left hand side of the comparison. As a workaround + you need to either upgrade Python to a more recent version, avoid comparing sets/frozensets with PSets or always make + sure to convert both sides of the comparison to the same type before performing the comparison. + + Performance + ----------- + + Pyrsistent is developed with performance in mind. Still, while some operations are nearly on par with their built in, + mutable, counterparts in terms of speed, other operations are slower. In the cases where attempts at + optimizations have been done, speed has generally been valued over space. + + Pyrsistent comes with two API compatible flavors of PVector (on which PMap and PSet are based), one pure Python + implementation and one implemented as a C extension. The latter generally being 2 - 20 times faster than the former. + The C extension will be used automatically when possible. + + The pure python implementation is fully PyPy compatible. Running it under PyPy speeds operations up considerably if + the structures are used heavily (if JITed), for some cases the performance is almost on par with the built in counterparts. + + Type hints + ---------- + + PEP 561 style type hints for use with mypy and various editors are available for most types and functions in pyrsistent. + + Type classes for annotating your own code with pyrsistent types are also available under pyrsistent.typing. + + Installation + ------------ + + pip install pyrsistent + + Documentation + ------------- + + Available at http://pyrsistent.readthedocs.org/ + + Brief presentation available at http://slides.com/tobiasgustafsson/immutability-and-python/ + + Contributors + ------------ + + Tobias Gustafsson https://github.com/tobgu + + Christopher Armstrong https://github.com/radix + + Anders Hovmöller https://github.com/boxed + + Itamar Turner-Trauring https://github.com/itamarst + + Jonathan Lange https://github.com/jml + + Richard Futrell https://github.com/Futrell + + Jakob Hollenstein https://github.com/jkbjh + + David Honour https://github.com/foolswood + + David R. MacIver https://github.com/DRMacIver + + Marcus Ewert https://github.com/sarum90 + + Jean-Paul Calderone https://github.com/exarkun + + Douglas Treadwell https://github.com/douglas-treadwell + + Travis Parker https://github.com/teepark + + Julian Berman https://github.com/Julian + + Dennis Tomas https://github.com/dtomas + + Neil Vyas https://github.com/neilvyas + + doozr https://github.com/doozr + + Kamil Galuszka https://github.com/galuszkak + + Tsuyoshi Hombashi https://github.com/thombashi + + nattofriends https://github.com/nattofriends + + agberk https://github.com/agberk + + Waleed Khan https://github.com/arxanas + + Jean-Louis Fuchs https://github.com/ganwell + + Carlos Corbacho https://github.com/ccorbacho + + Felix Yan https://github.com/felixonmars + + benrg https://github.com/benrg + + Jere Lahelma https://github.com/je-l + + Max Taggart https://github.com/MaxTaggart + + Vincent Philippon https://github.com/vphilippon + + Semen Zhydenko https://github.com/ss18 + + Till Varoquaux https://github.com/till-varoquaux + + Michal Kowalik https://github.com/michalvi + + ossdev07 https://github.com/ossdev07 + + Kerry Olesen https://github.com/qhesz + + johnthagen https://github.com/johnthagen + + Contributing + ------------ + + Want to contribute? That's great! If you experience problems please log them on GitHub. If you want to contribute code, + please fork the repository and submit a pull request. + + Run tests + ~~~~~~~~~ + .. _tox: https://tox.readthedocs.io/en/latest/ + + Tests can be executed using tox_. + + Install tox: ``pip install tox`` + + Run test for Python 2.7: ``tox -epy27`` + + Release + ~~~~~~~ + * Update CHANGES.txt + * Update README with any new contributors and potential info needed. + * Update _pyrsistent_version.py + * python setup.py sdist upload + * Commit and tag with new version: git add -u . && git commit -m 'Prepare version vX.Y.Z' && git tag -a vX.Y.Z -m 'vX.Y.Z' + * Push commit and tags: git push && git push --tags + + Project status + -------------- + Pyrsistent can be considered stable and mature (who knows, there may even be a 1.0 some day :-)). The project is + maintained, bugs fixed, PRs reviewed and merged and new releases made. I currently do not have time for development + of new features or functionality which I don't have use for myself. I'm more than happy to take PRs for new + functionality though! + + There are a bunch of issues marked with ``enhancement`` and ``help wanted`` that contain requests for new functionality + that would be nice to include. The level of difficulty and extend of the issues varies, please reach out to me if you're + interested in working on any of them. + + If you feel that you have a grand master plan for where you would like Pyrsistent to go and have the time to put into + it please don't hesitate to discuss this with me and submit PRs for it. If all goes well I'd be more than happy to add + additional maintainers to the project! + +Platform: UNKNOWN +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: Implementation :: PyPy diff --git a/third_party/python/pyrsistent/pyrsistent.egg-info/SOURCES.txt b/third_party/python/pyrsistent/pyrsistent.egg-info/SOURCES.txt new file mode 100644 index 000000000000..9d3cc0a8d6ae --- /dev/null +++ b/third_party/python/pyrsistent/pyrsistent.egg-info/SOURCES.txt @@ -0,0 +1,53 @@ +CHANGES.txt +LICENCE.mit +MANIFEST.in +README +README.rst +_pyrsistent_version.py +pvectorcmodule.c +setup.cfg +setup.py +pyrsistent/__init__.py +pyrsistent/__init__.pyi +pyrsistent/_checked_types.py +pyrsistent/_compat.py +pyrsistent/_field_common.py +pyrsistent/_helpers.py +pyrsistent/_immutable.py +pyrsistent/_pbag.py +pyrsistent/_pclass.py +pyrsistent/_pdeque.py +pyrsistent/_plist.py +pyrsistent/_pmap.py +pyrsistent/_precord.py +pyrsistent/_pset.py +pyrsistent/_pvector.py +pyrsistent/_toolz.py +pyrsistent/_transformations.py +pyrsistent/py.typed +pyrsistent/typing.py +pyrsistent/typing.pyi +pyrsistent.egg-info/PKG-INFO +pyrsistent.egg-info/SOURCES.txt +pyrsistent.egg-info/dependency_links.txt +pyrsistent.egg-info/requires.txt +pyrsistent.egg-info/top_level.txt +tests/bag_test.py +tests/checked_map_test.py +tests/checked_set_test.py +tests/checked_vector_test.py +tests/class_test.py +tests/deque_test.py +tests/field_test.py +tests/freeze_test.py +tests/hypothesis_vector_test.py +tests/immutable_object_test.py +tests/list_test.py +tests/map_test.py +tests/memory_profiling.py +tests/record_test.py +tests/regression_test.py +tests/set_test.py +tests/toolz_test.py +tests/transform_test.py +tests/vector_test.py \ No newline at end of file diff --git a/third_party/python/pyrsistent/pyrsistent.egg-info/dependency_links.txt b/third_party/python/pyrsistent/pyrsistent.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/pyrsistent/pyrsistent.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/pyrsistent/pyrsistent.egg-info/requires.txt b/third_party/python/pyrsistent/pyrsistent.egg-info/requires.txt new file mode 100644 index 000000000000..ffe2fce49895 --- /dev/null +++ b/third_party/python/pyrsistent/pyrsistent.egg-info/requires.txt @@ -0,0 +1 @@ +six diff --git a/third_party/python/pyrsistent/pyrsistent.egg-info/top_level.txt b/third_party/python/pyrsistent/pyrsistent.egg-info/top_level.txt new file mode 100644 index 000000000000..f2460728a9d5 --- /dev/null +++ b/third_party/python/pyrsistent/pyrsistent.egg-info/top_level.txt @@ -0,0 +1,3 @@ +_pyrsistent_version +pvectorc +pyrsistent diff --git a/third_party/python/pystache/pystache.egg-info/PKG-INFO b/third_party/python/pystache/pystache.egg-info/PKG-INFO new file mode 100644 index 000000000000..92e0c7f8ed24 --- /dev/null +++ b/third_party/python/pystache/pystache.egg-info/PKG-INFO @@ -0,0 +1,536 @@ +Metadata-Version: 1.1 +Name: pystache +Version: 0.5.4 +Summary: Mustache for Python +Home-page: http://github.com/defunkt/pystache +Author: Chris Jerdonek +Author-email: chris.jerdonek@gmail.com +License: MIT +Description: .. Do not edit this file. This file is auto-generated for PyPI by setup.py + .. using pandoc, so edits should go in the source files rather than here. + + Pystache + ======== + + .. figure:: http://defunkt.github.com/pystache/images/logo_phillips.png + :alt: mustachioed, monocled snake by David Phillips + + .. figure:: https://secure.travis-ci.org/defunkt/pystache.png + :alt: Travis CI current build status + + `Pystache `__ is a Python + implementation of `Mustache `__. Mustache + is a framework-agnostic, logic-free templating system inspired by + `ctemplate `__ and + `et `__. + Like ctemplate, Mustache "emphasizes separating logic from presentation: + it is impossible to embed application logic in this template language." + + The `mustache(5) `__ man + page provides a good introduction to Mustache's syntax. For a more + complete (and more current) description of Mustache's behavior, see the + official `Mustache spec `__. + + Pystache is `semantically versioned `__ and can be + found on `PyPI `__. This version + of Pystache passes all tests in `version + 1.1.2 `__ of the spec. + + Requirements + ------------ + + Pystache is tested with-- + + - Python 2.4 (requires simplejson `version + 2.0.9 `__ or earlier) + - Python 2.5 (requires + `simplejson `__) + - Python 2.6 + - Python 2.7 + - Python 3.1 + - Python 3.2 + - Python 3.3 + - `PyPy `__ + + `Distribute `__ (the setuptools + fork) is recommended over + `setuptools `__, and is required + in some cases (e.g. for Python 3 support). If you use + `pip `__, you probably already satisfy + this requirement. + + JSON support is needed only for the command-line interface and to run + the spec tests. We require simplejson for earlier versions of Python + since Python's `json `__ + module was added in Python 2.6. + + For Python 2.4 we require an earlier version of simplejson since + simplejson stopped officially supporting Python 2.4 in simplejson + version 2.1.0. Earlier versions of simplejson can be installed manually, + as follows: + + :: + + pip install 'simplejson<2.1.0' + + Official support for Python 2.4 will end with Pystache version 0.6.0. + + Install It + ---------- + + :: + + pip install pystache + + And test it-- + + :: + + pystache-test + + To install and test from source (e.g. from GitHub), see the Develop + section. + + Use It + ------ + + :: + + >>> import pystache + >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'}) + Hi Mom! + + You can also create dedicated view classes to hold your view logic. + + Here's your view class (in .../examples/readme.py): + + :: + + class SayHello(object): + def to(self): + return "Pizza" + + Instantiating like so: + + :: + + >>> from pystache.tests.examples.readme import SayHello + >>> hello = SayHello() + + Then your template, say\_hello.mustache (by default in the same + directory as your class definition): + + :: + + Hello, {{to}}! + + Pull it together: + + :: + + >>> renderer = pystache.Renderer() + >>> print renderer.render(hello) + Hello, Pizza! + + For greater control over rendering (e.g. to specify a custom template + directory), use the ``Renderer`` class like above. One can pass + attributes to the Renderer class constructor or set them on a Renderer + instance. To customize template loading on a per-view basis, subclass + ``TemplateSpec``. See the docstrings of the + `Renderer `__ + class and + `TemplateSpec `__ + class for more information. + + You can also pre-parse a template: + + :: + + >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}") + >>> print parsed + [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])] + + And then: + + :: + + >>> print renderer.render(parsed, {'who': 'Pops'}) + Hey Pops! + >>> print renderer.render(parsed, {'who': 'you'}) + Hey you! + + Python 3 + -------- + + Pystache has supported Python 3 since version 0.5.1. Pystache behaves + slightly differently between Python 2 and 3, as follows: + + - In Python 2, the default html-escape function ``cgi.escape()`` does + not escape single quotes. In Python 3, the default escape function + ``html.escape()`` does escape single quotes. + - In both Python 2 and 3, the string and file encodings default to + ``sys.getdefaultencoding()``. However, this function can return + different values under Python 2 and 3, even when run from the same + system. Check your own system for the behavior on your system, or do + not rely on the defaults by passing in the encodings explicitly (e.g. + to the ``Renderer`` class). + + Unicode + ------- + + This section describes how Pystache handles unicode, strings, and + encodings. + + Internally, Pystache uses `only unicode + strings `__ + (``str`` in Python 3 and ``unicode`` in Python 2). For input, Pystache + accepts both unicode strings and byte strings (``bytes`` in Python 3 and + ``str`` in Python 2). For output, Pystache's template rendering methods + return only unicode. + + Pystache's ``Renderer`` class supports a number of attributes to control + how Pystache converts byte strings to unicode on input. These include + the ``file_encoding``, ``string_encoding``, and ``decode_errors`` + attributes. + + The ``file_encoding`` attribute is the encoding the renderer uses to + convert to unicode any files read from the file system. Similarly, + ``string_encoding`` is the encoding the renderer uses to convert any + other byte strings encountered during the rendering process into unicode + (e.g. context values that are encoded byte strings). + + The ``decode_errors`` attribute is what the renderer passes as the + ``errors`` argument to Python's built-in unicode-decoding function + (``str()`` in Python 3 and ``unicode()`` in Python 2). The valid values + for this argument are ``strict``, ``ignore``, and ``replace``. + + Each of these attributes can be set via the ``Renderer`` class's + constructor using a keyword argument of the same name. See the Renderer + class's docstrings for further details. In addition, the + ``file_encoding`` attribute can be controlled on a per-view basis by + subclassing the ``TemplateSpec`` class. When not specified explicitly, + these attributes default to values set in Pystache's ``defaults`` + module. + + Develop + ------- + + To test from a source distribution (without installing)-- + + :: + + python test_pystache.py + + To test Pystache with multiple versions of Python (with a single + command!), you can use `tox `__: + + :: + + pip install 'virtualenv<1.8' # Version 1.8 dropped support for Python 2.4. + pip install 'tox<1.4' # Version 1.4 dropped support for Python 2.4. + tox + + If you do not have all Python versions listed in ``tox.ini``-- + + :: + + tox -e py26,py32 # for example + + The source distribution tests also include doctests and tests from the + Mustache spec. To include tests from the Mustache spec in your test + runs: + + :: + + git submodule init + git submodule update + + The test harness parses the spec's (more human-readable) yaml files if + `PyYAML `__ is present. Otherwise, + it parses the json files. To install PyYAML-- + + :: + + pip install pyyaml + + To run a subset of the tests, you can use + `nose `__: + + :: + + pip install nose + nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present + + Using Python 3 with Pystache from source + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Pystache is written in Python 2 and must be converted to Python 3 prior + to using it with Python 3. The installation process (and tox) do this + automatically. + + To convert the code to Python 3 manually (while using Python 3)-- + + :: + + python setup.py build + + This writes the converted code to a subdirectory called ``build``. By + design, Python 3 builds + `cannot `__ + be created from Python 2. + + To convert the code without using setup.py, you can use + `2to3 `__ as follows (two + steps)-- + + :: + + 2to3 --write --nobackups --no-diffs --doctests_only pystache + 2to3 --write --nobackups --no-diffs pystache + + This converts the code (and doctests) in place. + + To ``import pystache`` from a source distribution while using Python 3, + be sure that you are importing from a directory containing a converted + version of the code (e.g. from the ``build`` directory after + converting), and not from the original (unconverted) source directory. + Otherwise, you will get a syntax error. You can help prevent this by not + running the Python IDE from the project directory when importing + Pystache while using Python 3. + + Mailing List + ------------ + + There is a `mailing list `__. + Note that there is a bit of a delay between posting a message and seeing + it appear in the mailing list archive. + + Credits + ------- + + :: + + >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' } + >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context) + Author: Chris Wanstrath + Maintainer: Chris Jerdonek + + Pystache logo by `David Phillips `__ is + licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported + License `__. + |image0| + + History + ======= + + **Note:** Official support for Python 2.4 will end with Pystache version + 0.6.0. + + 0.5.4 (2014-07-11) + ------------------ + + - Bugfix: made test with filenames OS agnostic (issue #162). + + 0.5.3 (2012-11-03) + ------------------ + + - Added ability to customize string coercion (e.g. to have None render + as ``''``) (issue #130). + - Added Renderer.render\_name() to render a template by name (issue + #122). + - Added TemplateSpec.template\_path to specify an absolute path to a + template (issue #41). + - Added option of raising errors on missing tags/partials: + ``Renderer(missing_tags='strict')`` (issue #110). + - Added support for finding and loading templates by file name in + addition to by template name (issue #127). [xgecko] + - Added a ``parse()`` function that yields a printable, pre-compiled + parse tree. + - Added support for rendering pre-compiled templates. + - Added Python 3.3 to the list of supported versions. + - Added support for `PyPy `__ (issue #125). + - Added support for `Travis CI `__ (issue #124). + [msabramo] + - Bugfix: ``defaults.DELIMITERS`` can now be changed at runtime (issue + #135). [bennoleslie] + - Bugfix: exceptions raised from a property are no longer swallowed + when getting a key from a context stack (issue #110). + - Bugfix: lambda section values can now return non-ascii, non-unicode + strings (issue #118). + - Bugfix: allow ``test_pystache.py`` and ``tox`` to pass when run from + a downloaded sdist (i.e. without the spec test directory). + - Convert HISTORY and README files from reST to Markdown. + - More robust handling of byte strings in Python 3. + - Added Creative Commons license for David Phillips's logo. + + 0.5.2 (2012-05-03) + ------------------ + + - Added support for dot notation and version 1.1.2 of the spec (issue + #99). [rbp] + - Missing partials now render as empty string per latest version of + spec (issue #115). + - Bugfix: falsey values now coerced to strings using str(). + - Bugfix: lambda return values for sections no longer pushed onto + context stack (issue #113). + - Bugfix: lists of lambdas for sections were not rendered (issue #114). + + 0.5.1 (2012-04-24) + ------------------ + + - Added support for Python 3.1 and 3.2. + - Added tox support to test multiple Python versions. + - Added test script entry point: pystache-test. + - Added \_\_version\_\_ package attribute. + - Test harness now supports both YAML and JSON forms of Mustache spec. + - Test harness no longer requires nose. + + 0.5.0 (2012-04-03) + ------------------ + + This version represents a major rewrite and refactoring of the code base + that also adds features and fixes many bugs. All functionality and + nearly all unit tests have been preserved. However, some backwards + incompatible changes to the API have been made. + + Below is a selection of some of the changes (not exhaustive). + + Highlights: + + - Pystache now passes all tests in version 1.0.3 of the `Mustache + spec `__. [pvande] + - Removed View class: it is no longer necessary to subclass from View + or from any other class to create a view. + - Replaced Template with Renderer class: template rendering behavior + can be modified via the Renderer constructor or by setting attributes + on a Renderer instance. + - Added TemplateSpec class: template rendering can be specified on a + per-view basis by subclassing from TemplateSpec. + - Introduced separation of concerns and removed circular dependencies + (e.g. between Template and View classes, cf. `issue + #13 `__). + - Unicode now used consistently throughout the rendering process. + - Expanded test coverage: nosetests now runs doctests and ~105 test + cases from the Mustache spec (increasing the number of tests from 56 + to ~315). + - Added a rudimentary benchmarking script to gauge performance while + refactoring. + - Extensive documentation added (e.g. docstrings). + + Other changes: + + - Added a command-line interface. [vrde] + - The main rendering class now accepts a custom partial loader (e.g. a + dictionary) and a custom escape function. + - Non-ascii characters in str strings are now supported while + rendering. + - Added string encoding, file encoding, and errors options for decoding + to unicode. + - Removed the output encoding option. + - Removed the use of markupsafe. + + Bug fixes: + + - Context values no longer processed as template strings. + [jakearchibald] + - Whitespace surrounding sections is no longer altered, per the spec. + [heliodor] + - Zeroes now render correctly when using PyPy. [alex] + - Multline comments now permitted. [fczuardi] + - Extensionless template files are now supported. + - Passing ``**kwargs`` to ``Template()`` no longer modifies the + context. + - Passing ``**kwargs`` to ``Template()`` with no context no longer + raises an exception. + + 0.4.1 (2012-03-25) + ------------------ + + - Added support for Python 2.4. [wangtz, jvantuyl] + + 0.4.0 (2011-01-12) + ------------------ + + - Add support for nested contexts (within template and view) + - Add support for inverted lists + - Decoupled template loading + + 0.3.1 (2010-05-07) + ------------------ + + - Fix package + + 0.3.0 (2010-05-03) + ------------------ + + - View.template\_path can now hold a list of path + - Add {{& blah}} as an alias for {{{ blah }}} + - Higher Order Sections + - Inverted sections + + 0.2.0 (2010-02-15) + ------------------ + + - Bugfix: Methods returning False or None are not rendered + - Bugfix: Don't render an empty string when a tag's value is 0. + [enaeseth] + - Add support for using non-callables as View attributes. + [joshthecoder] + - Allow using View instances as attributes. [joshthecoder] + - Support for Unicode and non-ASCII-encoded bytestring output. + [enaeseth] + - Template file encoding awareness. [enaeseth] + + 0.1.1 (2009-11-13) + ------------------ + + - Ensure we're dealing with strings, always + - Tests can be run by executing the test file directly + + 0.1.0 (2009-11-12) + ------------------ + + - First release + + License + ======= + + Copyright (C) 2012 Chris Jerdonek. All rights reserved. + + Copyright (c) 2009 Chris Wanstrath + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + .. |image0| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png + +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: License :: OSI Approved :: MIT License +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.4 +Classifier: Programming Language :: Python :: 2.5 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: Implementation :: PyPy diff --git a/third_party/python/pystache/pystache.egg-info/SOURCES.txt b/third_party/python/pystache/pystache.egg-info/SOURCES.txt new file mode 100644 index 000000000000..563fc1b28759 --- /dev/null +++ b/third_party/python/pystache/pystache.egg-info/SOURCES.txt @@ -0,0 +1,97 @@ +HISTORY.md +LICENSE +MANIFEST.in +README.md +TODO.md +setup.py +setup_description.rst +test_pystache.py +tox.ini +pystache/__init__.py +pystache/common.py +pystache/context.py +pystache/defaults.py +pystache/init.py +pystache/loader.py +pystache/locator.py +pystache/parsed.py +pystache/parser.py +pystache/renderengine.py +pystache/renderer.py +pystache/specloader.py +pystache/template_spec.py +pystache.egg-info/PKG-INFO +pystache.egg-info/SOURCES.txt +pystache.egg-info/dependency_links.txt +pystache.egg-info/entry_points.txt +pystache.egg-info/top_level.txt +pystache/commands/__init__.py +pystache/commands/render.py +pystache/commands/test.py +pystache/tests/__init__.py +pystache/tests/benchmark.py +pystache/tests/common.py +pystache/tests/doctesting.py +pystache/tests/main.py +pystache/tests/spectesting.py +pystache/tests/test___init__.py +pystache/tests/test_commands.py +pystache/tests/test_context.py +pystache/tests/test_defaults.py +pystache/tests/test_examples.py +pystache/tests/test_loader.py +pystache/tests/test_locator.py +pystache/tests/test_parser.py +pystache/tests/test_pystache.py +pystache/tests/test_renderengine.py +pystache/tests/test_renderer.py +pystache/tests/test_simple.py +pystache/tests/test_specloader.py +pystache/tests/data/__init__.py +pystache/tests/data/ascii.mustache +pystache/tests/data/duplicate.mustache +pystache/tests/data/non_ascii.mustache +pystache/tests/data/sample_view.mustache +pystache/tests/data/say_hello.mustache +pystache/tests/data/views.py +pystache/tests/data/locator/__init__.py +pystache/tests/data/locator/duplicate.mustache +pystache/tests/data/locator/template.txt +pystache/tests/examples/__init__.py +pystache/tests/examples/comments.mustache +pystache/tests/examples/comments.py +pystache/tests/examples/complex.mustache +pystache/tests/examples/complex.py +pystache/tests/examples/delimiters.mustache +pystache/tests/examples/delimiters.py +pystache/tests/examples/double_section.mustache +pystache/tests/examples/double_section.py +pystache/tests/examples/escaped.mustache +pystache/tests/examples/escaped.py +pystache/tests/examples/inner_partial.mustache +pystache/tests/examples/inner_partial.txt +pystache/tests/examples/inverted.mustache +pystache/tests/examples/inverted.py +pystache/tests/examples/lambdas.mustache +pystache/tests/examples/lambdas.py +pystache/tests/examples/looping_partial.mustache +pystache/tests/examples/nested_context.mustache +pystache/tests/examples/nested_context.py +pystache/tests/examples/partial_in_partial.mustache +pystache/tests/examples/partial_with_lambda.mustache +pystache/tests/examples/partial_with_partial_and_lambda.mustache +pystache/tests/examples/partials_with_lambdas.py +pystache/tests/examples/readme.py +pystache/tests/examples/say_hello.mustache +pystache/tests/examples/simple.mustache +pystache/tests/examples/simple.py +pystache/tests/examples/tagless.mustache +pystache/tests/examples/template_partial.mustache +pystache/tests/examples/template_partial.py +pystache/tests/examples/template_partial.txt +pystache/tests/examples/unescaped.mustache +pystache/tests/examples/unescaped.py +pystache/tests/examples/unicode_input.mustache +pystache/tests/examples/unicode_input.py +pystache/tests/examples/unicode_output.mustache +pystache/tests/examples/unicode_output.py \ No newline at end of file diff --git a/third_party/python/pystache/pystache.egg-info/dependency_links.txt b/third_party/python/pystache/pystache.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/pystache/pystache.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/pystache/pystache.egg-info/entry_points.txt b/third_party/python/pystache/pystache.egg-info/entry_points.txt new file mode 100644 index 000000000000..090db731cfe8 --- /dev/null +++ b/third_party/python/pystache/pystache.egg-info/entry_points.txt @@ -0,0 +1,4 @@ +[console_scripts] +pystache = pystache.commands.render:main +pystache-test = pystache.commands.test:main + diff --git a/third_party/python/pystache/pystache.egg-info/top_level.txt b/third_party/python/pystache/pystache.egg-info/top_level.txt new file mode 100644 index 000000000000..27d7fbb58260 --- /dev/null +++ b/third_party/python/pystache/pystache.egg-info/top_level.txt @@ -0,0 +1 @@ +pystache diff --git a/third_party/python/pytoml/pytoml.egg-info/PKG-INFO b/third_party/python/pytoml/pytoml.egg-info/PKG-INFO new file mode 100644 index 000000000000..844436f95884 --- /dev/null +++ b/third_party/python/pytoml/pytoml.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: pytoml +Version: 0.1.10 +Summary: A parser for TOML-0.4.0 +Home-page: https://github.com/avakar/pytoml +Author: Martin Vejnár +Author-email: avakar@ratatanek.cz +License: MIT +Description: UNKNOWN +Platform: UNKNOWN diff --git a/third_party/python/pytoml/pytoml.egg-info/SOURCES.txt b/third_party/python/pytoml/pytoml.egg-info/SOURCES.txt new file mode 100644 index 000000000000..c583f491f4e4 --- /dev/null +++ b/third_party/python/pytoml/pytoml.egg-info/SOURCES.txt @@ -0,0 +1,10 @@ +setup.py +pytoml/__init__.py +pytoml/core.py +pytoml/parser.py +pytoml/writer.py +pytoml.egg-info/PKG-INFO +pytoml.egg-info/SOURCES.txt +pytoml.egg-info/dependency_links.txt +pytoml.egg-info/top_level.txt +test/test.py \ No newline at end of file diff --git a/third_party/python/pytoml/pytoml.egg-info/dependency_links.txt b/third_party/python/pytoml/pytoml.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/pytoml/pytoml.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/pytoml/pytoml.egg-info/top_level.txt b/third_party/python/pytoml/pytoml.egg-info/top_level.txt new file mode 100644 index 000000000000..058140720adf --- /dev/null +++ b/third_party/python/pytoml/pytoml.egg-info/top_level.txt @@ -0,0 +1 @@ +pytoml diff --git a/third_party/python/slugid/slugid.egg-info/PKG-INFO b/third_party/python/slugid/slugid.egg-info/PKG-INFO new file mode 100644 index 000000000000..ba71c90babeb --- /dev/null +++ b/third_party/python/slugid/slugid.egg-info/PKG-INFO @@ -0,0 +1,14 @@ +Metadata-Version: 1.1 +Name: slugid +Version: 1.0.7 +Summary: Base64 encoded uuid v4 slugs +Home-page: http://taskcluster.github.io/slugid.py +Author: Pete Moore +Author-email: pmoore@mozilla.com +License: MPL 2.0 +Description: UNKNOWN +Platform: UNKNOWN +Classifier: Intended Audience :: Developers +Classifier: Natural Language :: English +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.5 diff --git a/third_party/python/slugid/slugid.egg-info/SOURCES.txt b/third_party/python/slugid/slugid.egg-info/SOURCES.txt new file mode 100644 index 000000000000..aab037721c4e --- /dev/null +++ b/third_party/python/slugid/slugid.egg-info/SOURCES.txt @@ -0,0 +1,8 @@ +README.rst +setup.py +slugid/__init__.py +slugid/slugid.py +slugid.egg-info/PKG-INFO +slugid.egg-info/SOURCES.txt +slugid.egg-info/dependency_links.txt +slugid.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/slugid/slugid.egg-info/dependency_links.txt b/third_party/python/slugid/slugid.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/slugid/slugid.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/slugid/slugid.egg-info/top_level.txt b/third_party/python/slugid/slugid.egg-info/top_level.txt new file mode 100644 index 000000000000..e1d5cb9085bf --- /dev/null +++ b/third_party/python/slugid/slugid.egg-info/top_level.txt @@ -0,0 +1 @@ +slugid diff --git a/third_party/python/yarl/yarl.egg-info/PKG-INFO b/third_party/python/yarl/yarl.egg-info/PKG-INFO new file mode 100644 index 000000000000..3c242e513537 --- /dev/null +++ b/third_party/python/yarl/yarl.egg-info/PKG-INFO @@ -0,0 +1,797 @@ +Metadata-Version: 2.1 +Name: yarl +Version: 1.6.3 +Summary: Yet another URL library +Home-page: https://github.com/aio-libs/yarl/ +Author: Andrew Svetlov +Author-email: andrew.svetlov@gmail.com +License: Apache 2 +Description: yarl + ==== + + .. image:: https://github.com/aio-libs/yarl/workflows/CI/badge.svg + :target: https://github.com/aio-libs/yarl/actions?query=workflow%3ACI + :align: right + + .. image:: https://codecov.io/gh/aio-libs/yarl/branch/master/graph/badge.svg + :target: https://codecov.io/gh/aio-libs/yarl + + .. image:: https://badge.fury.io/py/yarl.svg + :target: https://badge.fury.io/py/yarl + + + .. image:: https://readthedocs.org/projects/yarl/badge/?version=latest + :target: https://yarl.readthedocs.io + + + .. image:: https://img.shields.io/pypi/pyversions/yarl.svg + :target: https://pypi.python.org/pypi/yarl + + .. image:: https://badges.gitter.im/Join%20Chat.svg + :target: https://gitter.im/aio-libs/Lobby + :alt: Chat on Gitter + + Introduction + ------------ + + Url is constructed from ``str``: + + .. code-block:: pycon + + >>> from yarl import URL + >>> url = URL('https://www.python.org/~guido?arg=1#frag') + >>> url + URL('https://www.python.org/~guido?arg=1#frag') + + All url parts: *scheme*, *user*, *password*, *host*, *port*, *path*, + *query* and *fragment* are accessible by properties: + + .. code-block:: pycon + + >>> url.scheme + 'https' + >>> url.host + 'www.python.org' + >>> url.path + '/~guido' + >>> url.query_string + 'arg=1' + >>> url.query + + >>> url.fragment + 'frag' + + All url manipulations produce a new url object: + + .. code-block:: pycon + + >>> url = URL('https://www.python.org') + >>> url / 'foo' / 'bar' + URL('https://www.python.org/foo/bar') + >>> url / 'foo' % {'bar': 'baz'} + URL('https://www.python.org/foo?bar=baz') + + Strings passed to constructor and modification methods are + automatically encoded giving canonical representation as result: + + .. code-block:: pycon + + >>> url = URL('https://www.python.org/путь') + >>> url + URL('https://www.python.org/%D0%BF%D1%83%D1%82%D1%8C') + + Regular properties are *percent-decoded*, use ``raw_`` versions for + getting *encoded* strings: + + .. code-block:: pycon + + >>> url.path + '/путь' + + >>> url.raw_path + '/%D0%BF%D1%83%D1%82%D1%8C' + + Human readable representation of URL is available as ``.human_repr()``: + + .. code-block:: pycon + + >>> url.human_repr() + 'https://www.python.org/путь' + + For full documentation please read https://yarl.readthedocs.org. + + + Installation + ------------ + + :: + + $ pip install yarl + + The library is Python 3 only! + + PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install + ``yarl`` on another operating system (like *Alpine Linux*, which is not + manylinux-compliant because of the missing glibc and therefore, cannot be + used with our wheels) the the tarball will be used to compile the library from + the source code. It requires a C compiler and and Python headers installed. + + To skip the compilation you must explicitly opt-in by setting the `YARL_NO_EXTENSIONS` + environment variable to a non-empty value, e.g.: + + .. code-block:: bash + + $ YARL_NO_EXTENSIONS=1 pip install yarl + + Please note that the pure-Python (uncompiled) version is much slower. However, + PyPy always uses a pure-Python implementation, and, as such, it is unaffected + by this variable. + + Dependencies + ------------ + + YARL requires multidict_ library. + + + API documentation + ------------------ + + The documentation is located at https://yarl.readthedocs.org + + + Why isn't boolean supported by the URL query API? + ------------------------------------------------- + + There is no standard for boolean representation of boolean values. + + Some systems prefer ``true``/``false``, others like ``yes``/``no``, ``on``/``off``, + ``Y``/``N``, ``1``/``0``, etc. + + ``yarl`` cannot make an unambiguous decision on how to serialize ``bool`` values because + it is specific to how the end-user's application is built and would be different for + different apps. The library doesn't accept booleans in the API; a user should convert + bools into strings using own preferred translation protocol. + + + Comparison with other URL libraries + ------------------------------------ + + * furl (https://pypi.python.org/pypi/furl) + + The library has rich functionality but the ``furl`` object is mutable. + + I'm afraid to pass this object into foreign code: who knows if the + code will modify my url in a terrible way while I just want to send URL + with handy helpers for accessing URL properties. + + ``furl`` has other non-obvious tricky things but the main objection + is mutability. + + * URLObject (https://pypi.python.org/pypi/URLObject) + + URLObject is immutable, that's pretty good. + + Every URL change generates a new URL object. + + But the library doesn't do any decode/encode transformations leaving the + end user to cope with these gory details. + + + Source code + ----------- + + The project is hosted on GitHub_ + + Please file an issue on the `bug tracker + `_ if you have found a bug + or have some suggestion in order to improve the library. + + The library uses `Azure Pipelines `_ for + Continuous Integration. + + Discussion list + --------------- + + *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs + + Feel free to post your questions and ideas here. + + + Authors and License + ------------------- + + The ``yarl`` package is written by Andrew Svetlov. + + It's *Apache 2* licensed and freely available. + + + .. _GitHub: https://github.com/aio-libs/yarl + + .. _multidict: https://github.com/aio-libs/multidict + + + ========= + Changelog + ========= + + .. + You should *NOT* be adding new change log entries to this file, this + file is managed by towncrier. You *may* edit previous change logs to + fix problems like typo corrections or such. + To add a new change log entry, please see + https://pip.pypa.io/en/latest/development/#adding-a-news-entry + we named the news folder "changes". + + WARNING: Don't drop the next directive! + + .. towncrier release notes start + + 1.6.3 (2020-11-14) + ================== + + Bugfixes + -------- + + - No longer loose characters when decoding incorrect percent-sequences (like ``%e2%82%f8``). All non-decodable percent-sequences are now preserved. + `#517 `_ + - Provide x86 Windows wheels. + `#535 `_ + + + ---- + + + 1.6.2 (2020-10-12) + ================== + + + Bugfixes + -------- + + - Provide generated ``.c`` files in TarBall distribution. + `#530 `_ + + 1.6.1 (2020-10-12) + ================== + + Features + -------- + + - Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` architectures on + Linux as well as ``x86_64``. + `#507 `_ + - Provide wheels for Python 3.9. + `#526 `_ + + Bugfixes + -------- + + - ``human_repr()`` now always produces valid representation equivalent to the original URL (if the original URL is valid). + `#511 `_ + - Fixed requoting a single percent followed by a percent-encoded character in the Cython implementation. + `#514 `_ + - Fix ValueError when decoding ``%`` which is not followed by two hexadecimal digits. + `#516 `_ + - Fix decoding ``%`` followed by a space and hexadecimal digit. + `#520 `_ + - Fix annotation of ``with_query()``/``update_query()`` methods for ``key=[val1, val2]`` case. + `#528 `_ + + Removal + ------- + + - Drop Python 3.5 support; Python 3.6 is the minimal supported Python version. + + + ---- + + + 1.6.0 (2020-09-23) + ================== + + Features + -------- + + - Allow for int and float subclasses in query, while still denying bool. + `#492 `_ + + + Bugfixes + -------- + + - Do not requote arguments in ``URL.build()``, ``with_xxx()`` and in ``/`` operator. + `#502 `_ + - Keep IPv6 brackets in ``origin()``. + `#504 `_ + + + ---- + + + 1.5.1 (2020-08-01) + ================== + + Bugfixes + -------- + + - Fix including relocated internal ``yarl._quoting_c`` C-extension into published PyPI dists. + `#485 `_ + + + Misc + ---- + + - `#484 `_ + + + ---- + + + 1.5.0 (2020-07-26) + ================== + + Features + -------- + + - Convert host to lowercase on URL building. + `#386 `_ + - Allow using ``mod`` operator (`%`) for updating query string (an alias for ``update_query()`` method). + `#435 `_ + - Allow use of sequences such as ``list`` and ``tuple`` in the values + of a mapping such as ``dict`` to represent that a key has many values:: + + url = URL("http://example.com") + assert url.with_query({"a": [1, 2]}) == URL("http://example.com/?a=1&a=2") + + `#443 `_ + - Support URL.build() with scheme and path (creates a relative URL). + `#464 `_ + - Cache slow IDNA encode/decode calls. + `#476 `_ + - Add ``@final`` / ``Final`` type hints + `#477 `_ + - Support URL authority/raw_authority properties and authority argument of ``URL.build()`` method. + `#478 `_ + - Hide the library implementation details, make the exposed public list very clean. + `#483 `_ + + + Bugfixes + -------- + + - Fix tests with newer Python (3.7.6, 3.8.1 and 3.9.0+). + `#409 `_ + - Fix a bug where query component, passed in a form of mapping or sequence, is unquoted in unexpected way. + `#426 `_ + - Hide `Query` and `QueryVariable` type aliases in `__init__.pyi`, now they are prefixed with underscore. + `#431 `_ + - Keep ipv6 brackets after updating port/user/password. + `#451 `_ + + + ---- + + + 1.4.2 (2019-12-05) + ================== + + Features + -------- + + - Workaround for missing `str.isascii()` in Python 3.6 + `#389 `_ + + + ---- + + + 1.4.1 (2019-11-29) + ================== + + * Fix regression, make the library work on Python 3.5 and 3.6 again. + + 1.4.0 (2019-11-29) + ================== + + * Distinguish an empty password in URL from a password not provided at all (#262) + + * Fixed annotations for optional parameters of ``URL.build`` (#309) + + * Use None as default value of ``user`` parameter of ``URL.build`` (#309) + + * Enforce building C Accelerated modules when installing from source tarball, use + ``YARL_NO_EXTENSIONS`` environment variable for falling back to (slower) Pure Python + implementation (#329) + + * Drop Python 3.5 support + + * Fix quoting of plus in path by pure python version (#339) + + * Don't create a new URL if fragment is unchanged (#292) + + * Included in error msg the path that produces starting slash forbidden error (#376) + + * Skip slow IDNA encoding for ASCII-only strings (#387) + + + 1.3.0 (2018-12-11) + ================== + + * Fix annotations for ``query`` parameter (#207) + + * An incoming query sequence can have int variables (the same as for + Mapping type) (#208) + + * Add ``URL.explicit_port`` property (#218) + + * Give a friendlier error when port cant be converted to int (#168) + + * ``bool(URL())`` now returns ``False`` (#272) + + 1.2.6 (2018-06-14) + ================== + + * Drop Python 3.4 trove classifier (#205) + + 1.2.5 (2018-05-23) + ================== + + * Fix annotations for ``build`` (#199) + + 1.2.4 (2018-05-08) + ================== + + * Fix annotations for ``cached_property`` (#195) + + 1.2.3 (2018-05-03) + ================== + + * Accept ``str`` subclasses in ``URL`` constructor (#190) + + 1.2.2 (2018-05-01) + ================== + + * Fix build + + 1.2.1 (2018-04-30) + ================== + + * Pin minimal required Python to 3.5.3 (#189) + + 1.2.0 (2018-04-30) + ================== + + * Forbid inheritance, replace ``__init__`` with ``__new__`` (#171) + + * Support PEP-561 (provide type hinting marker) (#182) + + 1.1.1 (2018-02-17) + ================== + + * Fix performance regression: don't encode enmpty netloc (#170) + + 1.1.0 (2018-01-21) + ================== + + * Make pure Python quoter consistent with Cython version (#162) + + 1.0.0 (2018-01-15) + ================== + + * Use fast path if quoted string does not need requoting (#154) + + * Speed up quoting/unquoting by ``_Quoter`` and ``_Unquoter`` classes (#155) + + * Drop ``yarl.quote`` and ``yarl.unquote`` public functions (#155) + + * Add custom string writer, reuse static buffer if available (#157) + Code is 50-80 times faster than Pure Python version (was 4-5 times faster) + + * Don't recode IP zone (#144) + + * Support ``encoded=True`` in ``yarl.URL.build()`` (#158) + + * Fix updating query with multiple keys (#160) + + 0.18.0 (2018-01-10) + =================== + + * Fallback to IDNA 2003 if domain name is not IDNA 2008 compatible (#152) + + 0.17.0 (2017-12-30) + =================== + + * Use IDNA 2008 for domain name processing (#149) + + 0.16.0 (2017-12-07) + =================== + + * Fix raising ``TypeError`` by ``url.query_string()`` after + ``url.with_query({})`` (empty mapping) (#141) + + 0.15.0 (2017-11-23) + =================== + + * Add ``raw_path_qs`` attribute (#137) + + 0.14.2 (2017-11-14) + =================== + + * Restore ``strict`` parameter as no-op in ``quote`` / ``unquote`` + + 0.14.1 (2017-11-13) + =================== + + * Restore ``strict`` parameter as no-op for sake of compatibility with + aiohttp 2.2 + + 0.14.0 (2017-11-11) + =================== + + * Drop strict mode (#123) + + * Fix ``"ValueError: Unallowed PCT %"`` when there's a ``"%"`` in the url (#124) + + 0.13.0 (2017-10-01) + =================== + + * Document ``encoded`` parameter (#102) + + * Support relative urls like ``'?key=value'`` (#100) + + * Unsafe encoding for QS fixed. Encode ``;`` char in value param (#104) + + * Process passwords without user names (#95) + + 0.12.0 (2017-06-26) + =================== + + * Properly support paths without leading slash in ``URL.with_path()`` (#90) + + * Enable type annotation checks + + 0.11.0 (2017-06-26) + =================== + + * Normalize path (#86) + + * Clear query and fragment parts in ``.with_path()`` (#85) + + 0.10.3 (2017-06-13) + =================== + + * Prevent double URL args unquoting (#83) + + 0.10.2 (2017-05-05) + =================== + + * Unexpected hash behaviour (#75) + + + 0.10.1 (2017-05-03) + =================== + + * Unexpected compare behaviour (#73) + + * Do not quote or unquote + if not a query string. (#74) + + + 0.10.0 (2017-03-14) + =================== + + * Added ``URL.build`` class method (#58) + + * Added ``path_qs`` attribute (#42) + + + 0.9.8 (2017-02-16) + ================== + + * Do not quote ``:`` in path + + + 0.9.7 (2017-02-16) + ================== + + * Load from pickle without _cache (#56) + + * Percent-encoded pluses in path variables become spaces (#59) + + + 0.9.6 (2017-02-15) + ================== + + * Revert backward incompatible change (BaseURL) + + + 0.9.5 (2017-02-14) + ================== + + * Fix BaseURL rich comparison support + + + 0.9.4 (2017-02-14) + ================== + + * Use BaseURL + + + 0.9.3 (2017-02-14) + ================== + + * Added BaseURL + + + 0.9.2 (2017-02-08) + ================== + + * Remove debug print + + + 0.9.1 (2017-02-07) + ================== + + * Do not lose tail chars (#45) + + + 0.9.0 (2017-02-07) + ================== + + * Allow to quote ``%`` in non strict mode (#21) + + * Incorrect parsing of query parameters with %3B (;) inside (#34) + + * Fix core dumps (#41) + + * tmpbuf - compiling error (#43) + + * Added ``URL.update_path()`` method + + * Added ``URL.update_query()`` method (#47) + + + 0.8.1 (2016-12-03) + ================== + + * Fix broken aiohttp: revert back ``quote`` / ``unquote``. + + + 0.8.0 (2016-12-03) + ================== + + * Support more verbose error messages in ``.with_query()`` (#24) + + * Don't percent-encode ``@`` and ``:`` in path (#32) + + * Don't expose ``yarl.quote`` and ``yarl.unquote``, these functions are + part of private API + + 0.7.1 (2016-11-18) + ================== + + * Accept not only ``str`` but all classes inherited from ``str`` also (#25) + + 0.7.0 (2016-11-07) + ================== + + * Accept ``int`` as value for ``.with_query()`` + + 0.6.0 (2016-11-07) + ================== + + * Explicitly use UTF8 encoding in setup.py (#20) + * Properly unquote non-UTF8 strings (#19) + + 0.5.3 (2016-11-02) + ================== + + * Don't use namedtuple fields but indexes on URL construction + + 0.5.2 (2016-11-02) + ================== + + * Inline ``_encode`` class method + + 0.5.1 (2016-11-02) + ================== + + * Make URL construction faster by removing extra classmethod calls + + 0.5.0 (2016-11-02) + ================== + + * Add cython optimization for quoting/unquoting + * Provide binary wheels + + 0.4.3 (2016-09-29) + ================== + + * Fix typing stubs + + 0.4.2 (2016-09-29) + ================== + + * Expose ``quote()`` and ``unquote()`` as public API + + 0.4.1 (2016-09-28) + ================== + + * Support empty values in query (``'/path?arg'``) + + 0.4.0 (2016-09-27) + ================== + + * Introduce ``relative()`` (#16) + + 0.3.2 (2016-09-27) + ================== + + * Typo fixes #15 + + 0.3.1 (2016-09-26) + ================== + + * Support sequence of pairs as ``with_query()`` parameter + + 0.3.0 (2016-09-26) + ================== + + * Introduce ``is_default_port()`` + + 0.2.1 (2016-09-26) + ================== + + * Raise ValueError for URLs like 'http://:8080/' + + 0.2.0 (2016-09-18) + ================== + + * Avoid doubling slashes when joining paths (#13) + + * Appending path starting from slash is forbidden (#12) + + 0.1.4 (2016-09-09) + ================== + + * Add kwargs support for ``with_query()`` (#10) + + 0.1.3 (2016-09-07) + ================== + + * Document ``with_query()``, ``with_fragment()`` and ``origin()`` + + * Allow ``None`` for ``with_query()`` and ``with_fragment()`` + + 0.1.2 (2016-09-07) + ================== + + * Fix links, tune docs theme. + + 0.1.1 (2016-09-06) + ================== + + * Update README, old version used obsolete API + + 0.1.0 (2016-09-06) + ================== + + * The library was deeply refactored, bytes are gone away but all + accepted strings are encoded if needed. + + 0.0.1 (2016-08-30) + ================== + + * The first release. + +Platform: UNKNOWN +Classifier: License :: OSI Approved :: Apache Software License +Classifier: Intended Audience :: Developers +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 +Classifier: Topic :: Internet :: WWW/HTTP +Requires-Python: >=3.6 +Description-Content-Type: text/x-rst diff --git a/third_party/python/yarl/yarl.egg-info/SOURCES.txt b/third_party/python/yarl/yarl.egg-info/SOURCES.txt new file mode 100644 index 000000000000..383d95918be9 --- /dev/null +++ b/third_party/python/yarl/yarl.egg-info/SOURCES.txt @@ -0,0 +1,42 @@ +CHANGES.rst +LICENSE +MANIFEST.in +README.rst +pyproject.toml +setup.cfg +setup.py +docs/Makefile +docs/api.rst +docs/conf.py +docs/index.rst +docs/make.bat +docs/spelling_wordlist.txt +docs/yarl-icon-128x128.xcf +docs/_static/yarl-icon-128x128.png +docs/_templates/about.html +tests/test_cache.py +tests/test_cached_property.py +tests/test_normalize_path.py +tests/test_pickle.py +tests/test_quoting.py +tests/test_update_query.py +tests/test_url.py +tests/test_url_build.py +tests/test_url_cmp_and_hash.py +tests/test_url_parsing.py +tests/test_url_query.py +tests/test_url_update_netloc.py +yarl/__init__.py +yarl/__init__.pyi +yarl/_quoting.py +yarl/_quoting_c.c +yarl/_quoting_c.pyi +yarl/_quoting_c.pyx +yarl/_quoting_py.py +yarl/_url.py +yarl/py.typed +yarl.egg-info/PKG-INFO +yarl.egg-info/SOURCES.txt +yarl.egg-info/dependency_links.txt +yarl.egg-info/requires.txt +yarl.egg-info/top_level.txt \ No newline at end of file diff --git a/third_party/python/yarl/yarl.egg-info/dependency_links.txt b/third_party/python/yarl/yarl.egg-info/dependency_links.txt new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/third_party/python/yarl/yarl.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/third_party/python/yarl/yarl.egg-info/requires.txt b/third_party/python/yarl/yarl.egg-info/requires.txt new file mode 100644 index 000000000000..bb40947df663 --- /dev/null +++ b/third_party/python/yarl/yarl.egg-info/requires.txt @@ -0,0 +1,5 @@ +multidict>=4.0 +idna>=2.0 + +[:python_version < "3.8"] +typing_extensions>=3.7.4 diff --git a/third_party/python/yarl/yarl.egg-info/top_level.txt b/third_party/python/yarl/yarl.egg-info/top_level.txt new file mode 100644 index 000000000000..e93e8bddefb1 --- /dev/null +++ b/third_party/python/yarl/yarl.egg-info/top_level.txt @@ -0,0 +1 @@ +yarl