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
+
+- 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 @@
)
-@six.add_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"
-@six.add_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 = 'красный!red@yahoo.ru'
- >>> if not six.PY3: nm = nm.decode('utf-8')
- >>> nm = NickMask(nm)
+ >>> nm = NickMask('красный!red@yahoo.ru')
- >>> 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
-
-@six.add_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="jaraco@jaraco.com",
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