Hello community, here is the log from the commit of package python-txaio for openSUSE:Factory checked in at 2020-03-27 22:02:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-txaio (Old) and /work/SRC/openSUSE:Factory/.python-txaio.new.3160 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-txaio" Fri Mar 27 22:02:38 2020 rev:8 rq:789103 version:20.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-txaio/python-txaio.changes 2020-03-25 23:47:31.776064513 +0100 +++ /work/SRC/openSUSE:Factory/.python-txaio.new.3160/python-txaio.changes 2020-03-27 22:02:49.206985498 +0100 @@ -1,0 +2,21 @@ +Fri Mar 27 15:24:16 UTC 2020 - Matej Cepl <[email protected]> + +- Remove pytest4.patch as it is included upstream +- Switch off python2 builds. + +------------------------------------------------------------------- +Wed Mar 25 14:49:27 UTC 2020 - [email protected] + +- version update to 20.3.1 + - MISC: Remove python2 support + - NEW: support import-time framework selection + +------------------------------------------------------------------- +Wed Feb 5 13:11:01 UTC 2020 - Ondřej Súkup <[email protected]> + +- update to 20.1.1 +- drop pytest4.patch + * new: moved time_ns and perf_counter_ns helper functions here + * drop support for python 3.4 and older + +------------------------------------------------------------------- Old: ---- pytest4.patch txaio-18.8.1.tar.gz New: ---- txaio-20.3.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-txaio.spec ++++++ --- /var/tmp/diff_new_pack.Hbnctj/_old 2020-03-27 22:02:53.010987711 +0100 +++ /var/tmp/diff_new_pack.Hbnctj/_new 2020-03-27 22:02:53.010987711 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-txaio # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,15 +17,15 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 Name: python-txaio -Version: 18.8.1 +Version: 20.3.1 Release: 0 Summary: WebSocket and WAMP in Python for Twisted and asyncio License: MIT Group: Development/Languages/Python URL: https://github.com/crossbario/txaio Source: https://files.pythonhosted.org/packages/source/t/txaio/txaio-%{version}.tar.gz -Patch0: pytest4.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros ++++++ txaio-18.8.1.tar.gz -> txaio-20.3.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/PKG-INFO new/txaio-20.3.1/PKG-INFO --- old/txaio-18.8.1/PKG-INFO 2018-08-31 12:06:05.000000000 +0200 +++ new/txaio-20.3.1/PKG-INFO 2020-03-22 21:14:04.671030800 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: txaio -Version: 18.8.1 +Version: 20.3.1 Summary: Compatibility API between asyncio/Twisted/Trollius Home-page: https://github.com/crossbario/txaio Author: Crossbar.io Technologies GmbH @@ -30,19 +30,12 @@ Platform support ---------------- - **txaio** runs on CPython 2.7/3.3+ and PyPy 2/3, on top of Twisted or asyncio. Specifically, **txaio** is tested on the following platforms: + **txaio** runs on CPython 3.5+ and PyPy 3, on top of *Twisted* or *asyncio*. Specifically, **txaio** is tested on the following platforms: - **Python 2:** + * CPython 3.5, 3.7 and 3.8 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) + * PyPy 3 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) - * CPython 2.7 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - * PyPy 2 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - - **Python 3:** - - * CPython 3.4 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * CPython 3.5 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * CPython 3.6 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * PyPy 3 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) + > Note: txaio up to version 18.8.1 also supported Python 2.7 and Python 3.4. Beginning with release v20.1.1, txaio only supports Python 3.5+. How it works @@ -97,19 +90,17 @@ Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -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 :: 3.8 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Software Development :: Libraries :: Application Frameworks -Provides-Extra: asyncio -Provides-Extra: twisted +Requires-Python: >=3.5 Provides-Extra: all +Provides-Extra: asyncio Provides-Extra: dev +Provides-Extra: twisted diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/README.rst new/txaio-20.3.1/README.rst --- old/txaio-18.8.1/README.rst 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/README.rst 2020-01-21 18:42:32.000000000 +0100 @@ -22,19 +22,12 @@ Platform support ---------------- -**txaio** runs on CPython 2.7/3.3+ and PyPy 2/3, on top of Twisted or asyncio. Specifically, **txaio** is tested on the following platforms: +**txaio** runs on CPython 3.5+ and PyPy 3, on top of *Twisted* or *asyncio*. Specifically, **txaio** is tested on the following platforms: -**Python 2:** +* CPython 3.5, 3.7 and 3.8 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) +* PyPy 3 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) -* CPython 2.7 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 -* PyPy 2 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - -**Python 3:** - -* CPython 3.4 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* CPython 3.5 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* CPython 3.6 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* PyPy 3 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) +> Note: txaio up to version 18.8.1 also supported Python 2.7 and Python 3.4. Beginning with release v20.1.1, txaio only supports Python 3.5+. How it works diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/docs/conf.py new/txaio-20.3.1/docs/conf.py --- old/txaio-18.8.1/docs/conf.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/docs/conf.py 2020-01-21 18:42:32.000000000 +0100 @@ -94,13 +94,13 @@ master_doc = 'contents' # General information about the project. -project = u'txaio' -author = u'Crossbar.io Project' -this_year = u'{0}'.format(time.strftime('%Y')) -if this_year != u'2015': - copyright = u'2015-{0}, Crossbar.io Technologies GmbH'.format(this_year) +project = 'txaio' +author = 'Crossbar.io Project' +this_year = '{0}'.format(time.strftime('%Y')) +if this_year != '2015': + copyright = '2015-{0}, Crossbar.io Technologies GmbH'.format(this_year) else: - copyright = u'2015, Crossbar.io Technologies GmbH' + copyright = '2015, Crossbar.io Technologies GmbH' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/docs/index.rst new/txaio-20.3.1/docs/index.rst --- old/txaio-18.8.1/docs/index.rst 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/docs/index.rst 2020-01-21 18:42:32.000000000 +0100 @@ -22,19 +22,12 @@ Platform support ---------------- -**txaio** runs on CPython 2.7/3.3+ and PyPy 2/3, on top of Twisted or asyncio. Specifically, **txaio** is tested on the following platforms: +**txaio** runs on CPython 3.5+ and PyPy 3, on top of *Twisted* or *asyncio*. Specifically, **txaio** is tested on the following platforms: -**Python 2:** +* CPython 3.5, 3.7 and 3.8 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) +* PyPy 3 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) -* CPython 2.7 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 -* PyPy 2 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - -**Python 3:** - -* CPython 3.4 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* CPython 3.5 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* CPython 3.6 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) -* PyPy 3 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) +> Note: txaio up to version 18.8.1 also supported Python 2.7 and Python 3.4. Beginning with release v20.1.1, txaio only supports Python 3.5+. How it works diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/docs/releases.rst new/txaio-20.3.1/docs/releases.rst --- old/txaio-18.8.1/docs/releases.rst 2018-08-31 12:05:20.000000000 +0200 +++ new/txaio-20.3.1/docs/releases.rst 2020-03-22 21:06:20.000000000 +0100 @@ -1,15 +1,22 @@ txio releases ============= -master +20.3.1 ------ -- ... +- MISC: Remove python2 support +- NEW: support import-time framework selection +20.1.1 +------ + +- IMPORTANT: beginning release v20.1.1, we only support Python 3.5 or later +- new: moved ``time_ns`` and ``perf_counter_ns`` helper functions here 18.8.1 ------ +* IMPORTANT: release v18.8.1 is the last release supporting Python 2. We will support Python 3.5 and later beginning with release v20.1.1. - add API to support cancellation; this means passing a 1-argument callable to ``create_future`` and ``txaio.cancel`` to actually cancel a future diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/examples/basic.py new/txaio-20.3.1/examples/basic.py --- old/txaio-18.8.1/examples/basic.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/examples/basic.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import print_function import txaio txaio.use_twisted() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/examples/log_interop_stdlib.py new/txaio-20.3.1/examples/log_interop_stdlib.py --- old/txaio-18.8.1/examples/log_interop_stdlib.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/examples/log_interop_stdlib.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import print_function import sys import logging diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/examples/log_interop_twisted.py new/txaio-20.3.1/examples/log_interop_twisted.py --- old/txaio-18.8.1/examples/log_interop_twisted.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/examples/log_interop_twisted.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import print_function import sys import txaio diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/examples/multiloop.py new/txaio-20.3.1/examples/multiloop.py --- old/txaio-18.8.1/examples/multiloop.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/examples/multiloop.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import print_function # This example only works with asyncio diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/setup.py new/txaio-20.3.1/setup.py --- old/txaio-18.8.1/setup.py 2018-08-31 12:05:20.000000000 +0200 +++ new/txaio-20.3.1/setup.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,15 +24,12 @@ # ############################################################################### -from __future__ import absolute_import import sys import platform from setuptools import setup CPY = platform.python_implementation() == 'CPython' -PY3 = sys.version_info >= (3,) -PY33 = (3, 3) <= sys.version_info < (3, 4) with open('txaio/_version.py') as f: exec(f.read()) # defines __version__ @@ -48,23 +45,9 @@ 'twisted>=12.1.0', # MIT ] -# asyncio dependencies +# asyncio dependencies: Python 3.5+ has asyncio builtin # -if PY3: - if PY33: - # "Tulip" - extras_require_asyncio = [ - "asyncio>=3.4.3" # Apache 2.0 - ] - else: - # Python 3.4+ has asyncio builtin - extras_require_asyncio = [] -else: - # backport of asyncio for Python 2 - extras_require_asyncio = [ - "trollius>=2.0", # Apache 2.0 - "futures>=3.0.3" # BSD license - ] +extras_require_asyncio = [] # development dependencies # @@ -97,9 +80,7 @@ author_email='[email protected]', url='https://github.com/crossbario/txaio', platforms=('Any'), - install_requires=[ - 'six' - ], + python_requires='>=3.5', extras_require={ 'twisted': extras_require_twisted, 'asyncio': extras_require_asyncio, @@ -129,14 +110,11 @@ "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "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 :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/test/_asyncio_test_utils.py new/txaio-20.3.1/test/_asyncio_test_utils.py --- old/txaio-18.8.1/test/_asyncio_test_utils.py 2018-08-31 12:05:20.000000000 +0200 +++ new/txaio-20.3.1/test/_asyncio_test_utils.py 2020-01-21 18:42:32.000000000 +0100 @@ -55,15 +55,15 @@ 'caIssuers': ('http://testca.pythontest.net/testca/pycacert.cer',), 'crlDistributionPoints': ('http://testca.pythontest.net/testca/revocation.crl',), 'issuer': ((('countryName', 'XY'),), - (('organizationName', 'Python Software Foundation CA'),), - (('commonName', 'our-ca-server'),)), + (('organizationName', 'Python Software Foundation CA'),), + (('commonName', 'our-ca-server'),)), 'notAfter': 'Jul 7 14:23:16 2028 GMT', 'notBefore': 'Aug 29 14:23:16 2018 GMT', 'serialNumber': 'CB2D80995A69525C', 'subject': ((('countryName', 'XY'),), - (('localityName', 'Castle Anthrax'),), - (('organizationName', 'Python Software Foundation'),), - (('commonName', 'localhost'),)), + (('localityName', 'Castle Anthrax'),), + (('organizationName', 'Python Software Foundation'),), + (('commonName', 'localhost'),)), 'subjectAltName': (('DNS', 'localhost'),), 'version': 3 } @@ -212,7 +212,6 @@ self.server_name = '127.0.0.1' self.server_port = 80 - class UnixWSGIServer(UnixHTTPServer, WSGIServer): request_timeout = 2 @@ -232,22 +231,18 @@ # to get the tests going return request, ('127.0.0.1', '') - class SilentUnixWSGIServer(UnixWSGIServer): def handle_error(self, request, client_address): pass - class UnixSSLWSGIServer(SSLWSGIServerMixin, SilentUnixWSGIServer): pass - def gen_unix_socket_path(): with tempfile.NamedTemporaryFile() as file: return file.name - @contextlib.contextmanager def unix_socket_path(): path = gen_unix_socket_path() @@ -259,7 +254,6 @@ except OSError: pass - @contextlib.contextmanager def run_test_unix_server(*, use_ssl=False): with unix_socket_path() as path: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/test/conftest.py new/txaio-20.3.1/test/conftest.py --- old/txaio-18.8.1/test/conftest.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/test/conftest.py 2020-01-10 21:26:31.000000000 +0100 @@ -25,9 +25,9 @@ try: if request.param == 'twisted': - return framework_tx() + return _notfixture_framework_tx() elif request.param == 'asyncio': - return framework_aio() + return _notfixture_framework_aio() except ImportError: pytest.skip() @@ -43,6 +43,10 @@ @pytest.fixture def framework_tx(): + return _notfixture_framework_tx() + + +def _notfixture_framework_tx(): try: import txaio from txaio import tx @@ -56,6 +60,10 @@ @pytest.fixture def framework_aio(): + return _notfixture_framework_aio() + + +def _notfixture_framework_aio(): try: import txaio from txaio import aio diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/test/test_legacy_logging.py new/txaio-20.3.1/test/test_legacy_logging.py --- old/txaio-18.8.1/test/test_legacy_logging.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/test/test_legacy_logging.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import print_function import txaio diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/test/test_logging.py new/txaio-20.3.1/test/test_logging.py --- old/txaio-18.8.1/test/test_logging.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/test/test_logging.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,13 +24,11 @@ # ############################################################################### -from __future__ import print_function from collections import namedtuple from io import BytesIO, StringIO import os -import six import pytest import txaio @@ -79,7 +77,7 @@ """ logger = txaio.make_logger() - txaio.add_log_categories({"TX100": u"{adjective} {nouns[2]}"}) + txaio.add_log_categories({"TX100": "{adjective} {nouns[2]}"}) # do something a little fancy, with attribute access etc. logger.critical( @@ -100,8 +98,8 @@ """ logger = txaio.make_logger() - txaio.add_log_categories({"TX100": u"{adjective} {nouns[2]}"}) - txaio.add_log_categories({"TX100": u"{adjective} {nouns[1]}"}) + txaio.add_log_categories({"TX100": "{adjective} {nouns[2]}"}) + txaio.add_log_categories({"TX100": "{adjective} {nouns[1]}"}) # do something a little fancy, with attribute access etc. logger.critical( @@ -291,7 +289,7 @@ from twisted.logger import Logger from txaio.tx import _LogObserver - out = six.StringIO() + out = StringIO() observer = _LogObserver(out) logger = Logger(observer=observer) @@ -344,7 +342,7 @@ }) output = out_file.getvalue() - assert u"hi: hello" in output + assert "hi: hello" in output def test_aiolog_write_binary(handler, framework_aio): @@ -384,4 +382,4 @@ })) output = out_file.getvalue() - assert u"hi: hello" in output + assert "hi: hello" in output diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/test/test_util.py new/txaio-20.3.1/test/test_util.py --- old/txaio-18.8.1/test/test_util.py 1970-01-01 01:00:00.000000000 +0100 +++ new/txaio-20.3.1/test/test_util.py 2020-01-21 18:42:32.000000000 +0100 @@ -0,0 +1,37 @@ +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### + +import txaio + + +def test_time_ns(framework): + now = txaio.time_ns() + assert now > 0 + + +def test_perf_counter_ns(framework): + now = txaio.perf_counter_ns() + assert now > 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/tox.ini new/txaio-20.3.1/tox.ini --- old/txaio-18.8.1/tox.ini 2018-08-31 12:05:20.000000000 +0200 +++ new/txaio-20.3.1/tox.ini 2020-01-21 18:42:32.000000000 +0100 @@ -3,35 +3,24 @@ flake8 # CPython - py27-{tw154,tw165,tw187,twtrunk,asyncio} - py34-{tw154,tw165,tw187,twtrunk,asyncio} - py35-{tw154,tw165,tw187,twtrunk,asyncio} - py36-{tw154,tw165,tw187,twtrunk,asyncio} - py37-{tw154,tw165,tw187,twtrunk,asyncio} + py35-{tw187,tw1910,twtrunk,asyncio} + py37-{tw165,tw187,tw1910,twtrunk,asyncio} + py38-{tw165,tw187,tw1910,twtrunk,asyncio} # PyPy - pypy-{tw154,tw165,tw187,twtrunk,asyncio} - pypy3-{tw154,tw165,tw187,twtrunk,asyncio} + pypy3-{tw187,tw1910,twtrunk,asyncio} [testenv] deps = - six mock - pytest - coverage==4.0 + pytest==4.6.9 + coverage==4.5.4 ; twisted dependencies - tw154: twisted==15.4.0 - tw165: twisted==16.5.0 tw187: twisted==18.7.0 + tw1910: twisted==19.10.0 twtrunk: https://github.com/twisted/twisted/archive/trunk.zip - {tw154,tw165,tw187,twtrunk}: pytest-twisted - - ; asyncio dependencies - py26-asyncio: trollius>=2.0 - py26-asyncio: ordereddict - py27-asyncio: trollius>=2.0 - pypy-asyncio: trollius>=2.0 + {tw187,tw1910,twtrunk}: pytest-twisted==1.10 changedir=test @@ -44,7 +33,6 @@ # -s: show output immediately # -v: one line per test, instead of one dot - [testenv:flake8] deps = flake8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/__init__.py new/txaio-20.3.1/txaio/__init__.py --- old/txaio-18.8.1/txaio/__init__.py 2018-08-31 09:04:36.000000000 +0200 +++ new/txaio-20.3.1/txaio/__init__.py 2020-02-04 18:37:55.000000000 +0100 @@ -24,7 +24,6 @@ # ############################################################################### -from __future__ import absolute_import from txaio._version import __version__ from txaio.interfaces import IFailedFuture, ILogger @@ -33,7 +32,7 @@ # This is the API # see tx.py for Twisted implementation -# see aio.py for asyncio/trollius implementation +# see aio.py for asyncio implementation class _Config(object): @@ -97,6 +96,8 @@ 'ILogger', # API for logging 'sleep', # little helper for inline sleeping + 'time_ns', # helper: current time (UTC) in ns + 'perf_counter_ns', # helper: current performance counter in ns ) @@ -136,8 +137,7 @@ for method_name in __all__: if method_name in ['use_twisted', 'use_asyncio']: continue - setattr(txaio, method_name, - getattr(module, method_name)) + setattr(txaio, method_name, getattr(module, method_name)) # use the "un-framework", which is neither asyncio nor twisted and diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/_common.py new/txaio-20.3.1/txaio/_common.py --- old/txaio-18.8.1/txaio/_common.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/txaio/_common.py 2020-02-04 18:37:55.000000000 +0100 @@ -1,3 +1,28 @@ +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### import math from txaio.interfaces import IBatchedTimer @@ -99,9 +124,9 @@ else: # done all calls; make sure there were no errors if len(errors): - msg = u"Error(s) processing call_later bucket:\n" + msg = "Error(s) processing call_later bucket:\n" for e in errors: - msg += u"{}\n".format(e) + msg += "{}\n".format(e) raise RuntimeError(msg) # ceil()ing because we want the number of chunks, and a # partial chunk is still a chunk diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/_iotype.py new/txaio-20.3.1/txaio/_iotype.py --- old/txaio-18.8.1/txaio/_iotype.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/txaio/_iotype.py 2020-01-21 18:42:32.000000000 +0100 @@ -24,15 +24,6 @@ # ############################################################################### -from __future__ import absolute_import, division - -from six import PY3, PY2 - -if PY3: - unicode = str -else: - unicode = unicode - def guess_stream_needs_encoding(fileobj, default=True): """ @@ -55,7 +46,7 @@ if t is bytes: return True - elif t is unicode: + elif t is str: return False except Exception: @@ -64,9 +55,6 @@ try: mode = fileobj.mode - if PY2 and mode == "w": - mode = "wb" - if "b" in mode: return True else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/_unframework.py new/txaio-20.3.1/txaio/_unframework.py --- old/txaio-18.8.1/txaio/_unframework.py 2018-08-31 09:04:36.000000000 +0200 +++ new/txaio-20.3.1/txaio/_unframework.py 2020-01-21 18:42:32.000000000 +0100 @@ -30,7 +30,6 @@ explicitly by calling .use_twisted() or .use_asyncio() """ -from __future__ import absolute_import, division, print_function from txaio import _Config using_twisted = False @@ -79,3 +78,5 @@ ILogger = _throw_usage_error sleep = _throw_usage_error +time_ns = _throw_usage_error +perf_counter_ns = _throw_usage_error diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/_util.py new/txaio-20.3.1/txaio/_util.py --- old/txaio-18.8.1/txaio/_util.py 1970-01-01 01:00:00.000000000 +0100 +++ new/txaio-20.3.1/txaio/_util.py 2020-01-21 18:42:32.000000000 +0100 @@ -0,0 +1,48 @@ +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### + +import sys +import time + + +if sys.version_info >= (3, 7): + + time_ns = time.time_ns + perf_counter_ns = time.perf_counter_ns + +else: + + def time_ns(): + """ + Shim for standard library time.time_ns for Python < 3.7. + """ + return int(time.time() * 1000000000.) + + def perf_counter_ns(): + """ + Shim for standard library time.perf_counter for Python < 3.7. + """ + return int(time.perf_counter() * 1000000000.) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/_version.py new/txaio-20.3.1/txaio/_version.py --- old/txaio-18.8.1/txaio/_version.py 2018-08-31 12:05:20.000000000 +0200 +++ new/txaio-20.3.1/txaio/_version.py 2020-03-22 21:06:20.000000000 +0100 @@ -1 +1,27 @@ -__version__ = u'18.8.1' +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### + +__version__ = '20.3.1' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/aio.py new/txaio-20.3.1/txaio/aio.py --- old/txaio-18.8.1/txaio/aio.py 2018-08-31 09:04:36.000000000 +0200 +++ new/txaio-20.3.1/txaio/aio.py 2020-03-22 21:06:20.000000000 +0100 @@ -24,8 +24,15 @@ # ############################################################################### -from __future__ import absolute_import, print_function - +import asyncio +from asyncio import iscoroutine +from asyncio import Future +try: + from types import AsyncGeneratorType +except ImportError: + class AsyncGeneratorType: + pass +import io import os import sys import time @@ -40,55 +47,9 @@ from txaio.interfaces import IFailedFuture, ILogger, log_levels from txaio._iotype import guess_stream_needs_encoding from txaio._common import _BatchedTimer +from txaio import _util from txaio import _Config -import six - -try: - import asyncio - from asyncio import iscoroutine - from asyncio import Future - -except ImportError: - # Trollius >= 0.3 was renamed - # noinspection PyUnresolvedReferences - import trollius as asyncio - from trollius import iscoroutine - from trollius import Future - -try: - from types import AsyncGeneratorType # python 3.5+ -except ImportError: - class AsyncGeneratorType(object): - pass - - -def _create_future_of_loop(loop): - return loop.create_future() - - -def _create_future_directly(loop=None): - return Future(loop=loop) - - -def _create_task_of_loop(res, loop): - return loop.create_task(res) - - -def _create_task_directly(res, loop=None): - return asyncio.Task(res, loop=loop) - - -if sys.version_info >= (3, 4, 2): - _create_task = _create_task_of_loop - if sys.version_info >= (3, 5, 2): - _create_future = _create_future_of_loop - else: - _create_future = _create_future_directly -else: - _create_task = _create_task_directly - _create_future = _create_future_directly - config = _Config() @@ -237,7 +198,7 @@ if isinstance(record.args, dict): fmt = record.args.get( 'log_format', - record.args.get('log_message', u'') + record.args.get('log_message', '') ) message = fmt.format(**record.args) dt = datetime.fromtimestamp(record.args.get('log_time', 0)) @@ -248,7 +209,7 @@ for line in traceback.format_exception(*record.exc_info): message = message + line dt = datetime.fromtimestamp(record.created) - msg = u'{0} {1}{2}'.format( + msg = '{0} {1}{2}'.format( dt.strftime("%Y-%m-%dT%H:%M:%S%z"), message, os.linesep @@ -358,12 +319,12 @@ returns a unicode error-message """ try: - return u'{0}: {1}'.format( + return '{0}: {1}'.format( fail._value.__class__.__name__, str(fail._value), ) except Exception: - return u'Failed to produce failure message for "{0}"'.format(fail) + return 'Failed to produce failure message for "{0}"'.format(fail) def failure_traceback(self, fail): """ @@ -378,7 +339,7 @@ returns a string """ try: - f = six.StringIO() + f = io.StringIO() traceback.print_exception( fail._type, fail.value, @@ -387,13 +348,13 @@ ) return f.getvalue() except Exception: - return u"Failed to format failure traceback for '{0}'".format(fail) + return "Failed to format failure traceback for '{0}'".format(fail) def create_future(self, result=_unspecified, error=_unspecified, canceller=_unspecified): if result is not _unspecified and error is not _unspecified: raise ValueError("Cannot have both result and error.") - f = _create_future(loop=self._config.loop) + f = self._config.loop.create_future() if result is not _unspecified: resolve(f, result) elif error is not _unspecified: @@ -430,7 +391,7 @@ if isinstance(res, Future): return res elif iscoroutine(res): - return _create_task(res, loop=self._config.loop) + return self._config.loop.create_task(res) elif isinstance(res, AsyncGeneratorType): raise RuntimeError( "as_future() received an async generator function; does " @@ -571,3 +532,5 @@ add_callbacks = _default_api.add_callbacks gather = _default_api.gather sleep = _default_api.sleep +time_ns = _util.time_ns +perf_counter_ns = _util.perf_counter_ns diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/interfaces.py new/txaio-20.3.1/txaio/interfaces.py --- old/txaio-18.8.1/txaio/interfaces.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/txaio/interfaces.py 2020-02-04 18:37:55.000000000 +0100 @@ -24,10 +24,7 @@ # ############################################################################### -from __future__ import absolute_import - import abc -import six #: all the log-levels that txaio recognizes log_levels = [ @@ -41,8 +38,7 @@ ] [email protected]_metaclass(abc.ABCMeta) -class IBatchedTimer(object): +class IBatchedTimer(abc.ABC): """ Objects created by :met:`txaio.make_batched_timer` implement this interface. @@ -81,8 +77,7 @@ """ [email protected]_metaclass(abc.ABCMeta) -class ILogger(object): +class ILogger(abc.ABC): """ This defines the methods you can call on the object returned from :meth:`txaio.make_logger` -- although the actual object may have @@ -156,8 +151,7 @@ "log a trace-level message" [email protected]_metaclass(abc.ABCMeta) -class IFailedFuture(object): +class IFailedFuture(abc.ABC): """ This defines the interface for a common object encapsulating a failure from either an asyncio task/coroutine or a Twisted diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/testutil.py new/txaio-20.3.1/txaio/testutil.py --- old/txaio-18.8.1/txaio/testutil.py 2018-08-01 21:55:55.000000000 +0200 +++ new/txaio-20.3.1/txaio/testutil.py 2020-02-04 18:37:55.000000000 +0100 @@ -24,8 +24,6 @@ # ############################################################################### -from __future__ import absolute_import - import txaio from contextlib import contextmanager diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/tx.py new/txaio-20.3.1/txaio/tx.py --- old/txaio-18.8.1/txaio/tx.py 2018-08-31 09:04:36.000000000 +0200 +++ new/txaio-20.3.1/txaio/tx.py 2020-02-04 18:37:55.000000000 +0100 @@ -24,8 +24,7 @@ # ############################################################################### -from __future__ import absolute_import, division, print_function - +import io import os import sys import weakref @@ -44,17 +43,12 @@ from txaio._iotype import guess_stream_needs_encoding from txaio import _Config from txaio._common import _BatchedTimer +from txaio import _util +from twisted.logger import Logger as _Logger, formatEvent, ILogObserver +from twisted.logger import globalLogBeginner, formatTime, LogLevel -import six - -PY3_CORO = False -if six.PY3: - try: - from twisted.internet.defer import ensureDeferred - from asyncio import iscoroutinefunction - PY3_CORO = True - except ImportError: - pass +from twisted.internet.defer import ensureDeferred +from asyncio import iscoroutinefunction using_twisted = True using_asyncio = False @@ -76,59 +70,7 @@ _categories = {} IFailedFuture.register(Failure) - -_NEW_LOGGER = False -try: - # Twisted 15+ - from twisted.logger import Logger as _Logger, formatEvent, ILogObserver - from twisted.logger import globalLogBeginner, formatTime, LogLevel - ILogger.register(_Logger) - _NEW_LOGGER = True - -except ImportError: - # we still support Twisted 12 and 13, which doesn't have new-logger - from zope.interface import Interface - from datetime import datetime - import time - - # provide our own simple versions of what Twisted new-logger does - - class ILogObserver(Interface): - pass - - def formatTime(t): # noqa - dt = datetime.fromtimestamp(t) - return six.u(dt.strftime("%Y-%m-%dT%H:%M:%S%z")) - - def formatEvent(event): # noqa - msg = event['log_format'] - return msg.format(**event) - - class LogLevel: - critical = 'critical' - error = 'error' - warn = 'warn' - info = 'info' - debug = 'debug' - trace = 'trace' - - @classmethod - def lookupByName(cls, name): # noqa - return getattr(cls, name) - - class _Logger(ILogger): - def __init__(self, **kwargs): - self.namespace = kwargs.get('namespace', None) - - def emit(self, level, format='', **kwargs): - kwargs['log_time'] = time.time() - kwargs['log_level'] = level - kwargs['log_format'] = format - kwargs['log_namespace'] = self.namespace - # NOTE: the other loggers are ignoring any log messages - # before start_logging() as well - if _observer: - _observer(kwargs) +ILogger.register(_Logger) def _no_op(*args, **kwargs): @@ -306,7 +248,7 @@ # "Unhandled error in Deferred" -- perhaps this is a Twisted # bug? if event['log_format'] is None: - msg = u'{0} {1}{2}'.format( + msg = '{0} {1}{2}'.format( formatTime(event["log_time"]), failure_format_traceback(event['log_failure']), os.linesep, @@ -318,7 +260,7 @@ # although Logger will already have filtered out unwanted # levels, bare Logger instances from Twisted code won't have. if 'log_level' in event and self._acceptable_level(event['log_level']): - msg = u'{0} {1}{2}'.format( + msg = '{0} {1}{2}'.format( formatTime(event["log_time"]), formatEvent(event), os.linesep, @@ -354,15 +296,10 @@ if out: _observer = _LogObserver(out) - if _NEW_LOGGER: - _observers = [] - if _observer: - _observers.append(_observer) - globalLogBeginner.beginLoggingTo(_observers) - else: - assert out, "out needs to be given a value if using Twisteds before 15.2" - from twisted.python import log - log.startLogging(out) + _observers = [] + if _observer: + _observers.append(_observer) + globalLogBeginner.beginLoggingTo(_observers) _unspecified = object() @@ -379,7 +316,7 @@ returns a unicode error-message """ try: - return u'{0}: {1}'.format( + return '{0}: {1}'.format( fail.value.__class__.__name__, fail.getErrorMessage(), ) @@ -399,11 +336,11 @@ returns a string """ try: - f = six.StringIO() + f = io.StringIO() fail.printTraceback(file=f) return f.getvalue() except Exception: - return u"Failed to format failure traceback for '{0}'".format(fail) + return "Failed to format failure traceback for '{0}'".format(fail) def create_future(self, result=_unspecified, error=_unspecified, canceller=None): if result is not _unspecified and error is not _unspecified: @@ -424,7 +361,7 @@ def as_future(self, fun, *args, **kwargs): # Twisted doesn't automagically deal with coroutines on Py3 - if PY3_CORO and iscoroutinefunction(fun): + if iscoroutinefunction(fun): return ensureDeferred(fun(*args, **kwargs)) return maybeDeferred(fun, *args, **kwargs) @@ -587,3 +524,5 @@ add_callbacks = _default_api.add_callbacks gather = _default_api.gather sleep = _default_api.sleep +time_ns = _util.time_ns +perf_counter_ns = _util.perf_counter_ns diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/with_asyncio.py new/txaio-20.3.1/txaio/with_asyncio.py --- old/txaio-18.8.1/txaio/with_asyncio.py 1970-01-01 01:00:00.000000000 +0100 +++ new/txaio-20.3.1/txaio/with_asyncio.py 2020-02-04 18:37:55.000000000 +0100 @@ -0,0 +1,29 @@ +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### + +import txaio + +txaio.use_asyncio() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio/with_twisted.py new/txaio-20.3.1/txaio/with_twisted.py --- old/txaio-18.8.1/txaio/with_twisted.py 1970-01-01 01:00:00.000000000 +0100 +++ new/txaio-20.3.1/txaio/with_twisted.py 2020-02-04 18:37:55.000000000 +0100 @@ -0,0 +1,29 @@ +############################################################################### +# +# The MIT License (MIT) +# +# Copyright (c) Crossbar.io Technologies GmbH +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +############################################################################### + +import txaio + +txaio.use_twisted() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio.egg-info/PKG-INFO new/txaio-20.3.1/txaio.egg-info/PKG-INFO --- old/txaio-18.8.1/txaio.egg-info/PKG-INFO 2018-08-31 12:06:05.000000000 +0200 +++ new/txaio-20.3.1/txaio.egg-info/PKG-INFO 2020-03-22 21:14:04.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: txaio -Version: 18.8.1 +Version: 20.3.1 Summary: Compatibility API between asyncio/Twisted/Trollius Home-page: https://github.com/crossbario/txaio Author: Crossbar.io Technologies GmbH @@ -30,19 +30,12 @@ Platform support ---------------- - **txaio** runs on CPython 2.7/3.3+ and PyPy 2/3, on top of Twisted or asyncio. Specifically, **txaio** is tested on the following platforms: + **txaio** runs on CPython 3.5+ and PyPy 3, on top of *Twisted* or *asyncio*. Specifically, **txaio** is tested on the following platforms: - **Python 2:** + * CPython 3.5, 3.7 and 3.8 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) + * PyPy 3 on Twisted 18.7, 19.10, trunk and on asyncio (stdlib) - * CPython 2.7 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - * PyPy 2 on Twisted 12.1, 13.2, 15.4, 16.5, trunk and on Trollius 2.0 - - **Python 3:** - - * CPython 3.4 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * CPython 3.5 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * CPython 3.6 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) - * PyPy 3 on Twisted 15.4, 16.5, trunk and on asyncio (stdlib) + > Note: txaio up to version 18.8.1 also supported Python 2.7 and Python 3.4. Beginning with release v20.1.1, txaio only supports Python 3.5+. How it works @@ -97,19 +90,17 @@ Classifier: Intended Audience :: Developers Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -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 :: 3.8 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries Classifier: Topic :: Software Development :: Libraries :: Application Frameworks -Provides-Extra: asyncio -Provides-Extra: twisted +Requires-Python: >=3.5 Provides-Extra: all +Provides-Extra: asyncio Provides-Extra: dev +Provides-Extra: twisted diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio.egg-info/SOURCES.txt new/txaio-20.3.1/txaio.egg-info/SOURCES.txt --- old/txaio-18.8.1/txaio.egg-info/SOURCES.txt 2018-08-31 12:06:05.000000000 +0200 +++ new/txaio-20.3.1/txaio.egg-info/SOURCES.txt 2020-03-22 21:14:04.000000000 +0100 @@ -33,16 +33,20 @@ test/test_legacy_logging.py test/test_logging.py test/test_packaging.py +test/test_util.py test/util.py txaio/__init__.py txaio/_common.py txaio/_iotype.py txaio/_unframework.py +txaio/_util.py txaio/_version.py txaio/aio.py txaio/interfaces.py txaio/testutil.py txaio/tx.py +txaio/with_asyncio.py +txaio/with_twisted.py txaio.egg-info/PKG-INFO txaio.egg-info/SOURCES.txt txaio.egg-info/dependency_links.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/txaio-18.8.1/txaio.egg-info/requires.txt new/txaio-20.3.1/txaio.egg-info/requires.txt --- old/txaio-18.8.1/txaio.egg-info/requires.txt 2018-08-31 12:06:05.000000000 +0200 +++ new/txaio-20.3.1/txaio.egg-info/requires.txt 2020-03-22 21:14:04.000000000 +0100 @@ -1,24 +1,23 @@ -six [all] -zope.interface>=3.6 twisted>=12.1.0 +zope.interface>=3.6 [asyncio] [dev] -wheel -pytest>=2.6.4 -pytest-cov>=1.8.1 +mock==1.3.0 pep8>=1.6.2 -sphinx>=1.2.3 pyenchant>=1.6.6 -sphinxcontrib-spelling>=2.1.2 +pytest-cov>=1.8.1 +pytest>=2.6.4 +sphinx>=1.2.3 sphinx_rtd_theme>=0.1.9 +sphinxcontrib-spelling>=2.1.2 tox>=2.1.1 -mock==1.3.0 twine>=1.6.5 +wheel [twisted] -zope.interface>=3.6 twisted>=12.1.0 +zope.interface>=3.6
