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
-


Reply via email to