зеркало из https://github.com/mozilla/gecko-dev.git
8cc68ed2dc
The vendored packaged were fetched using vanilla "pip download", which downloads wheel files by default (missing LICENSE, setup.py, etc.). This changeset was created by downloading the "glean_parser" dependencies using "pip download --no-binary :all:" which is the same thing that "mach vendor python" does. It additionally removes all the /tests and /docs directories of the vendored dependencies. Differential Revision: https://phabricator.services.mozilla.com/D65171 --HG-- rename : third_party/python/Jinja2/jinja2/__init__.py => third_party/python/Jinja2/src/jinja2/__init__.py rename : third_party/python/Jinja2/jinja2/_compat.py => third_party/python/Jinja2/src/jinja2/_compat.py rename : third_party/python/Jinja2/jinja2/_identifier.py => third_party/python/Jinja2/src/jinja2/_identifier.py rename : third_party/python/Jinja2/jinja2/asyncfilters.py => third_party/python/Jinja2/src/jinja2/asyncfilters.py rename : third_party/python/Jinja2/jinja2/asyncsupport.py => third_party/python/Jinja2/src/jinja2/asyncsupport.py rename : third_party/python/Jinja2/jinja2/bccache.py => third_party/python/Jinja2/src/jinja2/bccache.py rename : third_party/python/Jinja2/jinja2/compiler.py => third_party/python/Jinja2/src/jinja2/compiler.py rename : third_party/python/Jinja2/jinja2/constants.py => third_party/python/Jinja2/src/jinja2/constants.py rename : third_party/python/Jinja2/jinja2/debug.py => third_party/python/Jinja2/src/jinja2/debug.py rename : third_party/python/Jinja2/jinja2/defaults.py => third_party/python/Jinja2/src/jinja2/defaults.py rename : third_party/python/Jinja2/jinja2/environment.py => third_party/python/Jinja2/src/jinja2/environment.py rename : third_party/python/Jinja2/jinja2/exceptions.py => third_party/python/Jinja2/src/jinja2/exceptions.py rename : third_party/python/Jinja2/jinja2/ext.py => third_party/python/Jinja2/src/jinja2/ext.py rename : third_party/python/Jinja2/jinja2/filters.py => third_party/python/Jinja2/src/jinja2/filters.py rename : third_party/python/Jinja2/jinja2/idtracking.py => third_party/python/Jinja2/src/jinja2/idtracking.py rename : third_party/python/Jinja2/jinja2/lexer.py => third_party/python/Jinja2/src/jinja2/lexer.py rename : third_party/python/Jinja2/jinja2/loaders.py => third_party/python/Jinja2/src/jinja2/loaders.py rename : third_party/python/Jinja2/jinja2/meta.py => third_party/python/Jinja2/src/jinja2/meta.py rename : third_party/python/Jinja2/jinja2/nativetypes.py => third_party/python/Jinja2/src/jinja2/nativetypes.py rename : third_party/python/Jinja2/jinja2/nodes.py => third_party/python/Jinja2/src/jinja2/nodes.py rename : third_party/python/Jinja2/jinja2/optimizer.py => third_party/python/Jinja2/src/jinja2/optimizer.py rename : third_party/python/Jinja2/jinja2/parser.py => third_party/python/Jinja2/src/jinja2/parser.py rename : third_party/python/Jinja2/jinja2/runtime.py => third_party/python/Jinja2/src/jinja2/runtime.py rename : third_party/python/Jinja2/jinja2/sandbox.py => third_party/python/Jinja2/src/jinja2/sandbox.py rename : third_party/python/Jinja2/jinja2/tests.py => third_party/python/Jinja2/src/jinja2/tests.py rename : third_party/python/Jinja2/jinja2/utils.py => third_party/python/Jinja2/src/jinja2/utils.py rename : third_party/python/Jinja2/jinja2/visitor.py => third_party/python/Jinja2/src/jinja2/visitor.py rename : third_party/python/importlib_metadata/importlib_metadata-1.5.0.dist-info/LICENSE => third_party/python/importlib_metadata/LICENSE rename : third_party/python/importlib_metadata/importlib_metadata-1.5.0.dist-info/top_level.txt => third_party/python/importlib_metadata/importlib_metadata.egg-info/top_level.txt rename : third_party/python/jsonschema/jsonschema-3.2.0.dist-info/COPYING => third_party/python/jsonschema/COPYING rename : third_party/python/jsonschema/jsonschema-3.2.0.dist-info/entry_points.txt => third_party/python/jsonschema/jsonschema.egg-info/entry_points.txt rename : third_party/python/jsonschema/jsonschema-3.2.0.dist-info/top_level.txt => third_party/python/jsonschema/jsonschema.egg-info/top_level.txt rename : third_party/python/pep487/pep487/__init__.py => third_party/python/pep487/lib/pep487/__init__.py rename : third_party/python/pep487/pep487/version.py => third_party/python/pep487/lib/pep487/version.py extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
lib/pep487 | ||
PKG-INFO | ||
README.rst | ||
setup.cfg | ||
setup.py |
README.rst
=============================================== PEP487: Simpler customisation of class creation =============================================== This is a backport of PEP487's simpler customisation of class creation by Martin Teichmann <https://www.python.org/dev/peps/pep-0487/> for Python versions before 3.6. PEP487 is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Subclass init ============= >>> from pep487 import PEP487Object >>> class FooBase(PEP487Object): ... foos = set() ... ... def __init_subclass__(cls, **kwargs): ... cls.foos.add(cls.__name__) Using `PEP487Object` as base class all subclasses of FooBase will add their name to the common class variable 'foos'. >>> class Foo1(FooBase): ... pass >>> class Foo2(FooBase): ... pass Hence: >>> FooBase.foos {'Foo1', 'Foo2'} Property names and owner ======================== If a class object has a method `__set_name__` upon declaration of an PEP487Object class, it will be called: >>> class NamedProperty: ... def __set_name__(self, owner, name): ... self.context = owner ... self.name = name >>> class Bar(PEP487Object): ... foo = NamedProperty() ... bar = NamedProperty() Consequently: >>> Bar.foo.name is 'foo' and Bar.foo.context is Bar True >>> Bar.bar.name is 'bar' and Bar.bar.context is Bar True Abstract base classes ===================== Since `PEP487Object` has a custom metaclass, it is incompatible to `abc.ABC`. Therefore `pep487` contains patched versions of `ABC` and `ABCMeta`.