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])