Initial commit
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
|
||||
Authors
|
||||
=======
|
||||
|
||||
* Ionel Cristian Mărieș - https://blog.ionelmc.ro
|
||||
* Alvin Chow - https://github.com/alvinchow86
|
||||
* Astrum Kuo - https://github.com/xowenx
|
||||
* Erik M. Bray - http://iguananaut.net
|
||||
* Ran Benita - https://github.com/bluetech
|
||||
* "hugovk" - https://github.com/hugovk
|
||||
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,21 @@
|
||||
BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2014-2019, Ionel Cristian Mărieș
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,152 @@
|
||||
Metadata-Version: 2.1
|
||||
Name: lazy-object-proxy
|
||||
Version: 1.4.1
|
||||
Summary: A fast and thorough lazy object proxy.
|
||||
Home-page: https://github.com/ionelmc/python-lazy-object-proxy
|
||||
Author: Ionel Cristian Mărieș
|
||||
Author-email: [email protected]
|
||||
License: BSD 2-Clause License
|
||||
Project-URL: Documentation, https://python-lazy-object-proxy.readthedocs.io/
|
||||
Project-URL: Changelog, https://python-lazy-object-proxy.readthedocs.io/en/latest/changelog.html
|
||||
Project-URL: Issue Tracker, https://github.com/ionelmc/python-lazy-object-proxy/issues
|
||||
Platform: UNKNOWN
|
||||
Classifier: Development Status :: 5 - Production/Stable
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved :: BSD License
|
||||
Classifier: Operating System :: Unix
|
||||
Classifier: Operating System :: POSIX
|
||||
Classifier: Operating System :: Microsoft :: Windows
|
||||
Classifier: Programming Language :: Python
|
||||
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: Programming Language :: Python :: Implementation :: CPython
|
||||
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||
Classifier: Topic :: Utilities
|
||||
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
|
||||
|
||||
========
|
||||
Overview
|
||||
========
|
||||
|
||||
|
||||
|
||||
A fast and thorough lazy object proxy.
|
||||
|
||||
* Free software: BSD license
|
||||
|
||||
Note that this is based on `wrapt`_'s ObjectProxy with one big change: it calls a function the first time the proxy object is
|
||||
used, while `wrapt.ObjectProxy` just forwards the method calls to the target object.
|
||||
|
||||
In other words, you use `lazy-object-proxy` when you only have the object way later and you use `wrapt.ObjectProxy` when you
|
||||
want to override few methods (by subclassing) and forward everything else to the target object.
|
||||
|
||||
Example::
|
||||
|
||||
import lazy_object_proxy
|
||||
|
||||
def expensive_func():
|
||||
from time import sleep
|
||||
print('starting calculation')
|
||||
# just as example for a very slow computation
|
||||
sleep(2)
|
||||
print('finished calculation')
|
||||
# return the result of the calculation
|
||||
return 10
|
||||
|
||||
obj = lazy_object_proxy.Proxy(expensive_func)
|
||||
# function is called only when object is actually used
|
||||
print(obj) # now expensive_func is called
|
||||
|
||||
print(obj) # the result without calling the expensive_func
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
::
|
||||
|
||||
pip install lazy-object-proxy
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
https://python-lazy-object-proxy.readthedocs.io/
|
||||
|
||||
Development
|
||||
===========
|
||||
|
||||
To run the all tests run::
|
||||
|
||||
tox
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
|
||||
This project is based on some code from `wrapt`_ as you can see in the git history.
|
||||
|
||||
.. _wrapt: https://github.com/GrahamDumpleton/wrapt
|
||||
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
1.4.1 (2019-05-10)
|
||||
------------------
|
||||
|
||||
* Fixed wheels being built with ``-coverage`` cflags. No more issues about bogus ``cext.gcda`` files.
|
||||
* Removed useless C file from wheels.
|
||||
* Changed ``setup.py`` to use setuptools-scm.
|
||||
|
||||
1.4.0 (2019-05-05)
|
||||
------------------
|
||||
|
||||
* Fixed ``__mod__`` for the slots backend. Contributed by Ran Benita in
|
||||
`#28 <https://github.com/ionelmc/python-lazy-object-proxy/pull/28>`_.
|
||||
* Dropped support for Python 2.6 and 3.3. Contributed by "hugovk" in
|
||||
`#24 <https://github.com/ionelmc/python-lazy-object-proxy/pull/24>`_.
|
||||
|
||||
1.3.1 (2017-05-05)
|
||||
------------------
|
||||
|
||||
* Fix broken release (``sdist`` had a broken ``MANIFEST.in``).
|
||||
|
||||
1.3.0 (2017-05-02)
|
||||
------------------
|
||||
|
||||
* Speed up arithmetic operations involving ``cext.Proxy`` subclasses.
|
||||
|
||||
1.2.2 (2016-04-14)
|
||||
------------------
|
||||
|
||||
* Added `manylinux <https://www.python.org/dev/peps/pep-0513/>`_ wheels.
|
||||
* Minor cleanup in readme.
|
||||
|
||||
1.2.1 (2015-08-18)
|
||||
------------------
|
||||
|
||||
* Fix a memory leak (the wrapped object would get bogus references). Contributed by Astrum Kuo in
|
||||
`#10 <https://github.com/ionelmc/python-lazy-object-proxy/pull/10>`_.
|
||||
|
||||
1.2.0 (2015-07-06)
|
||||
------------------
|
||||
|
||||
* Don't instantiate the object when __repr__ is called. This aids with debugging (allows one to see exactly in
|
||||
what state the proxy is).
|
||||
|
||||
1.1.0 (2015-07-05)
|
||||
------------------
|
||||
|
||||
* Added support for pickling. The pickled value is going to be the wrapped object *without* any Proxy container.
|
||||
* Fixed a memory management issue in the C extension (reference cycles weren't garbage collected due to improper
|
||||
handling in the C extension). Contributed by Alvin Chow in
|
||||
`#8 <https://github.com/ionelmc/python-lazy-object-proxy/pull/8>`_.
|
||||
|
||||
1.0.2 (2015-04-11)
|
||||
-----------------------------------------
|
||||
|
||||
* First release on PyPI.
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
lazy_object_proxy-1.4.1.dist-info/AUTHORS.rst,sha256=8CeCjODba0S8UczLyZBPhpO_J6NMZ9Hz_fE1A1uNe9Y,278
|
||||
lazy_object_proxy-1.4.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
lazy_object_proxy-1.4.1.dist-info/LICENSE,sha256=W-1KNkH2bsSNuN7SNqKV8z2H0CkxXzYXZVhUzw1wxUA,1329
|
||||
lazy_object_proxy-1.4.1.dist-info/METADATA,sha256=McTpwZIfT7BEPP9wYm7w9wtNot9nb2i9eBpDgY2Fp-w,4646
|
||||
lazy_object_proxy-1.4.1.dist-info/RECORD,,
|
||||
lazy_object_proxy-1.4.1.dist-info/WHEEL,sha256=5QR_uDzcf87697iHj0Q248i2KFMaJPp7OGeq7Im-XU8,111
|
||||
lazy_object_proxy-1.4.1.dist-info/top_level.txt,sha256=UNH-FQB-j_8bYqPz3gD90kHvaC42TQqY0thHSnbaa0k,18
|
||||
lazy_object_proxy/__init__.py,sha256=m-K2IQ05U03VBD2Ehiz2phyf_ETDWJaWMaGu78gYS44,410
|
||||
lazy_object_proxy/__pycache__/__init__.cpython-37.pyc,,
|
||||
lazy_object_proxy/__pycache__/_version.cpython-37.pyc,,
|
||||
lazy_object_proxy/__pycache__/compat.cpython-37.pyc,,
|
||||
lazy_object_proxy/__pycache__/simple.cpython-37.pyc,,
|
||||
lazy_object_proxy/__pycache__/slots.cpython-37.pyc,,
|
||||
lazy_object_proxy/__pycache__/utils.cpython-37.pyc,,
|
||||
lazy_object_proxy/_version.py,sha256=tsKQsBFygMAGS4y7Oe8KQDI6cilFB3KhdJpdQlyl6zA,116
|
||||
lazy_object_proxy/cext.cpython-37m-darwin.so,sha256=edarYqVTHQEFvjesnsv3LZmzw2rIf8nBbWVwMb7Avr0,35464
|
||||
lazy_object_proxy/compat.py,sha256=DY3HbKwbrbeKY6tkXRNRLJ1go6HJb8HUwWqyw3T5g_g,196
|
||||
lazy_object_proxy/simple.py,sha256=guacy8_QbJeBs7vXpPPVoDVkDNXOZ86xyS1dtAeKvOs,8216
|
||||
lazy_object_proxy/slots.py,sha256=9DilWUINScpZN26NwmRtscTtaqaEwtCfIoriLq5Nz24,11359
|
||||
lazy_object_proxy/utils.py,sha256=x4XTrtlp_mDTWO_EOq_ILIOv2Qol8RLMnRm5M8l3OfU,291
|
||||
@@ -0,0 +1,5 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.33.3)
|
||||
Root-Is-Purelib: false
|
||||
Tag: cp37-cp37m-macosx_10_13_x86_64
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
lazy_object_proxy
|
||||
Reference in New Issue
Block a user