Hello community, here is the log from the commit of package python-tblib for openSUSE:Factory checked in at 2019-05-07 23:11:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tblib (Old) and /work/SRC/openSUSE:Factory/.python-tblib.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tblib" Tue May 7 23:11:52 2019 rev:4 rq:700984 version:1.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tblib/python-tblib.changes 2019-03-08 11:58:38.399982954 +0100 +++ /work/SRC/openSUSE:Factory/.python-tblib.new.5148/python-tblib.changes 2019-05-07 23:11:55.804040010 +0200 @@ -1,0 +2,12 @@ +Mon May 6 07:56:48 UTC 2019 - [email protected] + +- version update to 1.4.0 + * Remove support for end of life Python 3.3. + * Fixed tests for Python 3.7. Contributed by Elliott Sales de Andrade in + `#36 <https://github.com/ionelmc/python-tblib/issues/36>`_. + * Fixed compatibility issue with Twised (``twisted.python.failure.Failure`` + expected a ``co_code`` attribute). +- deleted patches + - 0001-Patch-tests-against-Python-3.7.patch (upstreamed) + +------------------------------------------------------------------- Old: ---- 0001-Patch-tests-against-Python-3.7.patch tblib-1.3.2.tar.gz New: ---- tblib-1.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tblib.spec ++++++ --- /var/tmp/diff_new_pack.VnxcY9/_old 2019-05-07 23:11:57.720043777 +0200 +++ /var/tmp/diff_new_pack.VnxcY9/_new 2019-05-07 23:11:57.724043784 +0200 @@ -18,15 +18,14 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-tblib -Version: 1.3.2 +Version: 1.4.0 Release: 0 Summary: Traceback serialization library License: BSD-2-Clause Group: Development/Languages/Python Url: https://github.com/ionelmc/python-tblib Source: https://files.pythonhosted.org/packages/source/t/tblib/tblib-%{version}.tar.gz -# https://github.com/ionelmc/python-tblib/issues/36 -Patch0: https://src.fedoraproject.org/rpms/python-tblib/raw/master/f/0001-Patch-tests-against-Python-3.7.patch +BuildRequires: %{python_module Twisted} BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module six} @@ -58,7 +57,6 @@ %prep %setup -q -n tblib-%{version} -%patch0 -p1 %build %python_build @@ -68,9 +66,7 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%{python_expand export PYTHONPATH=tests:%{buildroot}%{$python_sitelib} -$python -m pytest README.rst -} +%pytest %files %{python_files} %doc AUTHORS.rst CHANGELOG.rst README.rst ++++++ tblib-1.3.2.tar.gz -> tblib-1.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/.bumpversion.cfg new/tblib-1.4.0/.bumpversion.cfg --- old/tblib-1.3.2/.bumpversion.cfg 2017-04-09 15:13:16.000000000 +0200 +++ new/tblib-1.4.0/.bumpversion.cfg 2019-05-02 14:21:57.000000000 +0200 @@ -1,13 +1,21 @@ [bumpversion] -current_version = 1.3.2 +current_version = 1.4.0 commit = True tag = True [bumpversion:file:setup.py] +search = version='{current_version}' +replace = version='{new_version}' [bumpversion:file:README.rst] +search = v{current_version}. +replace = v{new_version}. [bumpversion:file:docs/conf.py] +search = version = release = '{current_version}' +replace = version = release = '{new_version}' [bumpversion:file:src/tblib/__init__.py] +search = __version__ = '{current_version}' +replace = __version__ = '{new_version}' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/.cookiecutterrc new/tblib-1.4.0/.cookiecutterrc --- old/tblib-1.3.2/.cookiecutterrc 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/.cookiecutterrc 2019-05-02 12:13:51.000000000 +0200 @@ -1,34 +1,42 @@ # Generated by cookiepatcher, a small shim around cookiecutter (pip install cookiepatcher) cookiecutter: - appveyor: 'yes' - c_extension_cython: 'no' - c_extension_optional: 'no' - c_extension_support: 'no' - codacy: 'yes' - codeclimate: 'yes' - codecov: 'yes' - command_line_interface: 'no' + _extensions: + - jinja2_time.TimeExtension + _template: cookiecutter-pylibrary + appveyor: yes + c_extension_function: '-' + c_extension_module: '-' + c_extension_optional: no + c_extension_support: no + codacy: no + codeclimate: no + codecov: yes + command_line_interface: no command_line_interface_bin_name: '-' - coveralls: 'yes' + coveralls: yes distribution_name: tblib email: [email protected] full_name: Ionel Cristian Mărieș github_username: ionelmc - landscape: 'yes' + landscape: no + license: BSD 2-Clause License + linter: flake8 package_name: tblib project_name: tblib project_short_description: Traceback serialization library. - release_date: '2016-03-08' + release_date: '2017-04-09' repo_name: python-tblib - requiresio: 'yes' - scrutinizer: 'yes' - sphinx_doctest: 'no' + requiresio: yes + scrutinizer: no + sphinx_docs: yes + sphinx_doctest: no sphinx_theme: sphinx-py3doc-enhanced-theme - test_matrix_configurator: 'no' - test_matrix_separate_coverage: 'no' + test_matrix_configurator: no + test_matrix_separate_coverage: no test_runner: pytest - travis: 'yes' - version: 1.3.0 + travis: yes + version: 1.3.2 website: http://blog.ionelmc.ro - year: 2013-2017 + year_from: '2013' + year_to: '2019' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/.coveragerc new/tblib-1.4.0/.coveragerc --- old/tblib-1.3.2/.coveragerc 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/.coveragerc 2019-05-02 12:13:51.000000000 +0200 @@ -1,11 +1,13 @@ [paths] source = - src/tblib - */site-packages/tblib + src + */site-packages [run] -branch = True -source = tblib +branch = true +source = + tblib + tests parallel = true [report] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/.travis.yml new/tblib-1.4.0/.travis.yml --- old/tblib-1.3.2/.travis.yml 2017-04-09 00:24:04.000000000 +0200 +++ new/tblib-1.4.0/.travis.yml 2019-05-02 12:13:51.000000000 +0200 @@ -1,34 +1,36 @@ language: python -sudo: false -cache: pip +dist: xenial env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so - SEGFAULT_SIGNALS=all - matrix: - - TOXENV=check - - TOXENV=docs matrix: include: - - python: 2.7 + - python: '3.6' env: - - TOXENV=py27,report,coveralls,codecov - - python: 3.3 + - TOXENV=check + - python: '3.6' + env: + - TOXENV=docs + - python: '2.7' env: - - TOXENV=py33,report,coveralls,codecov - - python: 3.4 + - TOXENV=py27,report,coveralls,codecov + - python: '3.4' env: - TOXENV=py34,report,coveralls,codecov - - python: 3.5 + - python: '3.5' env: - TOXENV=py35,report,coveralls,codecov - - python: 3.6 + - python: '3.6' env: - TOXENV=py36,report,coveralls,codecov - - python: pypy + - python: '3.7' + env: + - TOXENV=py37,report,coveralls,codecov + - python: 'pypy2.7-6.0' env: - TOXENV=pypy,report,coveralls,codecov - - python: pypy3 + - python: 'pypy3.5-6.0' env: - TOXENV=pypy3,report,coveralls,codecov before_install: @@ -36,32 +38,11 @@ - uname -a - lsb_release -a install: - - pip install -U tox virtualenv + - pip install tox - 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: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/AUTHORS.rst new/tblib-1.4.0/AUTHORS.rst --- old/tblib-1.3.2/AUTHORS.rst 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/AUTHORS.rst 2019-05-02 13:27:29.000000000 +0200 @@ -1,4 +1,3 @@ - Authors ======= @@ -7,3 +6,5 @@ * Beckjake - https://github.com/beckjake * DRayX - https://github.com/DRayX * Jason Madden - https://github.com/jamadden +* Jon Dufresne - https://github.com/jdufresne/ +* Elliott Sales de Andrade - https://github.com/QuLogic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/CHANGELOG.rst new/tblib-1.4.0/CHANGELOG.rst --- old/tblib-1.3.2/CHANGELOG.rst 2017-04-09 15:10:48.000000000 +0200 +++ new/tblib-1.4.0/CHANGELOG.rst 2019-05-02 13:27:29.000000000 +0200 @@ -2,6 +2,14 @@ Changelog ========= +1.4.0 (2019-05-02) +~~~~~~~~~~~~~~~~~~ + +* Remove support for end of life Python 3.3. +* Fixed tests for Python 3.7. Contributed by Elliott Sales de Andrade in + `#36 <https://github.com/ionelmc/python-tblib/issues/36>`_. +* Fixed compatibility issue with Twised (``twisted.python.failure.Failure`` expected a ``co_code`` attribute). + 1.3.2 (2017-04-09) ~~~~~~~~~~~~~~~~~~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/CONTRIBUTING.rst new/tblib-1.4.0/CONTRIBUTING.rst --- old/tblib-1.3.2/CONTRIBUTING.rst 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/CONTRIBUTING.rst 2019-05-02 13:19:03.000000000 +0200 @@ -83,7 +83,7 @@ To run a subset of tests:: - tox -e envname -- py.test -k test_myfeature + tox -e envname -- pytest -k test_myfeature To run all the test environments in *parallel* (you need to ``pip install detox``):: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/LICENSE new/tblib-1.4.0/LICENSE --- old/tblib-1.3.2/LICENSE 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/LICENSE 2019-05-02 12:17:02.000000000 +0200 @@ -1,4 +1,6 @@ -Copyright (c) 2013-2017, Ionel Cristian Mărieș +BSD 2-Clause License + +Copyright (c) 2013-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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/MANIFEST.in new/tblib-1.4.0/MANIFEST.in --- old/tblib-1.3.2/MANIFEST.in 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/MANIFEST.in 2019-05-02 12:13:51.000000000 +0200 @@ -1,5 +1,4 @@ graft docs -graft examples graft src graft ci graft tests @@ -8,7 +7,6 @@ include .coveragerc include .cookiecutterrc include .editorconfig -include .isort.cfg include AUTHORS.rst include CHANGELOG.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/PKG-INFO new/tblib-1.4.0/PKG-INFO --- old/tblib-1.3.2/PKG-INFO 2017-04-09 22:09:57.000000000 +0200 +++ new/tblib-1.4.0/PKG-INFO 2019-05-02 14:22:25.000000000 +0200 @@ -1,11 +1,14 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: tblib -Version: 1.3.2 +Version: 1.4.0 Summary: Traceback serialization library. Home-page: https://github.com/ionelmc/python-tblib Author: Ionel Cristian Mărieș Author-email: [email protected] -License: BSD +License: BSD 2-Clause License +Project-URL: Documentation, https://python-tblib.readthedocs.io/ +Project-URL: Changelog, https://python-tblib.readthedocs.io/en/latest/changelog.html +Project-URL: Issue Tracker, https://github.com/ionelmc/python-tblib/issues Description: ======== Overview ======== @@ -94,13 +97,13 @@ :: >>> pickle.loads(s1) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s2) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s3) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) Raising ~~~~~~~ @@ -435,18 +438,14 @@ raise Exception('fail') Exception: fail - How's this useful ? Imagine you're using multiprocessing like this:: + How's this useful? Imagine you're using multiprocessing like this:: + # Note that Python 3.4 and later will show the remote traceback (but as a string sadly) so we skip testing this. >>> import traceback >>> from multiprocessing import Pool >>> from examples import func_a - >>> if sys.version_info[:2] >= (3, 4): - ... import multiprocessing.pool - ... # Undo the fix for http://bugs.python.org/issue13831 so that we can see the effects of our change. - ... # because Python 3.4 will show the remote traceback (but as a string sadly) - ... multiprocessing.pool.ExceptionWithTraceback = lambda e, t: e - >>> pool = Pool() - >>> try: + >>> pool = Pool() # doctest: +SKIP + >>> try: # doctest: +SKIP ... for i in pool.map(func_a, range(5)): ... print(i) ... except: @@ -461,7 +460,7 @@ ... Exception: Guessing time ! <BLANKLINE> - >>> pool.terminate() + >>> pool.terminate() # doctest: +SKIP Not very useful is it? Let's sort this out:: @@ -579,6 +578,14 @@ Changelog ========= + 1.4.0 (2019-05-02) + ~~~~~~~~~~~~~~~~~~ + + * Remove support for end of life Python 3.3. + * Fixed tests for Python 3.7. Contributed by Elliott Sales de Andrade in + `#36 <https://github.com/ionelmc/python-tblib/issues/36>`_. + * Fixed compatibility issue with Twised (``twisted.python.failure.Failure`` expected a ``co_code`` attribute). + 1.3.2 (2017-04-09) ~~~~~~~~~~~~~~~~~~ @@ -616,6 +623,7 @@ * Added ``to_dict`` method and ``from_dict`` classmethod on Tracebacks. Contributed by beckjake in `#5 <https://github.com/ionelmc/python-tblib/pull/5>`_. +Keywords: traceback,debugging,exceptions Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers @@ -626,10 +634,11 @@ Classifier: Programming Language :: Python 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 +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.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/README.rst new/tblib-1.4.0/README.rst --- old/tblib-1.3.2/README.rst 2017-04-09 15:13:16.000000000 +0200 +++ new/tblib-1.4.0/README.rst 2019-05-02 14:21:57.000000000 +0200 @@ -12,11 +12,9 @@ * - tests - | |travis| |appveyor| |requires| | |coveralls| |codecov| - | |landscape| |scrutinizer| |codacy| |codeclimate| * - package - | |version| |wheel| |supported-versions| |supported-implementations| | |commits-since| - .. |docs| image:: https://readthedocs.org/projects/python-tblib/badge/?style=flat :target: https://readthedocs.org/projects/python-tblib :alt: Documentation Status @@ -41,41 +39,25 @@ :alt: Coverage Status :target: https://codecov.io/github/ionelmc/python-tblib -.. |landscape| image:: https://landscape.io/github/ionelmc/python-tblib/master/landscape.svg?style=flat - :target: https://landscape.io/github/ionelmc/python-tblib/master - :alt: Code Quality Status - -.. |codacy| image:: https://img.shields.io/codacy/a8f7891727784601931d715097b703ee.svg?style=flat - :target: https://www.codacy.com/app/ionelmc/python-tblib - :alt: Codacy Code Quality Status - -.. |codeclimate| image:: https://codeclimate.com/github/ionelmc/python-tblib/badges/gpa.svg - :target: https://codeclimate.com/github/ionelmc/python-tblib - :alt: CodeClimate Quality Status - .. |version| image:: https://img.shields.io/pypi/v/tblib.svg :alt: PyPI Package latest release - :target: https://pypi.python.org/pypi/tblib + :target: https://pypi.org/project/tblib -.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-tblib/v1.3.2.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/ionelmc/python-tblib/v1.4.0.svg :alt: Commits since latest release - :target: https://github.com/ionelmc/python-tblib/compare/v1.3.2...master + :target: https://github.com/ionelmc/python-tblib/compare/v1.4.0...master .. |wheel| image:: https://img.shields.io/pypi/wheel/tblib.svg :alt: PyPI Wheel - :target: https://pypi.python.org/pypi/tblib + :target: https://pypi.org/project/tblib .. |supported-versions| image:: https://img.shields.io/pypi/pyversions/tblib.svg :alt: Supported versions - :target: https://pypi.python.org/pypi/tblib + :target: https://pypi.org/project/tblib .. |supported-implementations| image:: https://img.shields.io/pypi/implementation/tblib.svg :alt: Supported implementations - :target: https://pypi.python.org/pypi/tblib - -.. |scrutinizer| image:: https://img.shields.io/scrutinizer/g/ionelmc/python-tblib/master.svg - :alt: Scrutinizer Status - :target: https://scrutinizer-ci.com/g/ionelmc/python-tblib/ + :target: https://pypi.org/project/tblib .. end-badges @@ -162,13 +144,13 @@ :: >>> pickle.loads(s1) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s2) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s3) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) Raising ~~~~~~~ @@ -503,18 +485,14 @@ raise Exception('fail') Exception: fail -How's this useful ? Imagine you're using multiprocessing like this:: +How's this useful? Imagine you're using multiprocessing like this:: + # Note that Python 3.4 and later will show the remote traceback (but as a string sadly) so we skip testing this. >>> import traceback >>> from multiprocessing import Pool >>> from examples import func_a - >>> if sys.version_info[:2] >= (3, 4): - ... import multiprocessing.pool - ... # Undo the fix for http://bugs.python.org/issue13831 so that we can see the effects of our change. - ... # because Python 3.4 will show the remote traceback (but as a string sadly) - ... multiprocessing.pool.ExceptionWithTraceback = lambda e, t: e - >>> pool = Pool() - >>> try: + >>> pool = Pool() # doctest: +SKIP + >>> try: # doctest: +SKIP ... for i in pool.map(func_a, range(5)): ... print(i) ... except: @@ -529,7 +507,7 @@ ... Exception: Guessing time ! <BLANKLINE> - >>> pool.terminate() + >>> pool.terminate() # doctest: +SKIP Not very useful is it? Let's sort this out:: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/appveyor.yml new/tblib-1.4.0/appveyor.yml --- old/tblib-1.3.2/appveyor.yml 2017-04-09 00:24:00.000000000 +0200 +++ new/tblib-1.4.0/appveyor.yml 2019-05-02 12:13:51.000000000 +0200 @@ -7,60 +7,62 @@ WITH_COMPILER: 'cmd /E:ON /V:ON /C .\ci\appveyor-with-compiler.cmd' matrix: - TOXENV: check - PYTHON_HOME: C:\Python27 - PYTHON_VERSION: '2.7' + TOXPYTHON: C:\Python36\python.exe + PYTHON_HOME: C:\Python36 + PYTHON_VERSION: '3.6' PYTHON_ARCH: '32' - - - TOXENV: 'py27,codecov' + - TOXENV: 'py27,report,codecov' TOXPYTHON: C:\Python27\python.exe PYTHON_HOME: C:\Python27 PYTHON_VERSION: '2.7' PYTHON_ARCH: '32' - - - TOXENV: 'py27,codecov' + - TOXENV: 'py27,report,codecov' TOXPYTHON: C:\Python27-x64\python.exe WINDOWS_SDK_VERSION: v7.0 PYTHON_HOME: C:\Python27-x64 PYTHON_VERSION: '2.7' PYTHON_ARCH: '64' - - - TOXENV: 'py34,codecov' + - TOXENV: 'py34,report,codecov' TOXPYTHON: C:\Python34\python.exe PYTHON_HOME: C:\Python34 PYTHON_VERSION: '3.4' PYTHON_ARCH: '32' - - - TOXENV: 'py34,codecov' + - TOXENV: 'py34,report,codecov' TOXPYTHON: C:\Python34-x64\python.exe WINDOWS_SDK_VERSION: v7.1 PYTHON_HOME: C:\Python34-x64 PYTHON_VERSION: '3.4' PYTHON_ARCH: '64' - - - TOXENV: 'py35,codecov' + - TOXENV: 'py35,report,codecov' TOXPYTHON: C:\Python35\python.exe PYTHON_HOME: C:\Python35 PYTHON_VERSION: '3.5' PYTHON_ARCH: '32' - - - TOXENV: 'py35,codecov' + - TOXENV: 'py35,report,codecov' TOXPYTHON: C:\Python35-x64\python.exe PYTHON_HOME: C:\Python35-x64 PYTHON_VERSION: '3.5' PYTHON_ARCH: '64' - - - TOXENV: 'py36,codecov' + - TOXENV: 'py36,report,codecov' TOXPYTHON: C:\Python36\python.exe PYTHON_HOME: C:\Python36 PYTHON_VERSION: '3.6' PYTHON_ARCH: '32' - - - TOXENV: 'py36,codecov' + - TOXENV: 'py36,report,codecov' TOXPYTHON: C:\Python36-x64\python.exe PYTHON_HOME: C:\Python36-x64 PYTHON_VERSION: '3.6' PYTHON_ARCH: '64' - + - TOXENV: 'py37,report,codecov' + TOXPYTHON: C:\Python37\python.exe + PYTHON_HOME: C:\Python37 + PYTHON_VERSION: '3.7' + PYTHON_ARCH: '32' + - TOXENV: 'py37,report,codecov' + TOXPYTHON: C:\Python37-x64\python.exe + PYTHON_HOME: C:\Python37-x64 + PYTHON_VERSION: '3.7' + PYTHON_ARCH: '64' init: - ps: echo $env:TOXENV - ps: ls C:\Python* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/ci/appveyor-bootstrap.py new/tblib-1.4.0/ci/appveyor-bootstrap.py --- old/tblib-1.3.2/ci/appveyor-bootstrap.py 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/ci/appveyor-bootstrap.py 2019-05-02 12:13:51.000000000 +0200 @@ -18,24 +18,19 @@ GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" GET_PIP_PATH = "C:\get-pip.py" URLS = { - ("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.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", + ("2.7", "64"): BASE_URL + "2.7.13/python-2.7.13.amd64.msi", + ("2.7", "32"): BASE_URL + "2.7.13/python-2.7.13.msi", + ("3.4", "64"): BASE_URL + "3.4.4/python-3.4.4.amd64.msi", + ("3.4", "32"): BASE_URL + "3.4.4/python-3.4.4.msi", + ("3.5", "64"): BASE_URL + "3.5.4/python-3.5.4-amd64.exe", + ("3.5", "32"): BASE_URL + "3.5.4/python-3.5.4.exe", + ("3.6", "64"): BASE_URL + "3.6.2/python-3.6.2-amd64.exe", + ("3.6", "32"): BASE_URL + "3.6.2/python-3.6.2.exe", } INSTALL_CMD = { # Commands are allowed to fail only if they are not the last command. Eg: uninstall (/x) allowed to fail. "2.7": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"], ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]], - "3.3": [["msiexec.exe", "/L*+!", "install.log", "/qn", "/x", "{path}"], - ["msiexec.exe", "/L*+!", "install.log", "/qn", "/i", "{path}", "TARGETDIR={home}"]], "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}"]], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/ci/appveyor-with-compiler.cmd new/tblib-1.4.0/ci/appveyor-with-compiler.cmd --- old/tblib-1.3.2/ci/appveyor-with-compiler.cmd 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/ci/appveyor-with-compiler.cmd 2019-05-02 12:13:51.000000000 +0200 @@ -1,39 +1,17 @@ -:: To build extensions for 64 bit Python 3, we need to configure environment -:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) -:: -:: To build extensions for 64 bit Python 2, we need to configure environment -:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) -:: -:: 32 bit builds do not require specific environment configurations. -:: -:: Note: this script needs to be run with the /E:ON and /V:ON flags for the -:: cmd interpreter, at least for (SDK v7.0) -:: -:: More details at: -:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows -:: http://stackoverflow.com/a/13751649/163740 -:: -:: Author: Olivier Grisel -:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ +:: Very simple setup: +:: - if WINDOWS_SDK_VERSION is set then activate the SDK. +:: - disable the WDK if it's around. + SET COMMAND_TO_RUN=%* SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows SET WIN_WDK="c:\Program Files (x86)\Windows Kits\10\Include\wdf" 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_ARCH%"=="32" ( - GOTO main +IF EXIST %WIN_WDK% ( + REM See: https://connect.microsoft.com/VisualStudio/feedback/details/1610302/ + REN %WIN_WDK% 0wdf ) +IF "%WINDOWS_SDK_VERSION%"=="" GOTO main SET DISTUTILS_USE_SDK=1 SET MSSdk=1 @@ -41,6 +19,5 @@ CALL "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release :main - ECHO Executing: %COMMAND_TO_RUN% CALL %COMMAND_TO_RUN% || EXIT 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/ci/bootstrap.py new/tblib-1.4.0/ci/bootstrap.py --- old/tblib-1.3.2/ci/bootstrap.py 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/ci/bootstrap.py 2019-05-02 12:13:51.000000000 +0200 @@ -28,9 +28,10 @@ subprocess.check_call([sys.executable, "-m", "virtualenv", env_path]) print("Installing `jinja2` into bootstrap environment...") subprocess.check_call([join(bin_path, "pip"), "install", "jinja2"]) - activate = join(bin_path, "activate_this.py") - # noinspection PyCompatibility - exec(compile(open(activate, "rb").read(), activate, "exec"), dict(__file__=activate)) + python_executable = join(bin_path, "python") + if not os.path.samefile(python_executable, sys.executable): + print("Re-executing with: {0}".format(python_executable)) + os.execv(python_executable, [python_executable, __file__]) import jinja2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/ci/templates/.travis.yml new/tblib-1.4.0/ci/templates/.travis.yml --- old/tblib-1.3.2/ci/templates/.travis.yml 2017-04-09 00:24:04.000000000 +0200 +++ new/tblib-1.4.0/ci/templates/.travis.yml 2019-05-02 12:13:51.000000000 +0200 @@ -1,51 +1,38 @@ language: python -sudo: false -cache: pip +dist: xenial env: global: - LD_PRELOAD=/lib/x86_64-linux-gnu/libSegFault.so - SEGFAULT_SIGNALS=all - matrix: - - TOXENV=check - - TOXENV=docs matrix: include: -{% for env in tox_environments %} - - python: {{ env.split('-')[0] if env.startswith('pypy') else '{0[2]}.{0[3]}'.format(env) }} + - python: '3.6' + env: + - TOXENV=check + - python: '3.6' + env: + - TOXENV=docs +{%- for env in tox_environments %}{{ '' }} +{% if env.startswith("pypy3") %} + - python: 'pypy3.5-6.0' +{% elif env.startswith("pypy") %} + - python: 'pypy2.7-6.0' +{% else %} + - python: '{{ "{0[2]}.{0[3]}".format(env) }}' +{% endif %} env: - TOXENV={{ env }},report,coveralls,codecov -{% endfor %} +{%- endfor %}{{ '' }} before_install: - python --version - uname -a - lsb_release -a install: - - pip install -U tox virtualenv + - pip install tox - 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: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/ci/templates/appveyor.yml new/tblib-1.4.0/ci/templates/appveyor.yml --- old/tblib-1.3.2/ci/templates/appveyor.yml 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/ci/templates/appveyor.yml 2019-05-02 12:13:51.000000000 +0200 @@ -7,20 +7,19 @@ WITH_COMPILER: 'cmd /E:ON /V:ON /C .\ci\appveyor-with-compiler.cmd' matrix: - TOXENV: check - PYTHON_HOME: C:\Python27 - PYTHON_VERSION: '2.7' + TOXPYTHON: C:\Python36\python.exe + PYTHON_HOME: C:\Python36 + PYTHON_VERSION: '3.6' PYTHON_ARCH: '32' - -{% for env in tox_environments %}{% if env.startswith(('py2', 'py3')) %} - - TOXENV: '{{ env }},codecov' +{% for env in tox_environments %}{{ '' }}{% if env.startswith(('py2', 'py3')) %} + - TOXENV: '{{ env }},report,codecov' TOXPYTHON: C:\Python{{ env[2:4] }}\python.exe PYTHON_HOME: C:\Python{{ env[2:4] }} PYTHON_VERSION: '{{ env[2] }}.{{ env[3] }}' PYTHON_ARCH: '32' - - - TOXENV: '{{ env }},codecov' + - TOXENV: '{{ env }},report,codecov' TOXPYTHON: C:\Python{{ env[2:4] }}-x64\python.exe - {%- if env.startswith(('py2', 'py33', 'py34')) %} + {%- if env.startswith(('py2', 'py34')) %} WINDOWS_SDK_VERSION: v7.{{ '1' if env.startswith('py3') else '0' }} {%- endif %} @@ -28,7 +27,6 @@ PYTHON_HOME: C:\Python{{ env[2:4] }}-x64 PYTHON_VERSION: '{{ env[2] }}.{{ env[3] }}' PYTHON_ARCH: '64' - {% endif %}{% endfor %} init: - ps: echo $env:TOXENV diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/docs/conf.py new/tblib-1.4.0/docs/conf.py --- old/tblib-1.3.2/docs/conf.py 2017-04-09 15:13:16.000000000 +0200 +++ new/tblib-1.4.0/docs/conf.py 2019-05-02 14:21:57.000000000 +0200 @@ -23,10 +23,10 @@ source_suffix = '.rst' master_doc = 'index' project = 'tblib' -year = '2013-2017' +year = '2013-2019' author = 'Ionel Cristian Mărieș' copyright = '{0}, {1}'.format(year, author) -version = release = '1.3.2' +version = release = '1.4.0' pygments_style = 'trac' templates_path = ['.'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/setup.cfg new/tblib-1.4.0/setup.cfg --- old/tblib-1.3.2/setup.cfg 2017-04-09 22:09:57.000000000 +0200 +++ new/tblib-1.4.0/setup.cfg 2019-05-02 14:22:25.000000000 +0200 @@ -3,27 +3,23 @@ [flake8] max-line-length = 140 -exclude = tests/*,*/migrations/*,*/south_migrations/* +exclude = */migrations/* [tool:pytest] +testpaths = tests norecursedirs = - .git - .tox - .env - dist - build - south_migrations migrations python_files = test_*.py *_test.py tests.py addopts = - -rxEfsw + -ra --strict --ignore=tests/badmodule.py --ignore=tests/badsyntax.py --doctest-modules + --doctest-continue-on-failure --doctest-glob=\*.rst --tb=short @@ -34,7 +30,7 @@ default_section = THIRDPARTY forced_separate = test_tblib not_skip = __init__.py -skip = migrations, south_migrations +skip = migrations [egg_info] tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/setup.py new/tblib-1.4.0/setup.py --- old/tblib-1.3.2/setup.py 2017-04-09 15:13:16.000000000 +0200 +++ new/tblib-1.4.0/setup.py 2019-05-02 14:21:57.000000000 +0200 @@ -16,16 +16,17 @@ def read(*names, **kwargs): - return io.open( + with io.open( join(dirname(__file__), *names), encoding=kwargs.get('encoding', 'utf8') - ).read() + ) as fh: + return fh.read() setup( name='tblib', - version='1.3.2', - license='BSD', + version='1.4.0', + license='BSD 2-Clause License', description='Traceback serialization library.', long_description='%s\n%s' % ( re.compile('^.. start-badges.*^.. end-badges', re.M | re.S).sub('', read('README.rst')), @@ -50,17 +51,27 @@ 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', + # uncomment if you test on these interpreters: + # 'Programming Language :: Python :: Implementation :: IronPython', + # 'Programming Language :: Python :: Implementation :: Jython', + # 'Programming Language :: Python :: Implementation :: Stackless', 'Topic :: Utilities', ], + project_urls={ + 'Documentation': 'https://python-tblib.readthedocs.io/', + 'Changelog': 'https://python-tblib.readthedocs.io/en/latest/changelog.html', + 'Issue Tracker': 'https://github.com/ionelmc/python-tblib/issues', + }, keywords=[ - # eg: 'keyword1', 'keyword2', 'keyword3', + 'traceback', 'debugging', 'exceptions', ], + python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', install_requires=[ # eg: 'aspectlib==1.1.1', 'six>=1.7', ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/src/tblib/__init__.py new/tblib-1.4.0/src/tblib/__init__.py --- old/tblib-1.3.2/src/tblib/__init__.py 2017-04-09 15:13:16.000000000 +0200 +++ new/tblib-1.4.0/src/tblib/__init__.py 2019-05-02 14:21:57.000000000 +0200 @@ -15,7 +15,7 @@ if not tb_set_next and not tproxy: raise ImportError("Cannot use tblib. Runtime not supported.") -__version__ = '1.3.2' +__version__ = '1.4.0' __all__ = 'Traceback', PY3 = sys.version_info[0] == 3 @@ -37,6 +37,9 @@ class Code(object): + + co_code = None + def __init__(self, code): self.co_filename = code.co_filename self.co_name = code.co_name @@ -44,11 +47,11 @@ class Frame(object): def __init__(self, frame): - self.f_globals = dict([ - (k, v) + self.f_globals = { + k: v for k, v in frame.f_globals.items() if k in ("__file__", "__name__") - ]) + } self.f_code = Code(frame.f_code) def clear(self): @@ -112,7 +115,7 @@ # noinspection PyBroadException try: exec(code, current.tb_frame.f_globals, {}) - except: + except Exception: next_tb = sys.exc_info()[2].tb_next if top_tb is None: top_tb = next_tb diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/src/tblib.egg-info/PKG-INFO new/tblib-1.4.0/src/tblib.egg-info/PKG-INFO --- old/tblib-1.3.2/src/tblib.egg-info/PKG-INFO 2017-04-09 22:09:57.000000000 +0200 +++ new/tblib-1.4.0/src/tblib.egg-info/PKG-INFO 2019-05-02 14:22:25.000000000 +0200 @@ -1,11 +1,14 @@ -Metadata-Version: 1.1 +Metadata-Version: 1.2 Name: tblib -Version: 1.3.2 +Version: 1.4.0 Summary: Traceback serialization library. Home-page: https://github.com/ionelmc/python-tblib Author: Ionel Cristian Mărieș Author-email: [email protected] -License: BSD +License: BSD 2-Clause License +Project-URL: Documentation, https://python-tblib.readthedocs.io/ +Project-URL: Changelog, https://python-tblib.readthedocs.io/en/latest/changelog.html +Project-URL: Issue Tracker, https://github.com/ionelmc/python-tblib/issues Description: ======== Overview ======== @@ -94,13 +97,13 @@ :: >>> pickle.loads(s1) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s2) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) >>> pickle.loads(s3) - (<...Exception'>, Exception('fail',), <traceback object at ...>) + (<...Exception'>, Exception('fail'...), <traceback object at ...>) Raising ~~~~~~~ @@ -435,18 +438,14 @@ raise Exception('fail') Exception: fail - How's this useful ? Imagine you're using multiprocessing like this:: + How's this useful? Imagine you're using multiprocessing like this:: + # Note that Python 3.4 and later will show the remote traceback (but as a string sadly) so we skip testing this. >>> import traceback >>> from multiprocessing import Pool >>> from examples import func_a - >>> if sys.version_info[:2] >= (3, 4): - ... import multiprocessing.pool - ... # Undo the fix for http://bugs.python.org/issue13831 so that we can see the effects of our change. - ... # because Python 3.4 will show the remote traceback (but as a string sadly) - ... multiprocessing.pool.ExceptionWithTraceback = lambda e, t: e - >>> pool = Pool() - >>> try: + >>> pool = Pool() # doctest: +SKIP + >>> try: # doctest: +SKIP ... for i in pool.map(func_a, range(5)): ... print(i) ... except: @@ -461,7 +460,7 @@ ... Exception: Guessing time ! <BLANKLINE> - >>> pool.terminate() + >>> pool.terminate() # doctest: +SKIP Not very useful is it? Let's sort this out:: @@ -579,6 +578,14 @@ Changelog ========= + 1.4.0 (2019-05-02) + ~~~~~~~~~~~~~~~~~~ + + * Remove support for end of life Python 3.3. + * Fixed tests for Python 3.7. Contributed by Elliott Sales de Andrade in + `#36 <https://github.com/ionelmc/python-tblib/issues/36>`_. + * Fixed compatibility issue with Twised (``twisted.python.failure.Failure`` expected a ``co_code`` attribute). + 1.3.2 (2017-04-09) ~~~~~~~~~~~~~~~~~~ @@ -616,6 +623,7 @@ * Added ``to_dict`` method and ``from_dict`` classmethod on Tracebacks. Contributed by beckjake in `#5 <https://github.com/ionelmc/python-tblib/pull/5>`_. +Keywords: traceback,debugging,exceptions Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers @@ -626,10 +634,11 @@ Classifier: Programming Language :: Python 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 +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.* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/src/tblib.egg-info/SOURCES.txt new/tblib-1.4.0/src/tblib.egg-info/SOURCES.txt --- old/tblib-1.3.2/src/tblib.egg-info/SOURCES.txt 2017-04-09 22:09:57.000000000 +0200 +++ new/tblib-1.4.0/src/tblib.egg-info/SOURCES.txt 2019-05-02 14:22:25.000000000 +0200 @@ -42,4 +42,5 @@ src/tblib.egg-info/top_level.txt tests/badmodule.py tests/badsyntax.py -tests/examples.py \ No newline at end of file +tests/examples.py +tests/test_issue30.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/tests/badsyntax.py new/tblib-1.4.0/tests/badsyntax.py --- old/tblib-1.3.2/tests/badsyntax.py 2017-04-07 22:26:43.000000000 +0200 +++ new/tblib-1.4.0/tests/badsyntax.py 2019-05-02 13:23:09.000000000 +0200 @@ -1,3 +1,4 @@ +# flake8: noqa """ bad bad bad diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/tests/test_issue30.py new/tblib-1.4.0/tests/test_issue30.py --- old/tblib-1.3.2/tests/test_issue30.py 1970-01-01 01:00:00.000000000 +0100 +++ new/tblib-1.4.0/tests/test_issue30.py 2019-05-02 13:22:30.000000000 +0200 @@ -0,0 +1,24 @@ +import pickle +import sys + +import six +from twisted.python.failure import Failure + +from tblib import pickling_support + + +def test_30(): + pickling_support.install() + + try: + raise ValueError + except ValueError: + s = pickle.dumps(sys.exc_info()) + + f = None + try: + six.reraise(*pickle.loads(s)) + except ValueError: + f = Failure() + + assert f is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tblib-1.3.2/tox.ini new/tblib-1.4.0/tox.ini --- old/tblib-1.3.2/tox.ini 2017-04-09 00:24:04.000000000 +0200 +++ new/tblib-1.4.0/tox.ini 2019-05-02 12:37:42.000000000 +0200 @@ -1,23 +1,23 @@ -; a generative tox configuration, see: https://testrun.org/tox/latest/config.html#generative-envlist +; a generative tox configuration, see: https://tox.readthedocs.io/en/latest/config.html#generative-envlist [tox] envlist = clean, check, - {py27,py33,py34,py35,py36,pypy}, - report, - docs + docs, + {py27,py34,py35,py36,py37,pypy,pypy3}, + report [testenv] basepython = pypy: {env:TOXPYTHON:pypy} pypy3: {env:TOXPYTHON:pypy3} - {py27,docs,spell}: {env:TOXPYTHON:python2.7} - py33: {env:TOXPYTHON:python3.3} + py27: {env:TOXPYTHON:python2.7} py34: {env:TOXPYTHON:python3.4} py35: {env:TOXPYTHON:python3.5} - py36: {env:TOXPYTHON:python3.6} - {bootstrap,clean,check,report,coveralls,codecov}: {env:TOXPYTHON:python3} + {py36,docs,spell}: {env:TOXPYTHON:python3.6} + py37: {env:TOXPYTHON:python3.7} + {bootstrap,clean,check,report,codecov,coveralls}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -29,6 +29,7 @@ pytest-travis-fold pytest-cov six + twisted commands = {posargs:py.test --cov=tblib --cov-report=term-missing -vv tests README.rst} @@ -39,8 +40,21 @@ skip_install = true commands = python ci/bootstrap.py -passenv = - * + +[testenv:check] +deps = + docutils + check-manifest + flake8 + readme-renderer + pygments + isort +skip_install = true +commands = + python setup.py check --strict --metadata --restructuredtext + check-manifest {toxinidir} + flake8 src tests setup.py + isort --verbose --check-only --diff --recursive src tests setup.py [testenv:spell] setenv = @@ -60,21 +74,6 @@ sphinx-build {posargs:-E} -b html docs dist/docs sphinx-build -b linkcheck docs dist/docs -[testenv:check] -deps = - docutils - check-manifest - flake8 - readme-renderer - pygments - isort -skip_install = true -commands = - python setup.py check --strict --metadata --restructuredtext - check-manifest {toxinidir} - flake8 src tests setup.py - isort --verbose --check-only --diff --recursive src tests setup.py - [testenv:coveralls] deps = coveralls @@ -90,12 +89,10 @@ coverage xml --ignore-errors codecov [] - [testenv:report] deps = coverage skip_install = true commands = - coverage combine --append coverage report coverage html @@ -103,4 +100,3 @@ commands = coverage erase skip_install = true deps = coverage -
