Hello community, here is the log from the commit of package python-irc for openSUSE:Factory checked in at 2019-01-21 11:00:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-irc (Old) and /work/SRC/openSUSE:Factory/.python-irc.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-irc" Mon Jan 21 11:00:06 2019 rev:2 rq:666973 version:17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-irc/python-irc.changes 2018-09-24 13:11:20.693909304 +0200 +++ /work/SRC/openSUSE:Factory/.python-irc.new.28833/python-irc.changes 2019-01-21 11:02:01.963144953 +0100 @@ -1,0 +2,9 @@ +Wed Jan 2 10:14:37 UTC 2019 - Tomáš Chvátal <[email protected]> + +- Sync with python-irclib package -> provides/obsoletes fun +- Add patch fix-lint.patch to fix lint error +- Update version to 17.0: + * Support for py3.7 +- Drop support for python2, dropped by upstream + +------------------------------------------------------------------- Old: ---- irc-16.4.tar.gz New: ---- fix-lint.patch irc-17.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-irc.spec ++++++ --- /var/tmp/diff_new_pack.af13iY/_old 2019-01-21 11:02:02.455144318 +0100 +++ /var/tmp/diff_new_pack.af13iY/_new 2019-01-21 11:02:02.455144318 +0100 @@ -1,7 +1,7 @@ # # spec file for package python-irc # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,96 +12,77 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define _name irc +%define modname irc %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 Name: python-irc -Version: 16.4 +Version: 17.0 Release: 0 -Summary: IRC (Internet Relay Chat) protocol client library for Python -License: MIT -Group: Development/Languages/Python -Url: https://github.com/jaraco/irc -Source: https://files.pythonhosted.org/packages/source/i/%{_name}/%{_name}-%{version}.tar.gz +Summary: A set of Python modules for IRC support +License: LGPL-2.1-or-later +Group: Development/Libraries/Python +URL: https://github.com/jaraco/irc +Source: https://files.pythonhosted.org/packages/source/i/irc/%{modname}-%{version}.tar.gz +Patch0: fix-lint.patch +BuildRequires: %{python_module Sphinx} +BuildRequires: %{python_module jaraco.base} BuildRequires: %{python_module jaraco.collections} -BuildRequires: %{python_module jaraco.functools} BuildRequires: %{python_module jaraco.itertools} BuildRequires: %{python_module jaraco.logging} -BuildRequires: %{python_module jaraco.stream} +BuildRequires: %{python_module jaraco.packaging} BuildRequires: %{python_module jaraco.text} +BuildRequires: %{python_module more-itertools} +BuildRequires: %{python_module pygments} +BuildRequires: %{python_module pytest-runner} BuildRequires: %{python_module pytz} +BuildRequires: %{python_module rst.linker} BuildRequires: %{python_module setuptools_scm} -BuildRequires: %{python_module setuptools} -# SECTION documentation requirements -BuildRequires: dos2unix -BuildRequires: python3-Sphinx -BuildRequires: python3-jaraco.packaging -BuildRequires: python3-rst.linker -# /SECTION -# SECTION test requirements -BuildRequires: %{python_module pytest-flake8} -BuildRequires: %{python_module pytest-runner} -BuildRequires: %{python_module pytest} +BuildRequires: %{python_module six} BuildRequires: %{python_module tempora} -BuildRequires: python2-backports.functools_lru_cache -BuildRequires: python2-backports.unittest_mock -# /SECTION BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-jaraco.collections -Requires: python-jaraco.functools -Requires: python-jaraco.itertools -Requires: python-jaraco.logging -Requires: python-jaraco.stream -Requires: python-jaraco.text -Requires: python-pytz -Requires: python-six +Provides: python-irclib = %{version} +Obsoletes: %{name}-doc +Obsoletes: python-irclib < %{version} BuildArch: noarch +%if 0%{?suse_version} > 1500 +BuildRequires: %{python_module jaraco.stream} +BuildRequires: %{python_module pytest-flake8} +BuildRequires: %{python_module pytest-sugar} +%endif %python_subpackages %description This library is intended to encapsulate the IRC protocol at a quite -low level. It provides an event-driven IRC client framework. It -has a fairly thorough support for the basic IRC protocol, CTCP and -DCC connections. - -%package -n %{name}-doc -Summary: Documentation for %{name} -Group: Documentation/HTML -Requires: %{name} = %{version} -Provides: %{python_module irc-doc = %{version}} - -%description -n %{name}-doc -This package contains documentation files for %{name}. +low level. It provides an event-driven IRC client framework. It has +a fairly thorough support for the basic IRC protocol, CTCP and DCC +connections. %prep -%setup -q -n %{_name}-%{version} -rm -rf irc.egg-info -dos2unix docs/irc.rst docs/irc.tests.rst +%setup -q -n %{modname}-%{version} +%patch0 -p1 +sed -i -e '1s!/env python!/python!' scripts/testbot.py %build %python_build -%{_python_use_flavor python3} -%__python3 setup.py build_sphinx && rm build/sphinx/html/.buildinfo %install %python_install -%python_expand %fdupes -s %{buildroot}%{$python_sitelib} +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%if 0%{?suse_version} > 1500 %check -%{python_expand rm ./build/lib/irc/tests/test_client.py - $python %{_bindir}/py.test build/lib/irc -} +%python_exec setup.py pytest +%endif %files %{python_files} -%{python_sitelib}/* -%doc README.rst %license LICENSE - -%files -n %{name}-doc -%doc build/sphinx/html +%doc CHANGES.rst README.rst +%doc scripts/ +%{python_sitelib}/irc* %changelog ++++++ fix-lint.patch ++++++ Index: irc-17.0/scripts/irccat2-aio.py =================================================================== --- irc-17.0.orig/scripts/irccat2-aio.py +++ irc-17.0/scripts/irccat2-aio.py @@ -70,6 +70,7 @@ def main(): args.server, args.port, args.nickname, password=args.password ) except irc.client.ServerConnectionError as x: + print(x) sys.exit(1) try: ++++++ irc-16.4.tar.gz -> irc-17.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/.flake8 new/irc-17.0/.flake8 --- old/irc-16.4/.flake8 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/.flake8 2018-10-21 22:58:00.000000000 +0200 @@ -4,3 +4,5 @@ W191 # W503 violates spec https://github.com/PyCQA/pycodestyle/issues/513 W503 + # W504 has issues https://github.com/OCA/maintainer-quality-tools/issues/545 + W504 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/.travis.yml new/irc-17.0/.travis.yml --- old/irc-16.4/.travis.yml 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/.travis.yml 2018-10-21 22:58:00.000000000 +0200 @@ -1,11 +1,10 @@ -dist: trusty +dist: xenial sudo: false language: python python: -- 2.7 - 3.4 -- &latest_py3 3.6 +- &latest_py3 3.7 jobs: fast_finish: true @@ -25,11 +24,15 @@ secure: R5wfKa9o9Ah+j0++cY8D/aQI4zhLKWVT0Kctb1b4HQsPzZIJh3xJGsf4MJsmwUHDT18avf2e/f9Z2VAuq7RfsfT8C0LQ90tDUUNtW6vlCmGYldEpeN/O1PSCm1DI3mmFtpkIO2hN9MObYGhI9n7Q1ld7ReXdPUNMC2J3cRr7rmSMTGhxAABgcc0RO1eT6tHq4ZztCYO8UfLWUz09waiBXNWgnHzr/DGUTqnKD/EYL2tUiITJCRPJ8yKgaYyzGuPX65kXJSARMCuixdMJjo5oR5dk9oAwAw+hKmFV8maM3ae65d89NmwHF9svCB7noGgKAZbZmLe3RlC0xEx4tuhr5CP5FzXXrPutCPaUxjqj4Ld12Gl2XiBh0aJsqaPt5TPM0Khy5rQH7ZVZh/vTJ6TYTtfazRD2O/NrS59k6ooQH5Tg5eZ+KsrzPhiA1ANudvm3uENfWWjHv8gURnNso4mkOQYPku1I9M5GXjBE5Vwtahlw3ySUZvkMznBYVqLVB2wDt1LTHUvQ/JKmkdEl1o74x/ICwAhJ/aCJva4Txkf3P3P1u9uIktrJuQALA9u7jVS15W2jumXe6eXubJhrRyfcLjdYbmZSWpF5CpbVoOnxyWkFNSS8fSIngsDIAhgky+NpZthYXx0hMVi20ZZH1qxHgFLDnd7VusHZxNe0Rr3xrDA= distributions: dists skip_cleanup: true - skip_upload_docs: true cache: pip install: - pip install tox tox-venv +before_script: + # Disable IPv6. Ref travis-ci/travis-ci#8361 + - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then + sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6'; + fi script: tox diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/CHANGES.rst new/irc-17.0/CHANGES.rst --- old/irc-16.4/CHANGES.rst 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/CHANGES.rst 2018-10-21 22:58:00.000000000 +0200 @@ -1,6 +1,13 @@ +17.0 +==== + +* Removed ``irc.buffer`` module, deprecated in 14.2. +* #153: Drop support for Python 3.3 and 2.7. + 16.4 ==== +* Long Term Service release for Python 2.7. * #149: ``AioConnection.connect`` moved to coroutine, added disconnect handling for AsyncIO. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/PKG-INFO new/irc-17.0/PKG-INFO --- old/irc-16.4/PKG-INFO 2018-08-01 21:52:21.000000000 +0200 +++ new/irc-17.0/PKG-INFO 2018-10-21 22:58:30.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: irc -Version: 16.4 +Version: 17.0 Summary: IRC (Internet Relay Chat) protocol library for Python Home-page: https://github.com/jaraco/irc Author: Joel Rosdahl @@ -26,6 +26,9 @@ :alt: Join the chat at https://gitter.im/jaraco/irc :target: https://gitter.im/jaraco/irc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + .. image:: https://tidelift.com/badges/github/jaraco/irc + :target: https://tidelift.com/subscription/pkg/pypi-irc?utm_source=pypi-irc&utm_medium=referral&utm_campaign=readme + Full-featured Python IRC library for Python. - `Project home <https://github.com/jaraco/irc>`_ @@ -44,18 +47,6 @@ on the `IRC specifications <http://web.archive.org/web/20160628193730/http://www.irchelp.org/irchelp/rfc/>`_. - Installation - ============ - - IRC requires Python versions specified in the `download pages - <https://pypi.python.org/pypi/irc>`_ and definitely supports Python 3. - - You have several options to install the IRC project. - - * Use ``easy_install irc`` or ``pip install irc`` to grab the latest - version from the cheeseshop (recommended). - * Run ``python setup.py install`` (from the source distribution). - Client Features =============== @@ -68,7 +59,7 @@ connection object. * Messages from an IRC server triggers events, which can be caught by event handlers. - * Multiple opations for reading from and writing to an IRC server: + * Multiple opations for reading from and writing to an IRC server: you can use sockets in an internal ``select()`` loop OR use python3's asyncio event loop * Functions can be registered to execute at specified times by the @@ -102,9 +93,9 @@ and read the source, Luke! * ``irc.client_aio`` - - All the functionality of the above library, but utilizing - Python 3's native asyncio library for the core event loop. + + All the functionality of the above library, but utilizing + Python 3's native asyncio library for the core event loop. Interface/API is otherwise functionally identical to the classes in ``irc.client`` @@ -258,11 +249,9 @@ pass irc.client.ServerConnection.buffer_class = IgnoreErrorsBuffer - On Python 2, it was possible to use the ``buffer.LineBuffer`` itself, which will - pass the raw bytes. On Python 3, the library requires text for message - processing, so a decoding buffer must be used. Therefore, use of the - ``LineBuffer`` is considered deprecated and not supported on Python 3. Clients - should use one of the above techniques for decoding input to text. + The library requires text for message + processing, so a decoding buffer must be used. Clients + must use one of the above techniques for decoding input to text. Notes and Contact Info ====================== @@ -283,8 +272,7 @@ Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.* +Requires-Python: >=3.4 Provides-Extra: docs Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/README.rst new/irc-17.0/README.rst --- old/irc-16.4/README.rst 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/README.rst 2018-10-21 22:58:00.000000000 +0200 @@ -16,6 +16,9 @@ :alt: Join the chat at https://gitter.im/jaraco/irc :target: https://gitter.im/jaraco/irc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge +.. image:: https://tidelift.com/badges/github/jaraco/irc + :target: https://tidelift.com/subscription/pkg/pypi-irc?utm_source=pypi-irc&utm_medium=referral&utm_campaign=readme + Full-featured Python IRC library for Python. - `Project home <https://github.com/jaraco/irc>`_ @@ -34,18 +37,6 @@ on the `IRC specifications <http://web.archive.org/web/20160628193730/http://www.irchelp.org/irchelp/rfc/>`_. -Installation -============ - -IRC requires Python versions specified in the `download pages -<https://pypi.python.org/pypi/irc>`_ and definitely supports Python 3. - -You have several options to install the IRC project. - -* Use ``easy_install irc`` or ``pip install irc`` to grab the latest - version from the cheeseshop (recommended). -* Run ``python setup.py install`` (from the source distribution). - Client Features =============== @@ -58,7 +49,7 @@ connection object. * Messages from an IRC server triggers events, which can be caught by event handlers. -* Multiple opations for reading from and writing to an IRC server: +* Multiple opations for reading from and writing to an IRC server: you can use sockets in an internal ``select()`` loop OR use python3's asyncio event loop * Functions can be registered to execute at specified times by the @@ -92,9 +83,9 @@ and read the source, Luke! * ``irc.client_aio`` - - All the functionality of the above library, but utilizing - Python 3's native asyncio library for the core event loop. + + All the functionality of the above library, but utilizing + Python 3's native asyncio library for the core event loop. Interface/API is otherwise functionally identical to the classes in ``irc.client`` @@ -248,11 +239,9 @@ pass irc.client.ServerConnection.buffer_class = IgnoreErrorsBuffer -On Python 2, it was possible to use the ``buffer.LineBuffer`` itself, which will -pass the raw bytes. On Python 3, the library requires text for message -processing, so a decoding buffer must be used. Therefore, use of the -``LineBuffer`` is considered deprecated and not supported on Python 3. Clients -should use one of the above techniques for decoding input to text. +The library requires text for message +processing, so a decoding buffer must be used. Clients +must use one of the above techniques for decoding input to text. Notes and Contact Info ====================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/appveyor.yml new/irc-17.0/appveyor.yml --- old/irc-16.4/appveyor.yml 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/appveyor.yml 2018-10-21 22:58:00.000000000 +0200 @@ -4,8 +4,7 @@ matrix: - PYTHON: "C:\\Python36-x64" - - PYTHON: "C:\\Python27-x64" - + - PYTHON: "C:\\Python37-x64" install: # symlink python from a directory with a space - "mklink /d \"C:\\Program Files\\Python\" %PYTHON%" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/docs/conf.py new/irc-17.0/docs/conf.py --- old/irc-16.4/docs/conf.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/docs/conf.py 2018-10-21 22:58:00.000000000 +0200 @@ -17,7 +17,7 @@ ), replace=[ dict( - pattern=r'(Issue )?#(?P<issue>\d+)', + pattern=r'(Issue #|\B#)(?P<issue>\d+)', url='{package_url}/issues/{issue}', ), dict( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/bot.py new/irc-17.0/irc/bot.py --- old/irc-16.4/irc/bot.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/bot.py 2018-10-21 22:58:00.000000000 +0200 @@ -7,8 +7,6 @@ write simpler bots. """ -from __future__ import absolute_import - import sys import collections import warnings @@ -16,13 +14,10 @@ import itertools import random -import six import irc.client import irc.modes from .dict import IRCDict -__metaclass__ = type - class ServerSpec: """ @@ -51,8 +46,7 @@ ) [email protected]_metaclass(abc.ABCMeta) -class ReconnectStrategy: +class ReconnectStrategy(metaclass=abc.ABCMeta): """ An abstract base class describing the interface used by SingleServerIRCBot for handling reconnect following diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/buffer.py new/irc-17.0/irc/buffer.py --- old/irc-16.4/irc/buffer.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/buffer.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,23 +0,0 @@ -""" -Backward compatibility module. -""" - -import warnings - -from jaraco.stream.buffer import ( - LineBuffer, - DecodingLineBuffer, - LenientDecodingLineBuffer, -) - -__all__ = [ - 'LineBuffer', - 'DecodingLineBuffer', - 'LenientDecodingLineBuffer', -] - -warnings.warn( - "irc.buffer module will be removed " - "in a future version. Use jaraco.stream.buffer instead.", - DeprecationWarning, -) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/client.py new/irc-17.0/irc/client.py --- old/irc-16.4/irc/client.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/client.py 2018-10-21 22:58:00.000000000 +0200 @@ -47,8 +47,6 @@ .. [IRC specifications] http://www.irchelp.org/irchelp/rfc/ """ -from __future__ import absolute_import, division - import bisect import re import select @@ -63,7 +61,6 @@ import itertools import contextlib -import six import jaraco.functools from jaraco.itertools import always_iterable, infinite_call from jaraco.functools import Throttler @@ -82,8 +79,6 @@ from . import message from . import schedule -__metaclass__ = type - log = logging.getLogger(__name__) # set the version tuple @@ -107,8 +102,7 @@ "Message is too long" [email protected]_metaclass(abc.ABCMeta) -class Connection: +class Connection(metaclass=abc.ABCMeta): """ Base class for IRC connections. """ @@ -1276,7 +1270,7 @@ return str(struct.unpack('>L', packed)[0]) -class NickMask(six.text_type): +class NickMask(str): """ A nickmask (the source of an Event) @@ -1290,14 +1284,12 @@ >>> nm.user 'username' - >>> isinstance(nm, six.text_type) + >>> isinstance(nm, str) True - >>> nm = 'красный[email protected]' - >>> if not six.PY3: nm = nm.decode('utf-8') - >>> nm = NickMask(nm) + >>> nm = NickMask('красный[email protected]') - >>> isinstance(nm.nick, six.text_type) + >>> isinstance(nm.nick, str) True Some messages omit the userhost. In that case, None is returned. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/connection.py new/irc-17.0/irc/connection.py --- old/irc-16.4/irc/connection.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/connection.py 2018-10-21 22:58:00.000000000 +0200 @@ -2,8 +2,6 @@ import socket -__metaclass__ = type - def identity(x): return x diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/ctcp.py new/irc-17.0/irc/ctcp.py --- old/irc-16.4/irc/ctcp.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/ctcp.py 2018-10-21 22:58:00.000000000 +0200 @@ -3,8 +3,6 @@ spec <http://www.irchelp.org/irchelp/rfc/ctcpspec.html>`_. """ -from __future__ import absolute_import - import re LOW_LEVEL_QUOTE = '\x10' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/dict.py new/irc-17.0/irc/dict.py --- old/irc-16.4/irc/dict.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/dict.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,6 +1,5 @@ from __future__ import unicode_literals, absolute_import -import six from jaraco.collections import KeyTransformingDict from . import strings @@ -42,6 +41,6 @@ """ @staticmethod def transform_key(key): - if isinstance(key, six.string_types): + if isinstance(key, str): key = strings.IRCFoldedCase(key) return key diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/features.py new/irc-17.0/irc/features.py --- old/irc-16.4/irc/features.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/features.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,9 +1,5 @@ -from __future__ import absolute_import - import collections -__metaclass__ = type - class FeatureSet: """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/message.py new/irc-17.0/irc/message.py --- old/irc-16.4/irc/message.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/message.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,8 +1,3 @@ -from __future__ import print_function - -__metaclass__ = type - - class Tag: """ An IRC message tag ircv3.net/specs/core/message-tags-3.2.html diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/modes.py new/irc-17.0/irc/modes.py --- old/irc-16.4/irc/modes.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/modes.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,6 +1,3 @@ -from __future__ import absolute_import - - def parse_nick_modes(mode_string): """Parse a nick mode string. @@ -59,10 +56,9 @@ This function never throws an error: >>> import random - >>> import six >>> def random_text(min_len = 3, max_len = 80): ... len = random.randint(min_len, max_len) - ... chars_to_choose = [six.unichr(x) for x in range(0,1024)] + ... chars_to_choose = [chr(x) for x in range(0,1024)] ... chars = (random.choice(chars_to_choose) for x in range(len)) ... return ''.join(chars) >>> def random_texts(min_len = 3, max_len = 80): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/rfc.py new/irc-17.0/irc/rfc.py --- old/irc-16.4/irc/rfc.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/rfc.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,5 +1,3 @@ -from __future__ import absolute_import - import re diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/schedule.py new/irc-17.0/irc/schedule.py --- old/irc-16.4/irc/schedule.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/schedule.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,14 +1,9 @@ import abc -import six - from tempora import schedule -__metaclass__ = type - [email protected]_metaclass(abc.ABCMeta) -class IScheduler: +class IScheduler(metaclass=abc.ABCMeta): @abc.abstractmethod def execute_every(self, period, func): "execute func every period" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/server.py new/irc-17.0/irc/server.py --- old/irc-16.4/irc/server.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/server.py 2018-10-21 22:58:00.000000000 +0200 @@ -44,25 +44,20 @@ # Not Todo (Won't be supported) # - Server linking. -from __future__ import print_function, absolute_import - import argparse import errno import logging import socket import select import re +import socketserver -import six -from six.moves import socketserver import jaraco.logging from jaraco.stream import buffer import irc.client from . import events -__metaclass__ = type - SRV_WELCOME = "Welcome to {__name__} v{irc.client.VERSION}.".format(**locals()) log = logging.getLogger(__name__) @@ -115,13 +110,6 @@ self.send_queue = [] # Messages to send to client (strings) self.channels = {} # Channels the client is in - # On Python 2, use old, clunky syntax to call parent init - if six.PY2: - socketserver.BaseRequestHandler.__init__( - self, request, - client_address, server) - return - super().__init__(request, client_address, server) def handle(self): @@ -180,7 +168,7 @@ '%s :Unknown command' % command) response = handler(params) except AttributeError as e: - log.error(six.text_type(e)) + log.error(str(e)) raise except IRCError as e: response = ':%s %s %s' % (self.server.servername, e.code, e.value) @@ -506,10 +494,6 @@ self.channels = {} self.clients = {} - if six.PY2: - socketserver.TCPServer.__init__(self, *args, **kwargs) - return - super().__init__(*args, **kwargs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/strings.py new/irc-17.0/irc/strings.py --- old/irc-16.4/irc/strings.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/strings.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,5 +1,3 @@ -from __future__ import absolute_import, unicode_literals - import string from jaraco.text import FoldedCase diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/tests/test_bot.py new/irc-17.0/irc/tests/test_bot.py --- old/irc-16.4/irc/tests/test_bot.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/tests/test_bot.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,8 +1,6 @@ import time import threading -import six - import pytest import irc.client @@ -125,9 +123,7 @@ event = irc.client.Event( type=None, source=None, target=None, arguments=['*', '*', 'nick']) - _on_namreply = six.get_unbound_function( - irc.bot.SingleServerIRCBot._on_namreply) - _on_namreply(None, None, event) + irc.bot.SingleServerIRCBot._on_namreply(None, None, event) def test_reconnects_are_stable(self, disconnecting_server): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc/tests/test_client.py new/irc-17.0/irc/tests/test_client.py --- old/irc-16.4/irc/tests/test_client.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/irc/tests/test_client.py 2018-10-21 22:58:00.000000000 +0200 @@ -1,21 +1,16 @@ -from __future__ import print_function - from unittest import mock import pytest -import six import irc.client -__metaclass__ = type - def test_version(): assert 'VERSION' in vars(irc.client) assert 'VERSION_STRING' in vars(irc.client) assert isinstance(irc.client.VERSION, tuple) assert irc.client.VERSION, "No VERSION detected." - assert isinstance(irc.client.VERSION_STRING, six.string_types) + assert isinstance(irc.client.VERSION_STRING, str) @mock.patch('irc.connection.socket') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc.egg-info/PKG-INFO new/irc-17.0/irc.egg-info/PKG-INFO --- old/irc-16.4/irc.egg-info/PKG-INFO 2018-08-01 21:52:20.000000000 +0200 +++ new/irc-17.0/irc.egg-info/PKG-INFO 2018-10-21 22:58:30.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: irc -Version: 16.4 +Version: 17.0 Summary: IRC (Internet Relay Chat) protocol library for Python Home-page: https://github.com/jaraco/irc Author: Joel Rosdahl @@ -26,6 +26,9 @@ :alt: Join the chat at https://gitter.im/jaraco/irc :target: https://gitter.im/jaraco/irc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge + .. image:: https://tidelift.com/badges/github/jaraco/irc + :target: https://tidelift.com/subscription/pkg/pypi-irc?utm_source=pypi-irc&utm_medium=referral&utm_campaign=readme + Full-featured Python IRC library for Python. - `Project home <https://github.com/jaraco/irc>`_ @@ -44,18 +47,6 @@ on the `IRC specifications <http://web.archive.org/web/20160628193730/http://www.irchelp.org/irchelp/rfc/>`_. - Installation - ============ - - IRC requires Python versions specified in the `download pages - <https://pypi.python.org/pypi/irc>`_ and definitely supports Python 3. - - You have several options to install the IRC project. - - * Use ``easy_install irc`` or ``pip install irc`` to grab the latest - version from the cheeseshop (recommended). - * Run ``python setup.py install`` (from the source distribution). - Client Features =============== @@ -68,7 +59,7 @@ connection object. * Messages from an IRC server triggers events, which can be caught by event handlers. - * Multiple opations for reading from and writing to an IRC server: + * Multiple opations for reading from and writing to an IRC server: you can use sockets in an internal ``select()`` loop OR use python3's asyncio event loop * Functions can be registered to execute at specified times by the @@ -102,9 +93,9 @@ and read the source, Luke! * ``irc.client_aio`` - - All the functionality of the above library, but utilizing - Python 3's native asyncio library for the core event loop. + + All the functionality of the above library, but utilizing + Python 3's native asyncio library for the core event loop. Interface/API is otherwise functionally identical to the classes in ``irc.client`` @@ -258,11 +249,9 @@ pass irc.client.ServerConnection.buffer_class = IgnoreErrorsBuffer - On Python 2, it was possible to use the ``buffer.LineBuffer`` itself, which will - pass the raw bytes. On Python 3, the library requires text for message - processing, so a decoding buffer must be used. Therefore, use of the - ``LineBuffer`` is considered deprecated and not supported on Python 3. Clients - should use one of the above techniques for decoding input to text. + The library requires text for message + processing, so a decoding buffer must be used. Clients + must use one of the above techniques for decoding input to text. Notes and Contact Info ====================== @@ -283,8 +272,7 @@ Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.* +Requires-Python: >=3.4 Provides-Extra: docs Provides-Extra: testing diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc.egg-info/SOURCES.txt new/irc-17.0/irc.egg-info/SOURCES.txt --- old/irc-16.4/irc.egg-info/SOURCES.txt 2018-08-01 21:52:20.000000000 +0200 +++ new/irc-17.0/irc.egg-info/SOURCES.txt 2018-10-21 22:58:30.000000000 +0200 @@ -20,7 +20,6 @@ docs/irc.tests.rst irc/__init__.py irc/bot.py -irc/buffer.py irc/client.py irc/client_aio.py irc/connection.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/irc.egg-info/requires.txt new/irc-17.0/irc.egg-info/requires.txt --- old/irc-16.4/irc.egg-info/requires.txt 2018-08-01 21:52:20.000000000 +0200 +++ new/irc-17.0/irc.egg-info/requires.txt 2018-10-21 22:58:30.000000000 +0200 @@ -1,4 +1,3 @@ -six jaraco.collections jaraco.text jaraco.itertools>=1.8 @@ -15,7 +14,7 @@ rst.linker>=1.9 [testing] -pytest>=3.5 +pytest!=3.7.3,>=3.5 pytest-sugar>=0.9.1 collective.checkdocs pytest-flake8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/pyproject.toml new/irc-17.0/pyproject.toml --- old/irc-16.4/pyproject.toml 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/pyproject.toml 2018-10-21 22:58:00.000000000 +0200 @@ -1,2 +1,2 @@ [build-system] -requires = ["setuptools", "wheel", "setuptools_scm>=1.15"] +requires = ["setuptools>=30.3", "wheel", "setuptools_scm>=1.15"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/pytest.ini new/irc-17.0/pytest.ini --- old/irc-16.4/pytest.ini 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/pytest.ini 2018-10-21 22:58:00.000000000 +0200 @@ -2,3 +2,6 @@ norecursedirs=dist build .tox .eggs addopts=--doctest-modules --flake8 doctest_optionflags=ALLOW_UNICODE ELLIPSIS +filterwarnings= + ignore:Possible nested set::pycodestyle:113 + ignore:Using or importing the ABCs::flake8:410 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/setup.cfg new/irc-17.0/setup.cfg --- old/irc-16.4/setup.cfg 2018-08-01 21:52:21.000000000 +0200 +++ new/irc-17.0/setup.cfg 2018-10-21 22:58:30.000000000 +0200 @@ -1,5 +1,4 @@ [aliases] -release = dists upload dists = clean --all sdist bdist_wheel [bdist_wheel] @@ -7,6 +6,7 @@ [metadata] license_file = LICENSE +long_description = file:README.rst [egg_info] tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/setup.py new/irc-17.0/setup.py --- old/irc-16.4/setup.py 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/setup.py 2018-10-21 22:58:00.000000000 +0200 @@ -2,13 +2,8 @@ # Project skeleton maintained at https://github.com/jaraco/skeleton -import io - import setuptools -with io.open('README.rst', encoding='utf-8') as readme: - long_description = readme.read() - name = 'irc' description = 'IRC (Internet Relay Chat) protocol library for Python' nspkg_technique = 'native' @@ -25,7 +20,6 @@ maintainer="Jason R. Coombs", maintainer_email="[email protected]", description=description or name, - long_description=long_description, url="https://github.com/jaraco/" + name, packages=setuptools.find_packages(), include_package_data=True, @@ -33,9 +27,8 @@ name.split('.')[:-1] if nspkg_technique == 'managed' else [] ), - python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*', + python_requires='>=3.4', install_requires=[ - 'six', 'jaraco.collections', 'jaraco.text', 'jaraco.itertools>=1.8', @@ -49,7 +42,7 @@ extras_require={ 'testing': [ # upstream - 'pytest>=3.5', + 'pytest>=3.5,!=3.7.3', 'pytest-sugar>=0.9.1', 'collective.checkdocs', 'pytest-flake8', @@ -74,7 +67,6 @@ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", ], entry_points={ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/irc-16.4/tox.ini new/irc-17.0/tox.ini --- old/irc-16.4/tox.ini 2018-08-01 21:51:55.000000000 +0200 +++ new/irc-17.0/tox.ini 2018-10-21 22:58:00.000000000 +0200 @@ -5,10 +5,8 @@ [testenv] deps = setuptools>=31.0.1 - # workaround for yaml/pyyaml#126 - # git+https://github.com/yaml/pyyaml@master#egg=pyyaml;python_version=="3.7" commands = - py.test {posargs} + pytest {posargs} python setup.py checkdocs usedevelop = True extras = testing
