Hello community,
here is the log from the commit of package python-lazy-object-proxy for
openSUSE:Factory checked in at 2018-08-03 12:29:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-lazy-object-proxy (Old)
and /work/SRC/openSUSE:Factory/.python-lazy-object-proxy.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-lazy-object-proxy"
Fri Aug 3 12:29:18 2018 rev:3 rq:626578 version:1.3.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-lazy-object-proxy/python-lazy-object-proxy.changes
2017-05-06 18:31:29.359667330 +0200
+++
/work/SRC/openSUSE:Factory/.python-lazy-object-proxy.new/python-lazy-object-proxy.changes
2018-08-03 12:29:25.554871880 +0200
@@ -1,0 +2,8 @@
+Mon Jul 30 15:55:47 UTC 2018 - [email protected]
+
+- Update to v1.3.1
+ + Fix broken release (sdist had a broken MANIFEST.in).
+- Update to v1.3.0
+ + Speed up arithmetic operations involving cext.Proxy subclasses.
+
+-------------------------------------------------------------------
Old:
----
lazy-object-proxy-1.2.2.tar.gz
New:
----
lazy-object-proxy-1.3.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-lazy-object-proxy.spec ++++++
--- /var/tmp/diff_new_pack.R765Bi/_old 2018-08-03 12:29:26.258872914 +0200
+++ /var/tmp/diff_new_pack.R765Bi/_new 2018-08-03 12:29:26.258872914 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-lazy-object-proxy
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-lazy-object-proxy
-Version: 1.2.2
+Version: 1.3.1
Release: 0
Summary: Rebuild a new abstract syntax tree from Python's ast
License: BSD-2-Clause
@@ -58,7 +58,8 @@
%files %{python_files}
%defattr(-,root,root,-)
-%doc AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst LICENSE README.rst docs
+%doc AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst README.rst docs
+%license LICENSE
%{python_sitearch}/*
%changelog
++++++ lazy-object-proxy-1.2.2.tar.gz -> lazy-object-proxy-1.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/.bumpversion.cfg
new/lazy-object-proxy-1.3.1/.bumpversion.cfg
--- old/lazy-object-proxy-1.2.2/.bumpversion.cfg 2016-04-14
10:56:01.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/.bumpversion.cfg 2017-05-05
14:11:12.000000000 +0200
@@ -1,10 +1,12 @@
[bumpversion]
-current_version = 1.2.2
+current_version = 1.3.1
commit = True
tag = True
[bumpversion:file:setup.py]
+[bumpversion:file:README.rst]
+
[bumpversion:file:docs/conf.py]
[bumpversion:file:src/lazy_object_proxy/__init__.py]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/.cookiecutterrc
new/lazy-object-proxy-1.3.1/.cookiecutterrc
--- old/lazy-object-proxy-1.2.2/.cookiecutterrc 2016-04-14 03:06:12.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/.cookiecutterrc 2017-05-03 15:05:21.000000000
+0200
@@ -9,7 +9,7 @@
codeclimate: 'yes'
codecov: 'yes'
command_line_interface: 'no'
- command_line_interface_bin_name: lazy-object-proxy
+ command_line_interface_bin_name: '-'
coveralls: 'yes'
distribution_name: lazy-object-proxy
email: [email protected]
@@ -31,4 +31,4 @@
travis: 'yes'
version: 1.2.2
website: https://blog.ionelmc.ro
- year: 2014-2016
+ year: 2014-2017
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/.coveragerc
new/lazy-object-proxy-1.3.1/.coveragerc
--- old/lazy-object-proxy-1.2.2/.coveragerc 2016-04-14 03:02:32.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/.coveragerc 2017-05-03 15:05:20.000000000
+0200
@@ -2,8 +2,10 @@
source = src
[run]
-branch = True
-source = src
+branch = true
+source =
+ src
+ tests
parallel = true
[report]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/.travis.yml
new/lazy-object-proxy-1.3.1/.travis.yml
--- old/lazy-object-proxy-1.2.2/.travis.yml 2016-04-14 10:55:41.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/.travis.yml 2017-05-03 15:05:46.000000000
+0200
@@ -1,6 +1,6 @@
language: python
-python: '3.5'
sudo: false
+cache: pip
env:
global:
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
@@ -8,39 +8,92 @@
matrix:
- TOXENV=check
- TOXENV=docs
-
- - TOXENV=2.6-cover,extension-coveralls,coveralls,codecov
- - TOXENV=2.6-nocov
- - TOXENV=2.7-cover,extension-coveralls,coveralls,codecov
- - TOXENV=2.7-nocov
- - TOXENV=3.3-cover,extension-coveralls,coveralls,codecov
- - TOXENV=3.3-nocov
- - TOXENV=3.4-cover,extension-coveralls,coveralls,codecov
- - TOXENV=3.4-nocov
- - TOXENV=3.5-cover,extension-coveralls,coveralls,codecov
- - TOXENV=3.5-nocov
- - TOXENV=pypy-cover,extension-coveralls,coveralls,codecov
- - TOXENV=pypy-nocov
+matrix:
+ include:
+ - python: '2.6'
+ env:
+ - TOXENV=2.6-cover,report,extension-coveralls,coveralls,codecov
+ - python: '2.6'
+ env:
+ - TOXENV=2.6-nocov
+ - python: '2.7'
+ env:
+ - TOXENV=2.7-cover,report,extension-coveralls,coveralls,codecov
+ - python: '2.7'
+ env:
+ - TOXENV=2.7-nocov
+ - python: '3.3'
+ env:
+ - TOXENV=3.3-cover,report,extension-coveralls,coveralls,codecov
+ - python: '3.3'
+ env:
+ - TOXENV=3.3-nocov
+ - python: '3.4'
+ env:
+ - TOXENV=3.4-cover,report,extension-coveralls,coveralls,codecov
+ - python: '3.4'
+ env:
+ - TOXENV=3.4-nocov
+ - python: '3.5'
+ env:
+ - TOXENV=3.5-cover,report,extension-coveralls,coveralls,codecov
+ - python: '3.5'
+ env:
+ - TOXENV=3.5-nocov
+ - python: '3.6'
+ env:
+ - TOXENV=3.6-cover,report,extension-coveralls,coveralls,codecov
+ - python: '3.6'
+ env:
+ - TOXENV=3.6-nocov
+ - python: 'pypy'
+ env:
+ - TOXENV=pypy-cover,report,extension-coveralls,coveralls,codecov
+ - python: 'pypy'
+ env:
+ - TOXENV=pypy-nocov
+ - python: 'pypy3'
+ env:
+ - TOXENV=pypy3-cover,report,extension-coveralls,coveralls,codecov
+ - python: 'pypy3'
+ env:
+ - TOXENV=pypy3-nocov
before_install:
- python --version
- uname -a
- lsb_release -a
install:
- - pip install tox
+ - pip install -U tox virtualenv
- virtualenv --version
- easy_install --version
- pip --version
- tox --version
+ - |
+ set -ex
+ if [[ $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then
+ (cd $HOME
+ wget
https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.7.1-linux_x86_64-portable.tar.bz2
+ tar xf pypy-5.7.1-linux_x86_64-portable.tar.bz2
+ pypy-5.7.1-linux_x86_64-portable/bin/pypy -m ensurepip
+ pypy-5.7.1-linux_x86_64-portable/bin/pypy -m pip install -U
virtualenv)
+ export PATH=$HOME/pypy-5.7.1-linux_x86_64-portable/bin/:$PATH
+ export TOXPYTHON=$HOME/pypy-5.7.1-linux_x86_64-portable/bin/pypy
+ fi
+ if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then
+ (cd $HOME
+ wget
https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2
+ tar xf pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2
+ pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3 -m ensurepip
+ pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3 -m pip install -U
virtualenv)
+ export PATH=$HOME/pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/:$PATH
+ export
TOXPYTHON=$HOME/pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3
+ fi
+ set +x
script:
- tox -v
after_failure:
- more .tox/log/* | cat
- more .tox/*/log/* | cat
-before_cache:
- - rm -rf $HOME/.cache/pip/log
-cache:
- directories:
- - $HOME/.cache/pip
notifications:
email:
on_success: never
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/AUTHORS.rst
new/lazy-object-proxy-1.3.1/AUTHORS.rst
--- old/lazy-object-proxy-1.2.2/AUTHORS.rst 2016-04-14 03:02:32.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/AUTHORS.rst 2017-05-03 22:04:12.000000000
+0200
@@ -3,3 +3,6 @@
=======
* Ionel Cristian Mărieș - https://blog.ionelmc.ro
+* Alvin Chow - https://github.com/alvinchow86
+* Astrum Kuo - https://github.com/xowenx
+* Erik M. Bray - https://iguananaut.net
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/CHANGELOG.rst
new/lazy-object-proxy-1.3.1/CHANGELOG.rst
--- old/lazy-object-proxy-1.2.2/CHANGELOG.rst 2016-04-14 03:05:58.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/CHANGELOG.rst 2017-05-05 14:10:51.000000000
+0200
@@ -2,6 +2,16 @@
Changelog
=========
+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)
------------------
@@ -25,7 +35,8 @@
* 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).
+ 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)
-----------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/CONTRIBUTING.rst
new/lazy-object-proxy-1.3.1/CONTRIBUTING.rst
--- old/lazy-object-proxy-1.2.2/CONTRIBUTING.rst 2016-04-14
03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/CONTRIBUTING.rst 2017-05-03
15:05:20.000000000 +0200
@@ -49,7 +49,7 @@
Now you can make your changes locally.
-4. When you're done making changes, run all the checks, doc builder and spell
checker with `tox <http://tox.readthedocs.org/en/latest/install.html>`_ one
command::
+4. When you're done making changes, run all the checks, doc builder and spell
checker with `tox <http://tox.readthedocs.io/en/latest/install.html>`_ one
command::
tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/LICENSE
new/lazy-object-proxy-1.3.1/LICENSE
--- old/lazy-object-proxy-1.2.2/LICENSE 2016-04-14 03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/LICENSE 2017-05-03 15:05:20.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2014-2016, Ionel Cristian Mărieș
+Copyright (c) 2014-2017, Ionel Cristian Mărieș
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/MANIFEST.in
new/lazy-object-proxy-1.3.1/MANIFEST.in
--- old/lazy-object-proxy-1.2.2/MANIFEST.in 2016-04-14 03:06:12.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/MANIFEST.in 2017-05-04 08:49:12.000000000
+0200
@@ -1,5 +1,4 @@
graft docs
-graft examples
graft src
graft ci
graft tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/PKG-INFO
new/lazy-object-proxy-1.3.1/PKG-INFO
--- old/lazy-object-proxy-1.2.2/PKG-INFO 2016-04-14 12:25:03.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/PKG-INFO 2017-05-05 14:11:33.000000000
+0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: lazy-object-proxy
-Version: 1.2.2
+Version: 1.3.1
Summary: A fast and thorough lazy object proxy.
Home-page: https://github.com/ionelmc/python-lazy-object-proxy
Author: Ionel Cristian Mărieș
@@ -16,6 +16,22 @@
* 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::
+
+ def expensive_func():
+ # create expensive object
+ return stuff
+
+ obj = lazy_object_proxy.Proxy(expensive_func)
+ # function is called only when object is actually used
+ print(obj.foobar) # now expensive_func is called
+
Installation
============
@@ -26,7 +42,7 @@
Documentation
=============
- https://python-lazy-object-proxy.readthedocs.org/
+ https://python-lazy-object-proxy.readthedocs.io/
Development
===========
@@ -38,13 +54,24 @@
Acknowledgements
================
- This project is based on some code from `wrapt
<https://github.com/GrahamDumpleton/wrapt>`_
- as you can see in the git history.
+ 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.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)
------------------
@@ -68,7 +95,8 @@
* 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).
+ 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)
-----------------------------------------
@@ -89,6 +117,7 @@
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 :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/README.rst
new/lazy-object-proxy-1.3.1/README.rst
--- old/lazy-object-proxy-1.2.2/README.rst 2016-04-14 03:06:12.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/README.rst 2017-05-05 14:11:12.000000000
+0200
@@ -14,7 +14,8 @@
| |coveralls| |codecov|
| |landscape| |scrutinizer| |codacy| |codeclimate|
* - package
- - |version| |downloads| |wheel| |supported-versions|
|supported-implementations|
+ - | |version| |wheel| |supported-versions| |supported-implementations|
+ | |commits-since|
.. |docs| image::
https://readthedocs.org/projects/python-lazy-object-proxy/badge/?style=flat
:target: https://readthedocs.org/projects/python-lazy-object-proxy
@@ -44,7 +45,7 @@
:target:
https://landscape.io/github/ionelmc/python-lazy-object-proxy/master
:alt: Code Quality Status
-.. |codacy| image::
https://img.shields.io/codacy/REPLACE_WITH_PROJECT_ID.svg?style=flat
+.. |codacy| image:: https://img.shields.io/codacy/REPLACE_WITH_PROJECT_ID.svg
:target: https://www.codacy.com/app/ionelmc/python-lazy-object-proxy
:alt: Codacy Code Quality Status
@@ -52,27 +53,27 @@
:target: https://codeclimate.com/github/ionelmc/python-lazy-object-proxy
:alt: CodeClimate Quality Status
-.. |version| image::
https://img.shields.io/pypi/v/lazy-object-proxy.svg?style=flat
+.. |version| image:: https://img.shields.io/pypi/v/lazy-object-proxy.svg
:alt: PyPI Package latest release
:target: https://pypi.python.org/pypi/lazy-object-proxy
-.. |downloads| image::
https://img.shields.io/pypi/dm/lazy-object-proxy.svg?style=flat
- :alt: PyPI Package monthly downloads
- :target: https://pypi.python.org/pypi/lazy-object-proxy
+.. |commits-since| image::
https://img.shields.io/github/commits-since/ionelmc/python-lazy-object-proxy/v1.3.1.svg
+ :alt: Commits since latest release
+ :target:
https://github.com/ionelmc/python-lazy-object-proxy/compare/v1.3.1...master
-.. |wheel| image::
https://img.shields.io/pypi/wheel/lazy-object-proxy.svg?style=flat
+.. |wheel| image:: https://img.shields.io/pypi/wheel/lazy-object-proxy.svg
:alt: PyPI Wheel
:target: https://pypi.python.org/pypi/lazy-object-proxy
-.. |supported-versions| image::
https://img.shields.io/pypi/pyversions/lazy-object-proxy.svg?style=flat
+.. |supported-versions| image::
https://img.shields.io/pypi/pyversions/lazy-object-proxy.svg
:alt: Supported versions
:target: https://pypi.python.org/pypi/lazy-object-proxy
-.. |supported-implementations| image::
https://img.shields.io/pypi/implementation/lazy-object-proxy.svg?style=flat
+.. |supported-implementations| image::
https://img.shields.io/pypi/implementation/lazy-object-proxy.svg
:alt: Supported implementations
:target: https://pypi.python.org/pypi/lazy-object-proxy
-.. |scrutinizer| image::
https://img.shields.io/scrutinizer/g/ionelmc/python-lazy-object-proxy/master.svg?style=flat
+.. |scrutinizer| image::
https://img.shields.io/scrutinizer/g/ionelmc/python-lazy-object-proxy/master.svg
:alt: Scrutinizer Status
:target: https://scrutinizer-ci.com/g/ionelmc/python-lazy-object-proxy/
@@ -83,6 +84,22 @@
* 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::
+
+ def expensive_func():
+ # create expensive object
+ return stuff
+
+ obj = lazy_object_proxy.Proxy(expensive_func)
+ # function is called only when object is actually used
+ print(obj.foobar) # now expensive_func is called
+
Installation
============
@@ -93,7 +110,7 @@
Documentation
=============
-https://python-lazy-object-proxy.readthedocs.org/
+https://python-lazy-object-proxy.readthedocs.io/
Development
===========
@@ -105,5 +122,6 @@
Acknowledgements
================
-This project is based on some code from `wrapt
<https://github.com/GrahamDumpleton/wrapt>`_
-as you can see in the git history.
+This project is based on some code from `wrapt`_ as you can see in the git
history.
+
+.. _wrapt: https://github.com/GrahamDumpleton/wrapt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/appveyor.yml
new/lazy-object-proxy-1.3.1/appveyor.yml
--- old/lazy-object-proxy-1.2.2/appveyor.yml 2016-04-14 10:55:41.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/appveyor.yml 2017-05-03 22:04:12.000000000
+0200
@@ -7,17 +7,40 @@
WITH_COMPILER: 'cmd /E:ON /V:ON /C .\ci\appveyor-with-compiler.cmd'
matrix:
- TOXENV: check
+ TOXPYTHON: C:\Python27\python.exe
PYTHON_HOME: C:\Python27
PYTHON_VERSION: '2.7'
PYTHON_ARCH: '32'
+ - TOXENV: '2.6-cover,report,codecov'
+ TOXPYTHON: C:\Python26\python.exe
+ PYTHON_HOME: C:\Python26
+ PYTHON_VERSION: '2.6'
+ PYTHON_ARCH: '32'
+ - TOXENV: '2.6-cover,report,codecov'
+ TOXPYTHON: C:\Python26-x64\python.exe
+ WINDOWS_SDK_VERSION: v7.0
+ PYTHON_HOME: C:\Python26-x64
+ PYTHON_VERSION: '2.6'
+ PYTHON_ARCH: '64'
+
+ - TOXENV: '2.6-nocov'
+ TOXPYTHON: C:\Python26\python.exe
+ PYTHON_HOME: C:\Python26
+ PYTHON_VERSION: '2.6'
+ PYTHON_ARCH: '32'
+ - TOXENV: '2.6-nocov'
+ TOXPYTHON: C:\Python26-x64\python.exe
+ WINDOWS_SDK_VERSION: v7.0
+ PYTHON_HOME: C:\Python26-x64
+ PYTHON_VERSION: '2.6'
+ PYTHON_ARCH: '64'
- - TOXENV: '2.7-cover,codecov'
+ - TOXENV: '2.7-cover,report,codecov'
TOXPYTHON: C:\Python27\python.exe
PYTHON_HOME: C:\Python27
PYTHON_VERSION: '2.7'
PYTHON_ARCH: '32'
-
- - TOXENV: '2.7-cover,codecov'
+ - TOXENV: '2.7-cover,report,codecov'
TOXPYTHON: C:\Python27-x64\python.exe
WINDOWS_SDK_VERSION: v7.0
PYTHON_HOME: C:\Python27-x64
@@ -29,7 +52,6 @@
PYTHON_HOME: C:\Python27
PYTHON_VERSION: '2.7'
PYTHON_ARCH: '32'
-
- TOXENV: '2.7-nocov'
TOXPYTHON: C:\Python27-x64\python.exe
WINDOWS_SDK_VERSION: v7.0
@@ -37,13 +59,12 @@
PYTHON_VERSION: '2.7'
PYTHON_ARCH: '64'
- - TOXENV: '3.3-cover,codecov'
+ - TOXENV: '3.3-cover,report,codecov'
TOXPYTHON: C:\Python33\python.exe
PYTHON_HOME: C:\Python33
PYTHON_VERSION: '3.3'
PYTHON_ARCH: '32'
-
- - TOXENV: '3.3-cover,codecov'
+ - TOXENV: '3.3-cover,report,codecov'
TOXPYTHON: C:\Python33-x64\python.exe
WINDOWS_SDK_VERSION: v7.1
PYTHON_HOME: C:\Python33-x64
@@ -55,7 +76,6 @@
PYTHON_HOME: C:\Python33
PYTHON_VERSION: '3.3'
PYTHON_ARCH: '32'
-
- TOXENV: '3.3-nocov'
TOXPYTHON: C:\Python33-x64\python.exe
WINDOWS_SDK_VERSION: v7.1
@@ -63,13 +83,12 @@
PYTHON_VERSION: '3.3'
PYTHON_ARCH: '64'
- - TOXENV: '3.4-cover,codecov'
+ - TOXENV: '3.4-cover,report,codecov'
TOXPYTHON: C:\Python34\python.exe
PYTHON_HOME: C:\Python34
PYTHON_VERSION: '3.4'
PYTHON_ARCH: '32'
-
- - TOXENV: '3.4-cover,codecov'
+ - TOXENV: '3.4-cover,report,codecov'
TOXPYTHON: C:\Python34-x64\python.exe
WINDOWS_SDK_VERSION: v7.1
PYTHON_HOME: C:\Python34-x64
@@ -81,7 +100,6 @@
PYTHON_HOME: C:\Python34
PYTHON_VERSION: '3.4'
PYTHON_ARCH: '32'
-
- TOXENV: '3.4-nocov'
TOXPYTHON: C:\Python34-x64\python.exe
WINDOWS_SDK_VERSION: v7.1
@@ -89,13 +107,12 @@
PYTHON_VERSION: '3.4'
PYTHON_ARCH: '64'
- - TOXENV: '3.5-cover,codecov'
+ - TOXENV: '3.5-cover,report,codecov'
TOXPYTHON: C:\Python35\python.exe
PYTHON_HOME: C:\Python35
PYTHON_VERSION: '3.5'
PYTHON_ARCH: '32'
-
- - TOXENV: '3.5-cover,codecov'
+ - TOXENV: '3.5-cover,report,codecov'
TOXPYTHON: C:\Python35-x64\python.exe
PYTHON_HOME: C:\Python35-x64
PYTHON_VERSION: '3.5'
@@ -106,13 +123,36 @@
PYTHON_HOME: C:\Python35
PYTHON_VERSION: '3.5'
PYTHON_ARCH: '32'
-
- TOXENV: '3.5-nocov'
TOXPYTHON: C:\Python35-x64\python.exe
PYTHON_HOME: C:\Python35-x64
PYTHON_VERSION: '3.5'
PYTHON_ARCH: '64'
+ - TOXENV: '3.6-cover,report,codecov'
+ TOXPYTHON: C:\Python36\python.exe
+ PYTHON_HOME: C:\Python36
+ PYTHON_VERSION: '3.6'
+ PYTHON_ARCH: '32'
+ - TOXENV: '3.6-cover,report,codecov'
+ TOXPYTHON: C:\Python36-x64\python.exe
+ WINDOWS_SDK_VERSION: v7.1
+ PYTHON_HOME: C:\Python36-x64
+ PYTHON_VERSION: '3.6'
+ PYTHON_ARCH: '64'
+
+ - TOXENV: '3.6-nocov'
+ TOXPYTHON: C:\Python36\python.exe
+ PYTHON_HOME: C:\Python36
+ PYTHON_VERSION: '3.6'
+ PYTHON_ARCH: '32'
+ - TOXENV: '3.6-nocov'
+ TOXPYTHON: C:\Python36-x64\python.exe
+ WINDOWS_SDK_VERSION: v7.1
+ PYTHON_HOME: C:\Python36-x64
+ PYTHON_VERSION: '3.6'
+ PYTHON_ARCH: '64'
+
init:
- ps: echo $env:TOXENV
- ps: ls C:\Python*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/appveyor-bootstrap.py
new/lazy-object-proxy-1.3.1/ci/appveyor-bootstrap.py
--- old/lazy-object-proxy-1.2.2/ci/appveyor-bootstrap.py 2016-04-14
03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/appveyor-bootstrap.py 2017-05-03
15:05:42.000000000 +0200
@@ -20,15 +20,17 @@
URLS = {
("2.6", "64"): BASE_URL + "2.6.6/python-2.6.6.amd64.msi",
("2.6", "32"): BASE_URL + "2.6.6/python-2.6.6.msi",
- ("2.7", "64"): BASE_URL + "2.7.10/python-2.7.10.amd64.msi",
- ("2.7", "32"): BASE_URL + "2.7.10/python-2.7.10.msi",
+ ("2.7", "64"): BASE_URL + "2.7.10/python-2.7.13.amd64.msi",
+ ("2.7", "32"): BASE_URL + "2.7.10/python-2.7.13.msi",
# NOTE: no .msi installer for 3.3.6
- ("3.3", "64"): BASE_URL + "3.3.3/python-3.3.3.amd64.msi",
- ("3.3", "32"): BASE_URL + "3.3.3/python-3.3.3.msi",
- ("3.4", "64"): BASE_URL + "3.4.3/python-3.4.3.amd64.msi",
- ("3.4", "32"): BASE_URL + "3.4.3/python-3.4.3.msi",
- ("3.5", "64"): BASE_URL + "3.5.0/python-3.5.0-amd64.exe",
- ("3.5", "32"): BASE_URL + "3.5.0/python-3.5.0.exe",
+ ("3.3", "64"): BASE_URL + "3.3.3/python-3.3.5.amd64.msi",
+ ("3.3", "32"): BASE_URL + "3.3.3/python-3.3.5.msi",
+ ("3.4", "64"): BASE_URL + "3.4.3/python-3.4.6.amd64.msi",
+ ("3.4", "32"): BASE_URL + "3.4.3/python-3.4.6.msi",
+ ("3.5", "64"): BASE_URL + "3.5.0/python-3.5.3-amd64.exe",
+ ("3.5", "32"): BASE_URL + "3.5.0/python-3.5.3.exe",
+ ("3.6", "64"): BASE_URL + "3.6.0/python-3.6.0-amd64.exe",
+ ("3.6", "32"): BASE_URL + "3.6.0/python-3.6.0.exe",
}
INSTALL_CMD = {
# Commands are allowed to fail only if they are not the last command. Eg:
uninstall (/x) allowed to fail.
@@ -41,6 +43,7 @@
"3.4": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"],
["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}",
"TARGETDIR={home}"]],
"3.5": [["{path}", "/quiet", "TargetDir={home}"]],
+ "3.6": [["{path}", "/quiet", "TargetDir={home}"]],
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/appveyor-download.py
new/lazy-object-proxy-1.3.1/ci/appveyor-download.py
--- old/lazy-object-proxy-1.2.2/ci/appveyor-download.py 2016-04-14
03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/appveyor-download.py 2017-05-03
15:05:20.000000000 +0200
@@ -10,9 +10,10 @@
import argparse
import os
-import requests
import zipfile
+import requests
+
def make_auth_headers():
"""Make the authentication headers needed to use the Appveyor API."""
@@ -64,7 +65,7 @@
def ensure_dirs(filename):
"""Make sure the directories exist for `filename`."""
- dirname, _ = os.path.split(filename)
+ dirname = os.path.dirname(filename)
if dirname and not os.path.exists(dirname):
os.makedirs(dirname)
@@ -90,6 +91,7 @@
ensure_dirs(name)
z.extract(name)
+
parser = argparse.ArgumentParser(description='Download artifacts from
AppVeyor.')
parser.add_argument('--id',
metavar='PROJECT_ID',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lazy-object-proxy-1.2.2/ci/appveyor-with-compiler.cmd
new/lazy-object-proxy-1.3.1/ci/appveyor-with-compiler.cmd
--- old/lazy-object-proxy-1.2.2/ci/appveyor-with-compiler.cmd 2016-04-14
03:02:32.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/appveyor-with-compiler.cmd 2017-05-05
14:09:51.000000000 +0200
@@ -23,17 +23,10 @@
ECHO SDK: %WINDOWS_SDK_VERSION% ARCH: %PYTHON_ARCH%
-IF "%PYTHON_VERSION%"=="3.5" (
- IF EXIST %WIN_WDK% (
- REM See:
https://connect.microsoft.com/VisualStudio/feedback/details/1610302/
- REN %WIN_WDK% 0wdf
- )
- GOTO main
-)
+IF "%PYTHON_VERSION%"=="3.5" GOTO main
+IF "%PYTHON_VERSION%"=="3.6" GOTO main
+IF "%PYTHON_ARCH%"=="32" GOTO main
-IF "%PYTHON_ARCH%"=="32" (
- GOTO main
-)
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
@@ -41,6 +34,10 @@
CALL "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
:main
+IF EXIST %WIN_WDK% (
+ REM See:
https://connect.microsoft.com/VisualStudio/feedback/details/1610302/
+ REN %WIN_WDK% 0wdf
+)
ECHO Executing: %COMMAND_TO_RUN%
CALL %COMMAND_TO_RUN% || EXIT 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/bootstrap.py
new/lazy-object-proxy-1.3.1/ci/bootstrap.py
--- old/lazy-object-proxy-1.2.2/ci/bootstrap.py 2016-04-14 03:06:12.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/ci/bootstrap.py 2017-05-03 15:05:20.000000000
+0200
@@ -4,10 +4,10 @@
import os
import sys
+from os.path import abspath
+from os.path import dirname
from os.path import exists
from os.path import join
-from os.path import dirname
-from os.path import abspath
if __name__ == "__main__":
@@ -20,21 +20,22 @@
bin_path = join(env_path, "bin")
if not exists(env_path):
import subprocess
+
print("Making bootstrap env in: {0} ...".format(env_path))
try:
subprocess.check_call(["virtualenv", env_path])
- except Exception:
+ except subprocess.CalledProcessError:
subprocess.check_call([sys.executable, "-m", "virtualenv",
env_path])
- print("Installing `jinja2` and `matrix` into bootstrap environment
...")
+ print("Installing `jinja2` and `matrix` into bootstrap environment...")
subprocess.check_call([join(bin_path, "pip"), "install", "jinja2",
"matrix"])
activate = join(bin_path, "activate_this.py")
+ # noinspection PyCompatibility
exec(compile(open(activate, "rb").read(), activate, "exec"),
dict(__file__=activate))
import jinja2
import matrix
-
jinja = jinja2.Environment(
loader=jinja2.FileSystemLoader(join(base_path, "ci", "templates")),
trim_blocks=True,
@@ -46,21 +47,17 @@
for (alias, conf) in matrix.from_file(join(base_path,
"setup.cfg")).items():
python = conf["python_versions"]
deps = conf["dependencies"]
- if "coverage_flags" in conf:
- cover = {"false": False, "true":
True}[conf["coverage_flags"].lower()]
- if "environment_variables" in conf:
- env_vars = conf["environment_variables"]
-
tox_environments[alias] = {
"python": "python" + python if "py" not in python else python,
"deps": deps.split(),
}
if "coverage_flags" in conf:
+ cover = {"false": False, "true":
True}[conf["coverage_flags"].lower()]
tox_environments[alias].update(cover=cover)
if "environment_variables" in conf:
+ env_vars = conf["environment_variables"]
tox_environments[alias].update(env_vars=env_vars.split())
-
for name in os.listdir(join("ci", "templates")):
with open(join(base_path, name), "w") as fh:
fh.write(jinja.get_template(name).render(tox_environments=tox_environments))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/templates/.travis.yml
new/lazy-object-proxy-1.3.1/ci/templates/.travis.yml
--- old/lazy-object-proxy-1.2.2/ci/templates/.travis.yml 2016-04-14
03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/templates/.travis.yml 2017-05-03
15:05:42.000000000 +0200
@@ -1,6 +1,6 @@
language: python
-python: '3.5'
sudo: false
+cache: pip
env:
global:
- LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so
@@ -8,8 +8,12 @@
matrix:
- TOXENV=check
- TOXENV=docs
-{% for env, config in tox_environments|dictsort %}{{ '' }}
- - TOXENV={{ env }}{% if config.cover
%},extension-coveralls,coveralls,codecov{% endif -%}
+matrix:
+ include:
+{%- for env, config in tox_environments|dictsort %}{{ '' }}
+ - python: '{{ env.split('-')[0] }}'
+ env:
+ - TOXENV={{ env }}{% if config.cover
%},report,extension-coveralls,coveralls,codecov{% endif -%}
{% endfor %}
before_install:
@@ -17,21 +21,37 @@
- uname -a
- lsb_release -a
install:
- - pip install tox
+ - pip install -U tox virtualenv
- virtualenv --version
- easy_install --version
- pip --version
- tox --version
+ - |
+ set -ex
+ if [[ $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then
+ (cd $HOME
+ wget
https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.7.1-linux_x86_64-portable.tar.bz2
+ tar xf pypy-5.7.1-linux_x86_64-portable.tar.bz2
+ pypy-5.7.1-linux_x86_64-portable/bin/pypy -m ensurepip
+ pypy-5.7.1-linux_x86_64-portable/bin/pypy -m pip install -U
virtualenv)
+ export PATH=$HOME/pypy-5.7.1-linux_x86_64-portable/bin/:$PATH
+ export TOXPYTHON=$HOME/pypy-5.7.1-linux_x86_64-portable/bin/pypy
+ fi
+ if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then
+ (cd $HOME
+ wget
https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2
+ tar xf pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2
+ pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3 -m ensurepip
+ pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3 -m pip install -U
virtualenv)
+ export PATH=$HOME/pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/:$PATH
+ export
TOXPYTHON=$HOME/pypy3.5-5.7.1-beta-linux_x86_64-portable/bin/pypy3
+ fi
+ set +x
script:
- tox -v
after_failure:
- more .tox/log/* | cat
- more .tox/*/log/* | cat
-before_cache:
- - rm -rf $HOME/.cache/pip/log
-cache:
- directories:
- - $HOME/.cache/pip
notifications:
email:
on_success: never
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/templates/appveyor.yml
new/lazy-object-proxy-1.3.1/ci/templates/appveyor.yml
--- old/lazy-object-proxy-1.2.2/ci/templates/appveyor.yml 2016-04-14
10:55:35.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/templates/appveyor.yml 2017-05-03
22:04:12.000000000 +0200
@@ -7,18 +7,17 @@
WITH_COMPILER: 'cmd /E:ON /V:ON /C .\ci\appveyor-with-compiler.cmd'
matrix:
- TOXENV: check
+ TOXPYTHON: C:\Python27\python.exe
PYTHON_HOME: C:\Python27
PYTHON_VERSION: '2.7'
PYTHON_ARCH: '32'
-
-{% for env, config in tox_environments|dictsort %}{% if config.python in
('python2.7', 'python3.3', 'python3.4', 'python3.5') %}
- - TOXENV: '{{ env }}{% if config.cover %},codecov{% endif %}'
+{% for env, config in tox_environments|dictsort %}{{ '' }}{% if
config.python.startswith('python') %}
+ - TOXENV: '{{ env }}{% if config.cover %},report,codecov{% endif %}'
TOXPYTHON: C:\{{ config.python.replace('.', '').capitalize()
}}\python.exe
PYTHON_HOME: C:\{{ config.python.replace('.', '').capitalize() }}
PYTHON_VERSION: '{{ config.python[-3:] }}'
PYTHON_ARCH: '32'
-
- - TOXENV: '{{ env }}{% if config.cover %},codecov{% endif %}'
+ - TOXENV: '{{ env }}{% if config.cover %},report,codecov{% endif %}'
TOXPYTHON: C:\{{ config.python.replace('.', '').capitalize()
}}-x64\python.exe
{%- if config.python != 'python3.5' %}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/ci/templates/tox.ini
new/lazy-object-proxy-1.3.1/ci/templates/tox.ini
--- old/lazy-object-proxy-1.2.2/ci/templates/tox.ini 2016-04-14
03:06:12.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/ci/templates/tox.ini 2017-05-03
22:04:12.000000000 +0200
@@ -10,8 +10,8 @@
[testenv]
basepython =
- {docs,spell}: python2.7
- {clean,check,report,extension-coveralls,coveralls,codecov}: python3.5
+ {docs,spell}: {env:TOXPYTHON:python2.7}
+ {bootstrap,clean,check,report,extension-coveralls,coveralls,codecov}:
{env:TOXPYTHON:python3}
setenv =
PYTHONPATH={toxinidir}/tests
PYTHONUNBUFFERED=yes
@@ -78,8 +78,6 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
- coverage report
coveralls --merge=extension-coveralls.json []
[testenv:codecov]
@@ -88,8 +86,6 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
- coverage report
coverage xml --ignore-errors
codecov []
@@ -107,7 +103,7 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
+ coverage combine --append
coverage report
coverage html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/docs/conf.py
new/lazy-object-proxy-1.3.1/docs/conf.py
--- old/lazy-object-proxy-1.2.2/docs/conf.py 2016-04-14 10:56:01.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/docs/conf.py 2017-05-05 14:11:12.000000000
+0200
@@ -23,10 +23,10 @@
source_suffix = '.rst'
master_doc = 'index'
project = 'lazy-object-proxy'
-year = '2014-2016'
+year = '2014-2017'
author = 'Ionel Cristian Mărieș'
copyright = '{0}, {1}'.format(year, author)
-version = release = '1.2.2'
+version = release = '1.3.1'
pygments_style = 'trac'
templates_path = ['.']
@@ -34,7 +34,6 @@
'issue': ('https://github.com/ionelmc/python-lazy-object-proxy/issues/%s',
'#'),
'pr': ('https://github.com/ionelmc/python-lazy-object-proxy/pull/%s', 'PR
#'),
}
->>>>>>> f0a6974... Upgrade skel.
import sphinx_py3doc_enhanced_theme
html_theme = "sphinx_py3doc_enhanced_theme"
html_theme_path = [sphinx_py3doc_enhanced_theme.get_html_theme_path()]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/setup.cfg
new/lazy-object-proxy-1.3.1/setup.cfg
--- old/lazy-object-proxy-1.2.2/setup.cfg 2016-04-14 12:25:03.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/setup.cfg 2017-05-05 14:11:33.000000000
+0200
@@ -2,7 +2,7 @@
max-line-length = 140
exclude = tests/*,*/migrations/*,*/south_migrations/*
-[pytest]
+[tool:pytest]
norecursedirs =
.git
.tox
@@ -45,7 +45,9 @@
3.3
3.4
3.5
+ 3.6
pypy
+ pypy3
dependencies =
:Django objproxies==0.9.4 !python_versions[2.6]
: &python_versions[2.6]
@@ -58,5 +60,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/setup.py
new/lazy-object-proxy-1.3.1/setup.py
--- old/lazy-object-proxy-1.2.2/setup.py 2016-04-14 10:56:01.000000000
+0200
+++ new/lazy-object-proxy-1.3.1/setup.py 2017-05-05 14:11:12.000000000
+0200
@@ -56,9 +56,10 @@
print(' ' + repr(e))
print('*' * 80)
+
setup(
name='lazy-object-proxy',
- version='1.2.2',
+ version='1.3.1',
license='BSD',
description='A fast and thorough lazy object proxy.',
long_description='%s\n%s' % (
@@ -88,6 +89,7 @@
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: Implementation :: CPython',
'Programming Language :: Python :: Implementation :: PyPy',
'Topic :: Utilities',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lazy-object-proxy-1.2.2/src/lazy_object_proxy/__init__.py
new/lazy-object-proxy-1.3.1/src/lazy_object_proxy/__init__.py
--- old/lazy-object-proxy-1.2.2/src/lazy_object_proxy/__init__.py
2016-04-14 10:56:01.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/src/lazy_object_proxy/__init__.py
2017-05-05 14:11:12.000000000 +0200
@@ -15,6 +15,6 @@
else:
copyreg.constructor(identity)
-__version__ = "1.2.2"
+__version__ = "1.3.1"
__all__ = "Proxy",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/src/lazy_object_proxy/cext.c
new/lazy-object-proxy-1.3.1/src/lazy_object_proxy/cext.c
--- old/lazy-object-proxy-1.2.2/src/lazy_object_proxy/cext.c 2015-08-28
00:42:27.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/src/lazy_object_proxy/cext.c 2017-05-03
14:18:31.000000000 +0200
@@ -9,7 +9,7 @@
#endif
#define Proxy__WRAPPED_REPLACE_OR_RETURN_NULL(object) \
- if (PyObject_IsInstance(object, (PyObject *)&Proxy_Type)) { \
+ if (PyObject_TypeCheck(object, &Proxy_Type)) { \
object = Proxy__ensure_wrapped((ProxyObject *)object); \
if (!object) return NULL; \
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lazy-object-proxy-1.2.2/src/lazy_object_proxy.egg-info/PKG-INFO
new/lazy-object-proxy-1.3.1/src/lazy_object_proxy.egg-info/PKG-INFO
--- old/lazy-object-proxy-1.2.2/src/lazy_object_proxy.egg-info/PKG-INFO
2016-04-14 12:25:03.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/src/lazy_object_proxy.egg-info/PKG-INFO
2017-05-05 14:11:33.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: lazy-object-proxy
-Version: 1.2.2
+Version: 1.3.1
Summary: A fast and thorough lazy object proxy.
Home-page: https://github.com/ionelmc/python-lazy-object-proxy
Author: Ionel Cristian Mărieș
@@ -16,6 +16,22 @@
* 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::
+
+ def expensive_func():
+ # create expensive object
+ return stuff
+
+ obj = lazy_object_proxy.Proxy(expensive_func)
+ # function is called only when object is actually used
+ print(obj.foobar) # now expensive_func is called
+
Installation
============
@@ -26,7 +42,7 @@
Documentation
=============
- https://python-lazy-object-proxy.readthedocs.org/
+ https://python-lazy-object-proxy.readthedocs.io/
Development
===========
@@ -38,13 +54,24 @@
Acknowledgements
================
- This project is based on some code from `wrapt
<https://github.com/GrahamDumpleton/wrapt>`_
- as you can see in the git history.
+ 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.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)
------------------
@@ -68,7 +95,8 @@
* 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).
+ 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)
-----------------------------------------
@@ -89,6 +117,7 @@
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 :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/lazy-object-proxy-1.2.2/tests/test_lazy_object_proxy.py
new/lazy-object-proxy-1.3.1/tests/test_lazy_object_proxy.py
--- old/lazy-object-proxy-1.2.2/tests/test_lazy_object_proxy.py 2016-04-14
03:19:39.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/tests/test_lazy_object_proxy.py 2017-05-03
15:05:42.000000000 +0200
@@ -418,7 +418,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_function_args(lazy_object_proxy):
@@ -432,7 +432,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_function_kwargs(lazy_object_proxy):
@@ -446,7 +446,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_function_args_plus_kwargs(lazy_object_proxy):
@@ -460,7 +460,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_no_args(lazy_object_proxy):
@@ -475,7 +475,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_args(lazy_object_proxy):
@@ -490,7 +490,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_kwargs(lazy_object_proxy):
@@ -505,7 +505,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_args_plus_kwargs(lazy_object_proxy):
@@ -520,7 +520,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_via_class_no_args(lazy_object_proxy):
@@ -535,7 +535,7 @@
result = wrapper(Class())
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_via_class_args(lazy_object_proxy):
@@ -550,7 +550,7 @@
result = wrapper(Class(), *_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_via_class_kwargs(lazy_object_proxy):
@@ -565,7 +565,7 @@
result = wrapper(Class(), **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_instancemethod_via_class_args_plus_kwargs(lazy_object_proxy):
@@ -580,7 +580,7 @@
result = wrapper(Class(), *_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_no_args(lazy_object_proxy):
@@ -596,7 +596,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_args(lazy_object_proxy):
@@ -612,7 +612,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_kwargs(lazy_object_proxy):
@@ -628,7 +628,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_args_plus_kwargs(lazy_object_proxy):
@@ -644,7 +644,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_via_class_no_args(lazy_object_proxy):
@@ -660,7 +660,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_via_class_args(lazy_object_proxy):
@@ -676,7 +676,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_via_class_kwargs(lazy_object_proxy):
@@ -692,7 +692,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_classmethod_via_class_args_plus_kwargs(lazy_object_proxy):
@@ -708,7 +708,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_no_args(lazy_object_proxy):
@@ -724,7 +724,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_args(lazy_object_proxy):
@@ -740,7 +740,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_kwargs(lazy_object_proxy):
@@ -756,7 +756,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_args_plus_kwargs(lazy_object_proxy):
@@ -772,7 +772,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_via_class_no_args(lazy_object_proxy):
@@ -788,7 +788,7 @@
result = wrapper()
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_via_class_args(lazy_object_proxy):
@@ -804,7 +804,7 @@
result = wrapper(*_args)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_via_class_kwargs(lazy_object_proxy):
@@ -820,7 +820,7 @@
result = wrapper(**_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_staticmethod_via_class_args_plus_kwargs(lazy_object_proxy):
@@ -836,7 +836,7 @@
result = wrapper(*_args, **_kwargs)
- assert result, (_args == _kwargs)
+ assert result == (_args, _kwargs)
def test_iteration(lazy_object_proxy):
@@ -1904,3 +1904,42 @@
obj = "foobar"
proxied = prototype(lambda: obj)
assert benchmark(partial(str, proxied)) == obj
+
+
+def test_subclassing_with_local_attr(lazy_object_proxy):
+ class Foo:
+ pass
+ called = []
+
+ class LazyProxy(lazy_object_proxy.Proxy):
+ name = None
+
+ def __init__(self, func, **lazy_attr):
+ super(LazyProxy, self).__init__(func)
+ for attr, val in lazy_attr.items():
+ setattr(self, attr, val)
+
+ proxy = LazyProxy(lambda: called.append(1) or Foo(), name='bar')
+ assert proxy.name == 'bar'
+ assert not called
+
+
+def test_subclassing_dynamic_with_local_attr(lazy_object_proxy):
+ if lazy_object_proxy.kind == 'cext':
+ pytest.skip("Not possible.")
+
+ class Foo:
+ pass
+
+ called = []
+
+ class LazyProxy(lazy_object_proxy.Proxy):
+ def __init__(self, func, **lazy_attr):
+ super(LazyProxy, self).__init__(func)
+ for attr, val in lazy_attr.items():
+ object.__setattr__(self, attr, val)
+
+ proxy = LazyProxy(lambda: called.append(1) or Foo(), name='bar')
+ assert proxy.name == 'bar'
+ assert not called
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lazy-object-proxy-1.2.2/tox.ini
new/lazy-object-proxy-1.3.1/tox.ini
--- old/lazy-object-proxy-1.2.2/tox.ini 2016-04-14 10:55:41.000000000 +0200
+++ new/lazy-object-proxy-1.3.1/tox.ini 2017-05-03 22:04:12.000000000 +0200
@@ -12,15 +12,19 @@
3.4-nocov,
3.5-cover,
3.5-nocov,
+ 3.6-cover,
+ 3.6-nocov,
pypy-cover,
pypy-nocov,
+ pypy3-cover,
+ pypy3-nocov,
report,
docs
[testenv]
basepython =
- {docs,spell}: python2.7
- {clean,check,report,extension-coveralls,coveralls,codecov}: python3.5
+ {docs,spell}: {env:TOXPYTHON:python2.7}
+ {bootstrap,clean,check,report,extension-coveralls,coveralls,codecov}:
{env:TOXPYTHON:python3}
setenv =
PYTHONPATH={toxinidir}/tests
PYTHONUNBUFFERED=yes
@@ -87,8 +91,6 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
- coverage report
coveralls --merge=extension-coveralls.json []
[testenv:codecov]
@@ -97,8 +99,6 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
- coverage report
coverage xml --ignore-errors
codecov []
@@ -116,7 +116,7 @@
skip_install = true
usedevelop = false
commands =
- coverage combine
+ coverage combine --append
coverage report
coverage html
@@ -235,6 +235,29 @@
Django
objproxies==0.9.4
+[testenv:3.6-cover]
+basepython = {env:TOXPYTHON:python3.6}
+setenv =
+ {[testenv]setenv}
+ WITH_COVERAGE=yes
+ SETUPPY_CFLAGS=-coverage
+usedevelop = true
+commands =
+ python setup.py clean --all build_ext --force --inplace
+ {posargs:py.test --cov --cov-report=term-missing -vv}
+deps =
+ {[testenv]deps}
+ pytest-cov
+ Django
+ objproxies==0.9.4
+
+[testenv:3.6-nocov]
+basepython = {env:TOXPYTHON:python3.6}
+deps =
+ {[testenv]deps}
+ Django
+ objproxies==0.9.4
+
[testenv:pypy-cover]
basepython = {env:TOXPYTHON:pypy}
setenv =
@@ -256,6 +279,29 @@
deps =
{[testenv]deps}
Django
+ objproxies==0.9.4
+
+[testenv:pypy3-cover]
+basepython = {env:TOXPYTHON:pypy3}
+setenv =
+ {[testenv]setenv}
+ WITH_COVERAGE=yes
+ SETUPPY_CFLAGS=-coverage
+usedevelop = true
+commands =
+ python setup.py clean --all build_ext --force --inplace
+ {posargs:py.test --cov --cov-report=term-missing -vv}
+deps =
+ {[testenv]deps}
+ pytest-cov
+ Django
+ objproxies==0.9.4
+
+[testenv:pypy3-nocov]
+basepython = {env:TOXPYTHON:pypy3}
+deps =
+ {[testenv]deps}
+ Django
objproxies==0.9.4