Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-frozenlist for 
openSUSE:Factory checked in at 2022-01-25 17:35:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-frozenlist (Old)
 and      /work/SRC/openSUSE:Factory/.python-frozenlist.new.1938 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-frozenlist"

Tue Jan 25 17:35:45 2022 rev:2 rq:948240 version:1.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-frozenlist/python-frozenlist.changes      
2021-12-16 02:01:04.551638072 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-frozenlist.new.1938/python-frozenlist.changes
    2022-01-25 17:36:36.058114973 +0100
@@ -1,0 +2,7 @@
+Sun Jan 23 16:23:05 UTC 2022 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 1.3.0:
+  * Do not install C sources with binary distributions.
+  * Dropped Python 3.6 support
+
+-------------------------------------------------------------------

Old:
----
  frozenlist-1.2.0.tar.gz

New:
----
  frozenlist-1.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-frozenlist.spec ++++++
--- /var/tmp/diff_new_pack.fwcMmt/_old  2022-01-25 17:36:36.646110923 +0100
+++ /var/tmp/diff_new_pack.fwcMmt/_new  2022-01-25 17:36:36.650110896 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-frozenlist
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-frozenlist
-Version:        1.2.0
+Version:        1.3.0
 Release:        0
 Summary:        Python list-like structure which implements MutableSequence
 License:        Apache-2.0
@@ -45,9 +45,7 @@
 
 %install
 %python_install
-%{python_expand rm %{buildroot}%{$python_sitearch}/frozenlist/_frozenlist.c
-%fdupes %{buildroot}%{$python_sitearch}
-}
+%python_expand %fdupes %{buildroot}%{$python_sitearch}
 
 %check
 %pytest_arch

++++++ frozenlist-1.2.0.tar.gz -> frozenlist-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/CHANGES.rst 
new/frozenlist-1.3.0/CHANGES.rst
--- old/frozenlist-1.2.0/CHANGES.rst    2021-10-16 09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/CHANGES.rst    2022-01-18 15:55:45.000000000 +0100
@@ -14,6 +14,26 @@
 
 .. towncrier release notes start
 
+1.3.0 (2022-01-18)
+==================
+
+Bugfixes
+--------
+
+- Do not install C sources with binary distributions.
+  `#250 <https://github.com/aio-libs/frozenlist/issues/250>`_
+
+
+Deprecations and Removals
+-------------------------
+
+- Dropped Python 3.6 support
+  `#274 <https://github.com/aio-libs/frozenlist/issues/274>`_
+
+
+----
+
+
 1.2.0 (2021-10-16)
 ==================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/PKG-INFO 
new/frozenlist-1.3.0/PKG-INFO
--- old/frozenlist-1.2.0/PKG-INFO       2021-10-16 09:33:29.423939200 +0200
+++ new/frozenlist-1.3.0/PKG-INFO       2022-01-18 15:56:09.691456300 +0100
@@ -1,12 +1,10 @@
 Metadata-Version: 2.1
 Name: frozenlist
-Version: 1.2.0
+Version: 1.3.0
 Summary: A list-like structure which implements collections.abc.MutableSequence
 Home-page: https://github.com/aio-libs/frozenlist
-Author: Nikolay Kim
-Author-email: fafhr...@gmail.com
-Maintainer: Martijn Pieters <m...@zopatista.com>
-Maintainer-email: aio-l...@googlegroups.com
+Maintainer: aiohttp team <t...@aiohttp.org>
+Maintainer-email: t...@aiohttp.org
 License: Apache 2
 Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby
 Project-URL: CI: Github Actions, https://github.com/aio-libs/frozenlist/actions
@@ -19,15 +17,15 @@
 Classifier: Intended Audience :: Developers
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: MacOS :: MacOS X
 Classifier: Operating System :: Microsoft :: Windows
-Requires-Python: >=3.6
+Requires-Python: >=3.7
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 
@@ -151,78 +149,4 @@
 
 .. _GitHub: https://github.com/aio-libs/frozenlist
 
-=========
-Changelog
-=========
-
-..
-    You should *NOT* be adding new change log entries to this file, this
-    file is managed by towncrier. You *may* edit previous change logs to
-    fix problems like typo corrections or such.
-    To add a new change log entry, please see
-    https://pip.pypa.io/en/latest/development/contributing/#news-entries
-    we named the news folder "changes".
-
-    WARNING: Don't drop the next directive!
-
-.. towncrier release notes start
-
-1.2.0 (2021-10-16)
-==================
-
-Features
---------
-
-- ``FrozenList`` now supports being used as a generic type as per PEP 585, 
e.g. ``frozen_int_list: FrozenList[int]`` (requires Python 3.9 or newer).
-  `#172 <https://github.com/aio-libs/frozenlist/issues/172>`_
-- Added support for Python 3.10.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-- Started shipping platform-specific wheels with the ``musl`` tag targeting 
typical Alpine Linux runtimes.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-- Started shipping platform-specific arm64 wheels for Apple Silicon.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-
-
-----
-
-
-1.1.1 (2020-11-14)
-==================
-
-Bugfixes
---------
-
-- Provide x86 Windows wheels.
-  `#169 <https://github.com/aio-libs/frozenlist/issues/169>`_
-
-
-----
-
-
-1.1.0 (2020-10-13)
-==================
-
-Features
---------
-
-- Add support for hashing of a frozen list.
-  `#136 <https://github.com/aio-libs/frozenlist/issues/136>`_
-
-- Support Python 3.8 and 3.9.
-
-- Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` 
architectures on
-  Linux as well as ``x86_64``.
-
-
-----
-
-
-1.0.0 (2019-11-09)
-==================
-
-Deprecations and Removals
--------------------------
-
-- Dropped support for Python 3.5; only 3.6, 3.7 and 3.8 are supported going 
forward.
-  `#24 <https://github.com/aio-libs/frozenlist/issues/24>`_
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/docs/conf.py 
new/frozenlist-1.3.0/docs/conf.py
--- old/frozenlist-1.2.0/docs/conf.py   2021-10-16 09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/docs/conf.py   2022-01-18 15:55:45.000000000 +0100
@@ -1,5 +1,4 @@
 #!/usr/bin/env python3
-# -*- coding: utf-8 -*-
 #
 # frozenlist documentation build configuration file, created by
 # sphinx-quickstart on Wed Mar  5 12:35:35 2014.
@@ -19,18 +18,22 @@
 import sys
 
 _docs_path = os.path.dirname(__file__)
-_version_path = os.path.abspath(os.path.join(_docs_path,
-                                             '..', 'frozenlist', 
'__init__.py'))
-with io.open(_version_path, 'r', encoding='latin1') as fp:
+_version_path = os.path.abspath(
+    os.path.join(_docs_path, "..", "frozenlist", "__init__.py")
+)
+with open(_version_path, encoding="latin1") as fp:
     try:
-        _version_info = re.search(r'^__version__ = "'
-                                  r"(?P<major>\d+)"
-                                  r"\.(?P<minor>\d+)"
-                                  r"\.(?P<patch>\d+)"
-                                  r'(?P<tag>.*)?"$',
-                                  fp.read(), re.M).groupdict()
+        _version_info = re.search(
+            r'^__version__ = "'
+            r"(?P<major>\d+)"
+            r"\.(?P<minor>\d+)"
+            r"\.(?P<patch>\d+)"
+            r'(?P<tag>.*)?"$',
+            fp.read(),
+            re.M,
+        ).groupdict()
     except IndexError:
-        raise RuntimeError('Unable to determine version.')
+        raise RuntimeError("Unable to determine version.")
 
 
 # -- General configuration ------------------------------------------------
@@ -42,48 +45,48 @@
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'sphinx.ext.viewcode',
-    'sphinx.ext.intersphinx',
+    "sphinx.ext.viewcode",
+    "sphinx.ext.intersphinx",
 ]
 
 
 try:
     import sphinxcontrib.spelling  # noqa
-    extensions.append('sphinxcontrib.spelling')
+
+    extensions.append("sphinxcontrib.spelling")
 except ImportError:
     pass
 
 
 intersphinx_mapping = {
-    'python': ('http://docs.python.org/3', None),
-    'aiohttp':
-        ('https://docs.aiohttp.org/en/stable/', None),
+    "python": ("http://docs.python.org/3";, None),
+    "aiohttp": ("https://docs.aiohttp.org/en/stable/";, None),
 }
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
 
 # The suffix of source filenames.
-source_suffix = '.rst'
+source_suffix = ".rst"
 
 # The encoding of source files.
 # source_encoding = 'utf-8-sig'
 
 # The master toctree document.
-master_doc = 'index'
+master_doc = "index"
 
 # General information about the project.
-project = 'frozenlist'
-copyright = '2013-2019, frozenlist contributors'
+project = "frozenlist"
+copyright = "2013-2019, frozenlist contributors"
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = '{major}.{minor}'.format(**_version_info)
+version = "{major}.{minor}".format(**_version_info)
 # The full version, including alpha/beta/rc tags.
-release = '{major}.{minor}.{patch}{tag}'.format(**_version_info)
+release = "{major}.{minor}.{patch}{tag}".format(**_version_info)
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -97,7 +100,7 @@
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
-exclude_patterns = ['_build']
+exclude_patterns = ["_build"]
 
 # The reST default role (used for this markup: `text`) to use for all
 # documents.
@@ -118,7 +121,7 @@
 # pygments_style = 'sphinx'
 
 # The default language to highlight source code in.
-highlight_language = 'python3'
+highlight_language = "python3"
 
 # A list of ignored prefixes for module index sorting.
 # modindex_common_prefix = []
@@ -131,40 +134,52 @@
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-html_theme = 'aiohttp_theme'
+html_theme = "aiohttp_theme"
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
 html_theme_options = {
-    'logo': None,
-    'description': 'A list-like structure which implements 
collections.abc.MutableSequence',
-    'canonical_url': 'http://frozenlist.readthedocs.org/en/stable/',
-    'github_user': 'aio-libs',
-    'github_repo': 'frozenlist',
-    'github_button': True,
-    'github_type': 'star',
-    'github_banner': True,
-    'badges': [{'image': 
'https://github.com/aio-libs/frozenlist/workflows/CI/badge.svg',
-                'target': 'https://github.com/aio-libs/frozenlist/actions',
-                'height': '20',
-                'alt': 'Github CI status for master branch'},
-               {'image': 
'https://codecov.io/github/aio-libs/frozenlist/coverage.svg?branch=master',
-               'target': 'https://codecov.io/github/aio-libs/frozenlist',
-                'height': '20',
-                'alt': 'Code coverage status'},
-               {'image': 'https://badge.fury.io/py/frozenlist.svg',
-               'target': 'https://badge.fury.io/py/frozenlist',
-                'height': '20',
-                'alt': 'Latest PyPI package version'},
-               {'image': 
'https://img.shields.io/discourse/topics?server=https%3A%2F%2Faio-libs.discourse.group%2F',
-               'target': 'https://aio-libs.discourse.group/',
-                'height': '20',
-                'alt': 'Discourse group for io-libs'},
-               {'image': 'https://badges.gitter.im/Join%20Chat.svg',
-                'target': 'https://gitter.im/aio-libs/Lobby',
-                'height': '20',
-                'alt': 'Chat on Gitter'}],
+    "logo": None,
+    "description": "A list-like structure which implements 
collections.abc.MutableSequence",
+    "canonical_url": "http://frozenlist.readthedocs.org/en/stable/";,
+    "github_user": "aio-libs",
+    "github_repo": "frozenlist",
+    "github_button": True,
+    "github_type": "star",
+    "github_banner": True,
+    "badges": [
+        {
+            "image": 
"https://github.com/aio-libs/frozenlist/workflows/CI/badge.svg";,
+            "target": "https://github.com/aio-libs/frozenlist/actions";,
+            "height": "20",
+            "alt": "Github CI status for master branch",
+        },
+        {
+            "image": 
"https://codecov.io/github/aio-libs/frozenlist/coverage.svg?branch=master";,
+            "target": "https://codecov.io/github/aio-libs/frozenlist";,
+            "height": "20",
+            "alt": "Code coverage status",
+        },
+        {
+            "image": "https://badge.fury.io/py/frozenlist.svg";,
+            "target": "https://badge.fury.io/py/frozenlist";,
+            "height": "20",
+            "alt": "Latest PyPI package version",
+        },
+        {
+            "image": 
"https://img.shields.io/discourse/topics?server=https%3A%2F%2Faio-libs.discourse.group%2F";,
+            "target": "https://aio-libs.discourse.group/";,
+            "height": "20",
+            "alt": "Discourse group for io-libs",
+        },
+        {
+            "image": "https://badges.gitter.im/Join%20Chat.svg";,
+            "target": "https://gitter.im/aio-libs/Lobby";,
+            "height": "20",
+            "alt": "Chat on Gitter",
+        },
+    ],
 }
 
 # Add any paths that contain custom themes here, relative to this directory.
@@ -206,8 +221,10 @@
 
 # Custom sidebar templates, maps document names to template names.
 html_sidebars = {
-    '**': [
-        'about.html', 'navigation.html', 'searchbox.html',
+    "**": [
+        "about.html",
+        "navigation.html",
+        "searchbox.html",
     ]
 }
 
@@ -242,7 +259,7 @@
 # html_file_suffix = None
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'frozenlistdoc'
+htmlhelp_basename = "frozenlistdoc"
 
 
 # -- Options for LaTeX output ---------------------------------------------
@@ -250,10 +267,8 @@
 latex_elements = {
     # The paper size ('letterpaper' or 'a4paper').
     # 'papersize': 'letterpaper',
-
     # The font size ('10pt', '11pt' or '12pt').
     # 'pointsize': '10pt',
-
     # Additional stuff for the LaTeX preamble.
     # 'preamble': '',
 }
@@ -262,8 +277,13 @@
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    ('index', 'frozenlist.tex', 'frozenlist Documentation',
-     'frozenlist contributors', 'manual'),
+    (
+        "index",
+        "frozenlist.tex",
+        "frozenlist Documentation",
+        "frozenlist contributors",
+        "manual",
+    ),
 ]
 
 # The name of an image file (relative to this directory) to place at the top of
@@ -291,10 +311,7 @@
 
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
-man_pages = [
-    ('index', 'frozenlist', 'frozenlist Documentation',
-     ['frozenlist'], 1)
-]
+man_pages = [("index", "frozenlist", "frozenlist Documentation", 
["frozenlist"], 1)]
 
 # If true, show URL addresses after external links.
 # man_show_urls = False
@@ -306,9 +323,15 @@
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    ('index', 'frozenlist', 'frozenlist Documentation',
-     'frozenlist contributors', 'frozenlist', 'One line description of 
project.',
-     'Miscellaneous'),
+    (
+        "index",
+        "frozenlist",
+        "frozenlist Documentation",
+        "frozenlist contributors",
+        "frozenlist",
+        "One line description of project.",
+        "Miscellaneous",
+    ),
 ]
 
 # Documents to append as an appendix to all manuals.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/docs/index.rst 
new/frozenlist-1.3.0/docs/index.rst
--- old/frozenlist-1.2.0/docs/index.rst 2021-10-16 09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/docs/index.rst 2022-01-18 15:55:45.000000000 +0100
@@ -95,4 +95,4 @@
 * :ref:`search`
 
 
-.. _GitHub: https://github.com/aio-libs/frozenlist
\ No newline at end of file
+.. _GitHub: https://github.com/aio-libs/frozenlist
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist/__init__.py 
new/frozenlist-1.3.0/frozenlist/__init__.py
--- old/frozenlist-1.2.0/frozenlist/__init__.py 2021-10-16 09:33:18.000000000 
+0200
+++ new/frozenlist-1.3.0/frozenlist/__init__.py 2022-01-18 15:55:45.000000000 
+0100
@@ -5,11 +5,9 @@
 from functools import total_ordering
 from typing import Tuple, Type
 
-__version__ = "1.2.0"
+__version__ = "1.3.0"
 
-__all__ = (
-    "FrozenList", "PyFrozenList"
-)  # type: Tuple[str, ...]
+__all__ = ("FrozenList", "PyFrozenList")  # type: Tuple[str, ...]
 
 
 NO_EXTENSIONS = bool(os.environ.get("FROZENLIST_NO_EXTENSIONS"))  # type: bool
@@ -23,6 +21,7 @@
     if sys.version_info >= (3, 9):
         __class_getitem__ = classmethod(types.GenericAlias)
     else:
+
         @classmethod
         def __class_getitem__(cls: Type["FrozenList"]) -> Type["FrozenList"]:
             return cls
@@ -76,8 +75,7 @@
         self._items.insert(pos, item)
 
     def __repr__(self):
-        return "<FrozenList(frozen={}, {!r})>".format(self._frozen,
-                                                      self._items)
+        return f"<FrozenList(frozen={self._frozen}, {self._items!r})>"
 
     def __hash__(self):
         if self._frozen:
@@ -91,6 +89,7 @@
 
 try:
     from ._frozenlist import FrozenList as CFrozenList  # type: ignore
+
     if not NO_EXTENSIONS:  # pragma: no cover
         FrozenList = CFrozenList  # type: ignore
 except ImportError:  # pragma: no cover
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist/__init__.pyi 
new/frozenlist-1.3.0/frozenlist/__init__.pyi
--- old/frozenlist-1.2.0/frozenlist/__init__.pyi        2021-10-16 
09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/frozenlist/__init__.pyi        2022-01-18 
15:55:45.000000000 +0100
@@ -10,56 +10,38 @@
     overload,
 )
 
-_T = TypeVar('_T')
+_T = TypeVar("_T")
 _Arg = Union[List[_T], Iterable[_T]]
 
-
 class FrozenList(MutableSequence[_T], Generic[_T]):
-
-    def __init__(self, items: Optional[_Arg[_T]]=None) -> None: ...
-
+    def __init__(self, items: Optional[_Arg[_T]] = None) -> None: ...
     @property
     def frozen(self) -> bool: ...
-
     def freeze(self) -> None: ...
-
     @overload
     def __getitem__(self, i: int) -> _T: ...
-
     @overload
     def __getitem__(self, s: slice) -> FrozenList[_T]: ...
-
     @overload
     def __setitem__(self, i: int, o: _T) -> None: ...
-
     @overload
     def __setitem__(self, s: slice, o: Iterable[_T]) -> None: ...
-
     @overload
     def __delitem__(self, i: int) -> None: ...
-
     @overload
     def __delitem__(self, i: slice) -> None: ...
-
     def __len__(self) -> int: ...
-
     def __iter__(self) -> Iterator[_T]: ...
-
     def __reversed__(self) -> Iterator[_T]: ...
-
     def __eq__(self, other: object) -> bool: ...
     def __le__(self, other: FrozenList[_T]) -> bool: ...
     def __ne__(self, other: object) -> bool: ...
     def __lt__(self, other: FrozenList[_T]) -> bool: ...
     def __ge__(self, other: FrozenList[_T]) -> bool: ...
     def __gt__(self, other: FrozenList[_T]) -> bool: ...
-
     def insert(self, pos: int, item: _T) -> None: ...
-
     def __repr__(self) -> str: ...
-
     def __hash__(self) -> int: ...
 
-
 # types for C accelerators are the same
 CFrozenList = PyFrozenList = FrozenList
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist/_frozenlist.c 
new/frozenlist-1.3.0/frozenlist/_frozenlist.c
--- old/frozenlist-1.2.0/frozenlist/_frozenlist.c       2021-10-16 
09:33:28.000000000 +0200
+++ new/frozenlist-1.3.0/frozenlist/_frozenlist.c       2022-01-18 
15:56:06.000000000 +0100
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.29.24 */
+/* Generated by Cython 0.29.26 */
 
 #ifndef PY_SSIZE_T_CLEAN
 #define PY_SSIZE_T_CLEAN
@@ -9,8 +9,8 @@
 #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && 
PY_VERSION_HEX < 0x03030000)
     #error Cython requires Python 2.6+ or Python 3.3+.
 #else
-#define CYTHON_ABI "0_29_24"
-#define CYTHON_HEX_VERSION 0x001D18F0
+#define CYTHON_ABI "0_29_26"
+#define CYTHON_HEX_VERSION 0x001D1AF0
 #define CYTHON_FUTURE_DIVISION 1
 #include <stddef.h>
 #ifndef offsetof
@@ -157,7 +157,7 @@
   #ifndef CYTHON_USE_UNICODE_INTERNALS
     #define CYTHON_USE_UNICODE_INTERNALS 1
   #endif
-  #if PY_VERSION_HEX < 0x030300F0
+  #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
     #undef CYTHON_USE_UNICODE_WRITER
     #define CYTHON_USE_UNICODE_WRITER 0
   #elif !defined(CYTHON_USE_UNICODE_WRITER)
@@ -176,7 +176,7 @@
     #define CYTHON_FAST_THREAD_STATE 1
   #endif
   #ifndef CYTHON_FAST_PYCALL
-    #define CYTHON_FAST_PYCALL 1
+    #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030B00A1)
   #endif
   #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
     #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000)
@@ -195,7 +195,9 @@
 #define CYTHON_FAST_PYCCALL  (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 
0x030600B1)
 #endif
 #if CYTHON_USE_PYLONG_INTERNALS
-  #include "longintrepr.h"
+  #if PY_MAJOR_VERSION < 3
+    #include "longintrepr.h"
+  #endif
   #undef SHIFT
   #undef BASE
   #undef MASK
@@ -312,9 +314,68 @@
   #define __Pyx_DefaultClassType PyClass_Type
 #else
   #define __Pyx_BUILTIN_MODULE_NAME "builtins"
-#if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2
-  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, 
fline, lnos)\
-          PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, 
fline, lnos)
+  #define __Pyx_DefaultClassType PyType_Type
+#if PY_VERSION_HEX >= 0x030B00A1
+    static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, 
int s, int f,
+                                                    PyObject *code, PyObject 
*c, PyObject* n, PyObject *v,
+                                                    PyObject *fv, PyObject 
*cell, PyObject* fn,
+                                                    PyObject *name, int fline, 
PyObject *lnos) {
+        PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, 
*kwonlyargcount=NULL;
+        PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, 
*call_result=NULL, *empty=NULL;
+        const char *fn_cstr=NULL;
+        const char *name_cstr=NULL;
+        PyCodeObject* co=NULL;
+        PyObject *type, *value, *traceback;
+        PyErr_Fetch(&type, &value, &traceback);
+        if (!(kwds=PyDict_New())) goto end;
+        if (!(argcount=PyLong_FromLong(a))) goto end;
+        if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end;
+        if (!(posonlyargcount=PyLong_FromLong(0))) goto end;
+        if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) 
!= 0) goto end;
+        if (!(kwonlyargcount=PyLong_FromLong(k))) goto end;
+        if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 
0) goto end;
+        if (!(nlocals=PyLong_FromLong(l))) goto end;
+        if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end;
+        if (!(stacksize=PyLong_FromLong(s))) goto end;
+        if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto 
end;
+        if (!(flags=PyLong_FromLong(f))) goto end;
+        if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end;
+        if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end;
+        if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end;
+        if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end;
+        if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end;
+        if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) 
goto cleanup_code_too;
+        if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately 
__pyx_empty_tuple isn't available here
+        if (!(call_result = PyObject_Call(replace, empty, kwds))) goto 
cleanup_code_too;
+        Py_XDECREF((PyObject*)co);
+        co = (PyCodeObject*)call_result;
+        call_result = NULL;
+        if (0) {
+            cleanup_code_too:
+            Py_XDECREF((PyObject*)co);
+            co = NULL;
+        }
+        end:
+        Py_XDECREF(kwds);
+        Py_XDECREF(argcount);
+        Py_XDECREF(posonlyargcount);
+        Py_XDECREF(kwonlyargcount);
+        Py_XDECREF(nlocals);
+        Py_XDECREF(stacksize);
+        Py_XDECREF(replace);
+        Py_XDECREF(call_result);
+        Py_XDECREF(empty);
+        if (type) {
+            PyErr_Restore(type, value, traceback);
+        }
+        return co;
+    }
 #else
   #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, 
fline, lnos)\
           PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, 
lnos)
@@ -552,10 +613,10 @@
 #if PY_VERSION_HEX < 0x030200A4
   typedef long Py_hash_t;
   #define __Pyx_PyInt_FromHash_t PyInt_FromLong
-  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
+  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsHash_t
 #else
   #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
-  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
+  #define __Pyx_PyInt_AsHash_t   __Pyx_PyIndex_AsSsize_t
 #endif
 #if PY_MAJOR_VERSION >= 3
   #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), 
PyMethod_New(func, self)) : __Pyx_NewRef(func))
@@ -711,6 +772,7 @@
     (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : 
PySequence_Tuple(obj))
 static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
 static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
 #if CYTHON_ASSUME_SAFE_MACROS
 #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? 
PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
 #else
@@ -1028,6 +1090,7 @@
 #ifndef Py_MEMBER_SIZE
 #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
 #endif
+#if CYTHON_FAST_PYCALL
   static size_t __pyx_pyframe_localsplus_offset = 0;
   #include "frameobject.h"
   #define __Pxy_PyFrame_Initialize_Offsets()\
@@ -1035,6 +1098,7 @@
      (void)(__pyx_pyframe_localsplus_offset = 
((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, 
f_localsplus)))
   #define __Pyx_PyFrame_GetLocalsplus(frame)\
     (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) 
+ __pyx_pyframe_localsplus_offset))
+#endif // CYTHON_FAST_PYCALL
 #endif
 
 /* PyObjectCallMethO.proto */
@@ -4791,6 +4855,9 @@
   #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000
   0, /*tp_print*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM+0 >= 0x06000000
+  0, /*tp_pypy_flags*/
+  #endif
 };
 
 static PyMethodDef __pyx_methods[] = {
@@ -6883,7 +6950,7 @@
     }
     if (!use_cline) {
         c_line = 0;
-        PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, 
Py_False);
+        (void) PyObject_SetAttr(__pyx_cython_runtime, 
__pyx_n_s_cline_in_traceback, Py_False);
     }
     else if (use_cline == Py_False || (use_cline != Py_True && 
PyObject_Not(use_cline) != 0)) {
         c_line = 0;
@@ -6980,30 +7047,31 @@
 static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
             const char *funcname, int c_line,
             int py_line, const char *filename) {
-    PyCodeObject *py_code = 0;
-    PyObject *py_srcfile = 0;
-    PyObject *py_funcname = 0;
+    PyCodeObject *py_code = NULL;
+    PyObject *py_funcname = NULL;
     #if PY_MAJOR_VERSION < 3
+    PyObject *py_srcfile = NULL;
     py_srcfile = PyString_FromString(filename);
-    #else
-    py_srcfile = PyUnicode_FromString(filename);
-    #endif
     if (!py_srcfile) goto bad;
+    #endif
     if (c_line) {
         #if PY_MAJOR_VERSION < 3
         py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, 
__pyx_cfilenm, c_line);
+        if (!py_funcname) goto bad;
         #else
         py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, 
__pyx_cfilenm, c_line);
+        if (!py_funcname) goto bad;
+        funcname = PyUnicode_AsUTF8(py_funcname);
+        if (!funcname) goto bad;
         #endif
     }
     else {
         #if PY_MAJOR_VERSION < 3
         py_funcname = PyString_FromString(funcname);
-        #else
-        py_funcname = PyUnicode_FromString(funcname);
+        if (!py_funcname) goto bad;
         #endif
     }
-    if (!py_funcname) goto bad;
+    #if PY_MAJOR_VERSION < 3
     py_code = __Pyx_PyCode_New(
         0,
         0,
@@ -7022,11 +7090,16 @@
         __pyx_empty_bytes  /*PyObject *lnotab*/
     );
     Py_DECREF(py_srcfile);
-    Py_DECREF(py_funcname);
+    #else
+    py_code = PyCode_NewEmpty(filename, funcname, py_line);
+    #endif
+    Py_XDECREF(py_funcname);  // XDECREF since it's only set on Py3 if cline
     return py_code;
 bad:
-    Py_XDECREF(py_srcfile);
     Py_XDECREF(py_funcname);
+    #if PY_MAJOR_VERSION < 3
+    Py_XDECREF(py_srcfile);
+    #endif
     return NULL;
 }
 static void __Pyx_AddTraceback(const char *funcname, int c_line,
@@ -7912,6 +7985,23 @@
   Py_DECREF(x);
   return ival;
 }
+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
+  if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
+    return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
+#if PY_MAJOR_VERSION < 3
+  } else if (likely(PyInt_CheckExact(o))) {
+    return PyInt_AS_LONG(o);
+#endif
+  } else {
+    Py_ssize_t ival;
+    PyObject *x;
+    x = PyNumber_Index(o);
+    if (!x) return -1;
+    ival = PyInt_AsLong(x);
+    Py_DECREF(x);
+    return ival;
+  }
+}
 static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
   return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist/py.typed 
new/frozenlist-1.3.0/frozenlist/py.typed
--- old/frozenlist-1.2.0/frozenlist/py.typed    2021-10-16 09:33:18.000000000 
+0200
+++ new/frozenlist-1.3.0/frozenlist/py.typed    2022-01-18 15:55:45.000000000 
+0100
@@ -1 +1 @@
-Marker
\ No newline at end of file
+Marker
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist.egg-info/PKG-INFO 
new/frozenlist-1.3.0/frozenlist.egg-info/PKG-INFO
--- old/frozenlist-1.2.0/frozenlist.egg-info/PKG-INFO   2021-10-16 
09:33:29.000000000 +0200
+++ new/frozenlist-1.3.0/frozenlist.egg-info/PKG-INFO   2022-01-18 
15:56:09.000000000 +0100
@@ -1,12 +1,10 @@
 Metadata-Version: 2.1
 Name: frozenlist
-Version: 1.2.0
+Version: 1.3.0
 Summary: A list-like structure which implements collections.abc.MutableSequence
 Home-page: https://github.com/aio-libs/frozenlist
-Author: Nikolay Kim
-Author-email: fafhr...@gmail.com
-Maintainer: Martijn Pieters <m...@zopatista.com>
-Maintainer-email: aio-l...@googlegroups.com
+Maintainer: aiohttp team <t...@aiohttp.org>
+Maintainer-email: t...@aiohttp.org
 License: Apache 2
 Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby
 Project-URL: CI: Github Actions, https://github.com/aio-libs/frozenlist/actions
@@ -19,15 +17,15 @@
 Classifier: Intended Audience :: Developers
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: MacOS :: MacOS X
 Classifier: Operating System :: Microsoft :: Windows
-Requires-Python: >=3.6
+Requires-Python: >=3.7
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 
@@ -151,78 +149,4 @@
 
 .. _GitHub: https://github.com/aio-libs/frozenlist
 
-=========
-Changelog
-=========
-
-..
-    You should *NOT* be adding new change log entries to this file, this
-    file is managed by towncrier. You *may* edit previous change logs to
-    fix problems like typo corrections or such.
-    To add a new change log entry, please see
-    https://pip.pypa.io/en/latest/development/contributing/#news-entries
-    we named the news folder "changes".
-
-    WARNING: Don't drop the next directive!
-
-.. towncrier release notes start
-
-1.2.0 (2021-10-16)
-==================
-
-Features
---------
-
-- ``FrozenList`` now supports being used as a generic type as per PEP 585, 
e.g. ``frozen_int_list: FrozenList[int]`` (requires Python 3.9 or newer).
-  `#172 <https://github.com/aio-libs/frozenlist/issues/172>`_
-- Added support for Python 3.10.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-- Started shipping platform-specific wheels with the ``musl`` tag targeting 
typical Alpine Linux runtimes.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-- Started shipping platform-specific arm64 wheels for Apple Silicon.
-  `#227 <https://github.com/aio-libs/frozenlist/issues/227>`_
-
-
-----
-
-
-1.1.1 (2020-11-14)
-==================
-
-Bugfixes
---------
-
-- Provide x86 Windows wheels.
-  `#169 <https://github.com/aio-libs/frozenlist/issues/169>`_
-
-
-----
-
-
-1.1.0 (2020-10-13)
-==================
-
-Features
---------
-
-- Add support for hashing of a frozen list.
-  `#136 <https://github.com/aio-libs/frozenlist/issues/136>`_
-
-- Support Python 3.8 and 3.9.
-
-- Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` 
architectures on
-  Linux as well as ``x86_64``.
-
-
-----
-
-
-1.0.0 (2019-11-09)
-==================
-
-Deprecations and Removals
--------------------------
-
-- Dropped support for Python 3.5; only 3.6, 3.7 and 3.8 are supported going 
forward.
-  `#24 <https://github.com/aio-libs/frozenlist/issues/24>`_
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist.egg-info/SOURCES.txt 
new/frozenlist-1.3.0/frozenlist.egg-info/SOURCES.txt
--- old/frozenlist-1.2.0/frozenlist.egg-info/SOURCES.txt        2021-10-16 
09:33:29.000000000 +0200
+++ new/frozenlist-1.3.0/frozenlist.egg-info/SOURCES.txt        2022-01-18 
15:56:09.000000000 +0100
@@ -19,6 +19,7 @@
 frozenlist.egg-info/PKG-INFO
 frozenlist.egg-info/SOURCES.txt
 frozenlist.egg-info/dependency_links.txt
+frozenlist.egg-info/not-zip-safe
 frozenlist.egg-info/top_level.txt
 tests/conftest.py
 tests/test_frozenlist.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/frozenlist.egg-info/not-zip-safe 
new/frozenlist-1.3.0/frozenlist.egg-info/not-zip-safe
--- old/frozenlist-1.2.0/frozenlist.egg-info/not-zip-safe       1970-01-01 
01:00:00.000000000 +0100
+++ new/frozenlist-1.3.0/frozenlist.egg-info/not-zip-safe       2022-01-18 
15:56:09.000000000 +0100
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/pyproject.toml 
new/frozenlist-1.3.0/pyproject.toml
--- old/frozenlist-1.2.0/pyproject.toml 2021-10-16 09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/pyproject.toml 2022-01-18 15:55:45.000000000 +0100
@@ -1,5 +1,8 @@
 [build-system]
-requires= ['setuptools', 'wheel']
+requires = [
+    "setuptools >= 46.4.0", "wheel >= 0.37.0",
+]
+build-backend = "setuptools.build_meta"
 
 [tool.towncrier]
 package = "frozenlist"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/setup.cfg 
new/frozenlist-1.3.0/setup.cfg
--- old/frozenlist-1.2.0/setup.cfg      2021-10-16 09:33:29.423939200 +0200
+++ new/frozenlist-1.3.0/setup.cfg      2022-01-18 15:56:09.691456300 +0100
@@ -1,18 +1,56 @@
-[aliases]
-test = pytest
-
 [metadata]
-license_file = LICENSE
+name = frozenlist
+version = attr: frozenlist.__version__
+url = https://github.com/aio-libs/frozenlist
+project_urls = 
+       Chat: Gitter = https://gitter.im/aio-libs/Lobby
+       CI: Github Actions = https://github.com/aio-libs/frozenlist/actions
+       Coverage: codecov = https://codecov.io/github/aio-libs/frozenlist
+       Docs: RTD = https://frozenlist.readthedocs.io
+       GitHub: issues = https://github.com/aio-libs/frozenlist/issues
+       GitHub: repo = https://github.com/aio-libs/frozenlist
+description = A list-like structure which implements 
collections.abc.MutableSequence
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+maintainer = aiohttp team <t...@aiohttp.org>
+maintainer_email = t...@aiohttp.org
+license = Apache 2
+license_files = LICENSE
+classifiers = 
+       License :: OSI Approved :: Apache Software License
+       Intended Audience :: Developers
+       Programming Language :: Python
+       Programming Language :: Python :: 3
+       Programming Language :: Python :: 3.7
+       Programming Language :: Python :: 3.8
+       Programming Language :: Python :: 3.9
+       Programming Language :: Python :: 3.10
+       Development Status :: 5 - Production/Stable
+       Operating System :: POSIX
+       Operating System :: MacOS :: MacOS X
+       Operating System :: Microsoft :: Windows
 
-[pep8]
-max-line-length = 79
+[options]
+python_requires = >=3.7
+packages = find:
+zip_safe = False
+include_package_data = True
+
+[options.exclude_package_data]
+* = 
+       *.c
+       *.h
 
-[easy_install]
-zip_ok = false
+[options.package_data]
+* = 
+       *.so
+
+[pep8]
+max-line-length = 88
 
 [flake8]
-ignore = N801,N802,N803,E226,W504,E252
-max-line-length = 79
+ignore = N801,N802,N803,E226,W503,W504,E252
+max-line-length = 88
 
 [isort]
 multi_line_output = 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/setup.py 
new/frozenlist-1.3.0/setup.py
--- old/frozenlist-1.2.0/setup.py       2021-10-16 09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/setup.py       2022-01-18 15:55:45.000000000 +0100
@@ -1,21 +1,13 @@
 import os
-import pathlib
-import re
 import sys
 
 from setuptools import Extension, setup
 
-if sys.version_info < (3, 6):
-    raise RuntimeError("frozenlist 1.x requires Python 3.6+")
-
-
 NO_EXTENSIONS = (
-    bool(os.environ.get('FROZENLIST_NO_EXTENSIONS')) or
-    sys.implementation.name != "cpython"
+    bool(os.environ.get("FROZENLIST_NO_EXTENSIONS"))
+    or sys.implementation.name != "cpython"
 )
 
-here = pathlib.Path(__file__).parent
-
 if NO_EXTENSIONS:
     print("*********************")
     print("* Pure Python build *")
@@ -25,66 +17,9 @@
     print("**********************")
     print("* Accellerated build *")
     print("**********************")
-    ext_modules = [
-        Extension('frozenlist._frozenlist', ['frozenlist/_frozenlist.c'])
-    ]
-
-
-txt = (here / 'frozenlist' / '__init__.py').read_text('utf-8')
-try:
-    version = re.findall(r'^__version__ = "([^"]+)"\r?$',
-                         txt, re.M)[0]
-except IndexError:
-    raise RuntimeError('Unable to determine version.')
-
-install_requires = []
-
-
-def read(f):
-    return (here / f).read_text('utf-8').strip()
+    ext_modules = [Extension("frozenlist._frozenlist", 
["frozenlist/_frozenlist.c"])]
 
 
 setup(
-    name='frozenlist',
-    version=version,
-    description=(
-        'A list-like structure which implements '
-        'collections.abc.MutableSequence'
-    ),
-    long_description='\n\n'.join((read('README.rst'), read('CHANGES.rst'))),
-    long_description_content_type="text/x-rst",
-    classifiers=[
-        'License :: OSI Approved :: Apache Software License',
-        'Intended Audience :: Developers',
-        'Programming Language :: Python',
-        'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
-        'Programming Language :: Python :: 3.8',
-        'Programming Language :: Python :: 3.9',
-        'Development Status :: 5 - Production/Stable',
-        'Operating System :: POSIX',
-        'Operating System :: MacOS :: MacOS X',
-        'Operating System :: Microsoft :: Windows',
-    ],
-    author='Nikolay Kim',
-    author_email='fafhr...@gmail.com',
-    maintainer='Martijn Pieters <m...@zopatista.com>',
-    maintainer_email='aio-l...@googlegroups.com',
-    url='https://github.com/aio-libs/frozenlist',
-    project_urls={
-        'Chat: Gitter': 'https://gitter.im/aio-libs/Lobby',
-        'CI: Github Actions':
-            'https://github.com/aio-libs/frozenlist/actions',
-        'Coverage: codecov': 'https://codecov.io/github/aio-libs/frozenlist',
-        'Docs: RTD': 'https://frozenlist.readthedocs.io',
-        'GitHub: issues': 'https://github.com/aio-libs/frozenlist/issues',
-        'GitHub: repo': 'https://github.com/aio-libs/frozenlist',
-    },
-    license='Apache 2',
-    packages=['frozenlist'],
     ext_modules=ext_modules,
-    python_requires='>=3.6',
-    install_requires=install_requires,
-    include_package_data=True,
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/frozenlist-1.2.0/tests/test_frozenlist.py 
new/frozenlist-1.3.0/tests/test_frozenlist.py
--- old/frozenlist-1.2.0/tests/test_frozenlist.py       2021-10-16 
09:33:18.000000000 +0200
+++ new/frozenlist-1.3.0/tests/test_frozenlist.py       2022-01-18 
15:55:45.000000000 +0100
@@ -8,14 +8,14 @@
 class FrozenListMixin:
     FrozenList = NotImplemented
 
-    SKIP_METHODS = {'__abstractmethods__', '__slots__'}
+    SKIP_METHODS = {"__abstractmethods__", "__slots__"}
 
     def test_subclass(self) -> None:
         assert issubclass(self.FrozenList, MutableSequence)
 
     def test_iface(self) -> None:
         for name in set(dir(MutableSequence)) - self.SKIP_METHODS:
-            if name.startswith('_') and not name.endswith('_'):
+            if name.startswith("_") and not name.endswith("_"):
                 continue
             assert hasattr(self.FrozenList, name)
 
@@ -40,9 +40,9 @@
 
     def test_repr(self) -> None:
         _list = self.FrozenList([1])
-        assert repr(_list) == '<FrozenList(frozen=False, [1])>'
+        assert repr(_list) == "<FrozenList(frozen=False, [1])>"
         _list.freeze()
-        assert repr(_list) == '<FrozenList(frozen=True, [1])>'
+        assert repr(_list) == "<FrozenList(frozen=True, [1])>"
 
     def test_getitem(self) -> None:
         _list = self.FrozenList([1, 2])
@@ -229,9 +229,9 @@
     def test_dict_key(self) -> None:
         _list = self.FrozenList([1, 2])
         with pytest.raises(RuntimeError):
-            {_list: 'hello'}
+            {_list: "hello"}
         _list.freeze()
-        {_list: 'hello'}
+        {_list: "hello"}
 
     def test_count(self) -> None:
         _list = self.FrozenList([1, 2])

Reply via email to