1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
3 NAMEBASE= python-lazy-object-proxy
7 SDESC[py310]= Fast and thorough lazy object proxy (3.10)
8 SDESC[v11]= Fast and thorough lazy object proxy (3.11)
9 HOMEPAGE= https://github.com/ionelmc/python-lazy-object-proxy
10 CONTACT= Python_Automaton[python@ironwolf.systems]
13 SITES[main]= PYPI/l/lazy-object-proxy
14 DISTFILE[1]= lazy-object-proxy-1.9.0.tar.gz:main
19 OPTIONS_AVAILABLE= PY310 PY311
20 OPTIONS_STANDARD= none
21 VOPTS[py310]= PY310=ON PY311=OFF
22 VOPTS[v11]= PY310=OFF PY311=ON
24 BUILD_DEPENDS= python-pip:single:python_used
26 DISTNAME= lazy-object-proxy-1.9.0
30 [PY310].BUILDRUN_DEPENDS_ON= python-setuptools-scm:single:py310
31 [PY310].USES_ON= python:py310,sutools
33 [PY311].BUILDRUN_DEPENDS_ON= python-setuptools-scm:single:v11
34 [PY311].USES_ON= python:v11,sutools
36 [FILE:2585:descriptions/desc.single]
41 A fast and thorough lazy object proxy.
43 * Free software: BSD 2-Clause License
45 Note that this is based on `wrapt`_'s ObjectProxy with one big change: it
46 calls a function the first time the proxy object is
47 used, while `wrapt.ObjectProxy` just forwards the method calls to the
50 In other words, you use `lazy-object-proxy` when you only have the object
51 way later and you use `wrapt.ObjectProxy` when you
52 want to override few methods (by subclassing) and forward everything else
57 import lazy_object_proxy
60 from time import sleep
61 print('starting calculation')
62 # just as example for a very slow computation
64 print('finished calculation')
65 # return the result of the calculation
68 obj = lazy_object_proxy.Proxy(expensive_func)
69 # function is called only when object is actually used
70 print(obj) # now expensive_func is called
72 print(obj) # the result without calling the expensive_func
79 pip install lazy-object-proxy
84 https://python-lazy-object-proxy.readthedocs.io/
89 To run all the tests run::
96 This project is based on some code from `wrapt`_ as you can see in the git
99 .. _wrapt: https://github.com/GrahamDumpleton/wrapt
107 * Added support for matrix multiplication operator (``@``).
108 * Should have all the wheels now (including the manylinux ones).
109 * Bumped minimum version requirements for setuptools and setuptools-scm.
110 * Switched the default pure python fallback implementation to the "simple"
111 one (when you from lazy_object_proxy import Proxy
112 and the C extension is not available).
113 Previously the "slots" implementation was used but as it turns out it is
119 * Cleaned up use of cPickle. Contributed by Sandro Tosi in `#62
120 <https://github.com/ionelmc/python-lazy-object-proxy/pull/62>`_.
121 * Cleaned up more dead Python 2 code.
122 * Added Python 3.11 wheels.
123 * Dropped support for Python 3.6.
128 * Removed most of the Python 2 support code and fixed python_requires to
129 require at least Python 3.6.
131 Note that 1.7.0 has been yanked because it could not install on Python
133 Installing lazy-object-proxy on Python 2.7 should automatically fall back
134 to the 1.6.0 release now.
140 659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae 42830 lazy-object-proxy-1.9.0.tar.gz