Hello community,
here is the log from the commit of package python-packaging for
openSUSE:Factory checked in at 2020-03-27 00:20:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-packaging (Old)
and /work/SRC/openSUSE:Factory/.python-packaging.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-packaging"
Fri Mar 27 00:20:05 2020 rev:15 rq:783881 version:20.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-packaging/python-packaging.changes
2020-02-14 16:22:51.807108873 +0100
+++
/work/SRC/openSUSE:Factory/.python-packaging.new.3160/python-packaging.changes
2020-03-27 00:20:10.172101146 +0100
@@ -1,0 +2,8 @@
+Wed Mar 11 14:37:16 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- Update to 20.3
+ * Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU
+ (e.g. ARM-v8, aarch64), to report the wrong bitness.
+- Drop already upstreamed patch issue_254.patch
+
+-------------------------------------------------------------------
Old:
----
issue_254.patch
packaging-20.1.tar.gz
New:
----
packaging-20.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-packaging.spec ++++++
--- /var/tmp/diff_new_pack.oUGpiI/_old 2020-03-27 00:20:11.896101982 +0100
+++ /var/tmp/diff_new_pack.oUGpiI/_new 2020-03-27 00:20:11.900101984 +0100
@@ -26,14 +26,13 @@
%bcond_with test
%endif
Name: python-packaging%{psuffix}
-Version: 20.1
+Version: 20.3
Release: 0
Summary: Core utilities for Python packages
License: Apache-2.0
Group: Development/Languages/Python
URL: https://github.com/pypa/packaging
Source:
https://pypi.io/packages/source/p/packaging/packaging-%{version}.tar.gz
-Patch0: issue_254.patch
BuildRequires: %{python_module six}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
@@ -56,7 +55,6 @@
%prep
%setup -q -n packaging-%{version}
-%patch0 -p1
# sdist must provide a packaging.egg-info, used below in install phase
test -d packaging.egg-info
++++++ packaging-20.1.tar.gz -> packaging-20.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/.pre-commit-config.yaml
new/packaging-20.3/.pre-commit-config.yaml
--- old/packaging-20.1/.pre-commit-config.yaml 2020-01-06 07:17:18.000000000
+0100
+++ new/packaging-20.3/.pre-commit-config.yaml 2020-01-28 08:07:37.000000000
+0100
@@ -15,7 +15,7 @@
args: []
- id: mypy
name: mypy for Python 2
- exclude: '^(docs|tasks|tests)|setup\.py'
+ exclude: '^(docs|tasks|tests)|setup\.py|noxfile\.py'
args: ['--py2']
- repo: https://github.com/psf/black
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/CHANGELOG.rst
new/packaging-20.3/CHANGELOG.rst
--- old/packaging-20.1/CHANGELOG.rst 2020-01-24 11:50:30.000000000 +0100
+++ new/packaging-20.3/CHANGELOG.rst 2020-03-05 08:48:02.000000000 +0100
@@ -1,6 +1,17 @@
Changelog
---------
+20.3 - 2020-03-05
+~~~~~~~~~~~~~~~~~
+
+* Fix changelog for 20.2.
+
+20.2 - 2020-03-05
+~~~~~~~~~~~~~~~~~
+
+* Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU (e.g. ARM-v8,
+ aarch64), to report the wrong bitness.
+
20.1 - 2020-01-24
~~~~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/MANIFEST.in
new/packaging-20.3/MANIFEST.in
--- old/packaging-20.1/MANIFEST.in 2020-01-24 11:45:46.000000000 +0100
+++ new/packaging-20.3/MANIFEST.in 2020-01-27 12:17:06.000000000 +0100
@@ -4,12 +4,12 @@
include .coveragerc
include .flake8
include .pre-commit-config.yaml
-include tox.ini
recursive-include docs *
recursive-include tests *.py
recursive-include tests hello-world-*
+exclude noxfile.py
exclude .travis.yml
exclude dev-requirements.txt
exclude tests/build-hello-world.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/PKG-INFO new/packaging-20.3/PKG-INFO
--- old/packaging-20.1/PKG-INFO 2020-01-24 11:53:36.945087400 +0100
+++ new/packaging-20.3/PKG-INFO 2020-03-05 08:48:09.689097600 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: packaging
-Version: 20.1
+Version: 20.3
Summary: Core utilities for Python packages
Home-page: https://github.com/pypa/packaging
Author: Donald Stufft and individual contributors
@@ -74,6 +74,17 @@
Changelog
---------
+ 20.3 - 2020-03-05
+ ~~~~~~~~~~~~~~~~~
+
+ * Fix changelog for 20.2.
+
+ 20.2 - 2020-03-05
+ ~~~~~~~~~~~~~~~~~
+
+ * Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU
(e.g. ARM-v8,
+ aarch64), to report the wrong bitness.
+
20.1 - 2020-01-24
~~~~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/docs/development/getting-started.rst
new/packaging-20.3/docs/development/getting-started.rst
--- old/packaging-20.1/docs/development/getting-started.rst 2020-01-24
11:45:46.000000000 +0100
+++ new/packaging-20.3/docs/development/getting-started.rst 2020-01-27
12:17:06.000000000 +0100
@@ -3,7 +3,7 @@
Working on packaging requires the installation of a small number of
development dependencies. To see what dependencies are required to
-run the tests manually, please look at the ``tox.ini`` file.
+run the tests manually, please look at the ``noxfile.py`` file.
Running tests
~~~~~~~~~~~~~
@@ -16,33 +16,43 @@
$ python -m pytest
...
- 62746 passed in 220.43 seconds
+ 29204 passed, 4 skipped, 1 xfailed in 83.98 seconds
This runs the tests with the default Python interpreter. This also allows
you to run select tests instead of the entire test suite.
You can also verify that the tests pass on other supported Python interpreters.
-For this we use `tox`_, which will automatically create a `virtualenv`_ for
+For this we use `nox`_, which will automatically create a `virtualenv`_ for
each supported Python version and run the tests. For example:
.. code-block:: console
- $ tox
+ $ nox -s tests
...
- py27: commands succeeded
- ERROR: pypy: InterpreterNotFound: pypy
- ERROR: py34: InterpreterNotFound: python3.4
- ERROR: py35: InterpreterNotFound: python3.5
- py36: commands succeeded
- ERROR: py37: InterpreterNotFound: python3.7
- docs: commands succeeded
- pep8: commands succeeded
+ nox > Ran multiple sessions:
+ nox > * tests-2.7: success
+ nox > * tests-3.4: skipped
+ nox > * tests-3.5: success
+ nox > * tests-3.6: success
+ nox > * tests-3.7: success
+ nox > * tests-3.8: success
+ nox > * tests-pypy: skipped
+ nox > * tests-pypy3: skipped
You may not have all the required Python versions installed, in which case you
will see one or more ``InterpreterNotFound`` errors.
-If you wish to run just the linting rules, you may use `pre-commit`_.
+Running linters
+~~~~~~~~~~~~~~~
+If you wish to run the linting rules, you may use `pre-commit`_ or run
+``nox -s lint``.
+
+.. code-block:: console
+
+ $ nox -s lint
+ ...
+ nox > Session lint was successful.
Building documentation
~~~~~~~~~~~~~~~~~~~~~~
@@ -50,20 +60,19 @@
packaging documentation is stored in the ``docs/`` directory. It is
written in `reStructured Text`_ and rendered using `Sphinx`_.
-Use `tox`_ to build the documentation. For example:
+Use `nox`_ to build the documentation. For example:
.. code-block:: console
- $ tox -e docs
+ $ nox -s docs
...
- docs: commands succeeded
- congratulations :)
+ nox > Session docs was successful.
The HTML documentation index can now be found at
``docs/_build/html/index.html``.
.. _`pytest`: https://pypi.org/project/pytest/
-.. _`tox`: https://pypi.org/project/tox/
+.. _`nox`: https://pypi.org/project/nox/
.. _`virtualenv`: https://pypi.org/project/virtualenv/
.. _`pip`: https://pypi.org/project/pip/
.. _`sphinx`: https://pypi.org/project/Sphinx/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/docs/development/release-process.rst
new/packaging-20.3/docs/development/release-process.rst
--- old/packaging-20.1/docs/development/release-process.rst 2019-12-11
10:08:40.000000000 +0100
+++ new/packaging-20.3/docs/development/release-process.rst 2020-03-05
08:35:23.000000000 +0100
@@ -1,35 +1,21 @@
Release Process
===============
-#. Checkout the current ``master`` branch, with a clean working directory.
-#. Modify the ``CHANGELOG.rst`` to include changes made since the last release
- and update the section header for the new release.
-#. Bump the version in ``packaging/__about__.py``
+#. Checkout the current ``master`` branch.
+#. Install the latest ``nox``::
-#. Install the latest ``setuptools``, ``wheel`` and ``twine`` packages
- from PyPI::
+ $ pip install nox
- $ pip install --upgrade setuptools wheel twine
+#. Run the release automation with the required version number (YY.N)::
-#. Ensure no ``dist/`` folder exists and then create the distribution files::
+ $ nox -s release -- YY.N
- $ python setup.py sdist bdist_wheel
-
-#. Check the built distribution files with ``twine``::
-
- $ twine check dist/*
-
-#. Commit the changes to ``master``.
-
-#. If all goes well, upload the build distribution files::
-
- $ twine upload dist/*
+#. Notify the other project owners of the release.
-#. Create a
- `release on GitHub <https://github.com/pypa/packaging/releases>`_ and
- include the artifacts uploaded to PyPI.
+.. note::
-#. Bump the version for development in ``packaging/__about__.py`` and
- ``CHANGELOG.rst``.
+ Access needed for making the release are:
-#. Notify the other project owners of the release.
+ - PyPI maintainer (or owner) access to `packaging`
+ - push directly to the `master` branch on the source repository
+ - push tags directly to the source repository
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/packaging-20.1/docs/development/submitting-patches.rst
new/packaging-20.3/docs/development/submitting-patches.rst
--- old/packaging-20.1/docs/development/submitting-patches.rst 2020-01-24
11:45:46.000000000 +0100
+++ new/packaging-20.3/docs/development/submitting-patches.rst 2020-01-27
12:17:06.000000000 +0100
@@ -19,7 +19,7 @@
----
This project's source is auto-formatted with |black|. You can check if your
-code meets our requirements by running our linters against it with ``tox -e
+code meets our requirements by running our linters against it with ``nox -s
lint`` or ``pre-commit run --all-files``.
`Write comments as complete sentences.`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/packaging/__about__.py
new/packaging-20.3/packaging/__about__.py
--- old/packaging-20.1/packaging/__about__.py 2020-01-24 11:52:26.000000000
+0100
+++ new/packaging-20.3/packaging/__about__.py 2020-03-05 08:48:02.000000000
+0100
@@ -18,7 +18,7 @@
__summary__ = "Core utilities for Python packages"
__uri__ = "https://github.com/pypa/packaging"
-__version__ = "20.1"
+__version__ = "20.3"
__author__ = "Donald Stufft and individual contributors"
__email__ = "[email protected]"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/packaging/tags.py
new/packaging-20.3/packaging/tags.py
--- old/packaging-20.1/packaging/tags.py 2020-01-24 11:45:51.000000000
+0100
+++ new/packaging-20.3/packaging/tags.py 2020-02-10 11:39:55.000000000
+0100
@@ -162,7 +162,7 @@
# type: (PythonVersion, bool) -> List[str]
py_version = tuple(py_version) # To allow for version comparison.
abis = []
- version = "{}{}".format(*py_version[:2])
+ version = _version_nodot(py_version[:2])
debug = pymalloc = ucs4 = ""
with_debug = _get_config_var("Py_DEBUG", warn)
has_refcount = hasattr(sys, "gettotalrefcount")
@@ -221,10 +221,7 @@
if not python_version:
python_version = sys.version_info[:2]
- if len(python_version) < 2:
- interpreter = "cp{}".format(python_version[0])
- else:
- interpreter = "cp{}{}".format(*python_version[:2])
+ interpreter = "cp{}".format(_version_nodot(python_version[:2]))
if abis is None:
if len(python_version) > 1:
@@ -252,8 +249,8 @@
if _abi3_applies(python_version):
for minor_version in range(python_version[1] - 1, 1, -1):
for platform_ in platforms:
- interpreter = "cp{major}{minor}".format(
- major=python_version[0], minor=minor_version
+ interpreter = "cp{version}".format(
+ version=_version_nodot((python_version[0], minor_version))
)
yield Tag(interpreter, "abi3", platform_)
@@ -305,11 +302,11 @@
all previous versions of that major version.
"""
if len(py_version) > 1:
- yield "py{major}{minor}".format(major=py_version[0],
minor=py_version[1])
+ yield "py{version}".format(version=_version_nodot(py_version[:2]))
yield "py{major}".format(major=py_version[0])
if len(py_version) > 1:
for minor in range(py_version[1] - 1, -1, -1):
- yield "py{major}{minor}".format(major=py_version[0], minor=minor)
+ yield "py{version}".format(version=_version_nodot((py_version[0],
minor)))
def compatible_tags(
@@ -636,8 +633,11 @@
def _linux_platforms(is_32bit=_32_BIT_INTERPRETER):
# type: (bool) -> Iterator[str]
linux = _normalize_string(distutils.util.get_platform())
- if linux == "linux_x86_64" and is_32bit:
- linux = "linux_i686"
+ if is_32bit:
+ if linux == "linux_x86_64":
+ linux = "linux_i686"
+ elif linux == "linux_aarch64":
+ linux = "linux_armv7l"
manylinux_support = []
_, arch = linux.split("_", 1)
if _have_compatible_manylinux_abi(arch):
@@ -704,10 +704,19 @@
if version:
version = str(version)
else:
- version = "".join(map(str, sys.version_info[:2]))
+ version = _version_nodot(sys.version_info[:2])
return version
+def _version_nodot(version):
+ # type: (PythonVersion) -> str
+ if any(v >= 10 for v in version):
+ sep = "_"
+ else:
+ sep = ""
+ return sep.join(map(str, version))
+
+
def sys_tags(**kwargs):
# type: (bool) -> Iterator[Tag]
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/packaging.egg-info/PKG-INFO
new/packaging-20.3/packaging.egg-info/PKG-INFO
--- old/packaging-20.1/packaging.egg-info/PKG-INFO 2020-01-24
11:53:36.000000000 +0100
+++ new/packaging-20.3/packaging.egg-info/PKG-INFO 2020-03-05
08:48:09.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: packaging
-Version: 20.1
+Version: 20.3
Summary: Core utilities for Python packages
Home-page: https://github.com/pypa/packaging
Author: Donald Stufft and individual contributors
@@ -74,6 +74,17 @@
Changelog
---------
+ 20.3 - 2020-03-05
+ ~~~~~~~~~~~~~~~~~
+
+ * Fix changelog for 20.2.
+
+ 20.2 - 2020-03-05
+ ~~~~~~~~~~~~~~~~~
+
+ * Fix a bug that caused a 32-bit OS that runs on a 64-bit ARM CPU
(e.g. ARM-v8,
+ aarch64), to report the wrong bitness.
+
20.1 - 2020-01-24
~~~~~~~~~~~~~~~~~~~
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/packaging.egg-info/SOURCES.txt
new/packaging-20.3/packaging.egg-info/SOURCES.txt
--- old/packaging-20.1/packaging.egg-info/SOURCES.txt 2020-01-24
11:53:36.000000000 +0100
+++ new/packaging-20.3/packaging.egg-info/SOURCES.txt 2020-03-05
08:48:09.000000000 +0100
@@ -10,7 +10,6 @@
README.rst
setup.cfg
setup.py
-tox.ini
docs/Makefile
docs/changelog.rst
docs/conf.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/tests/test_tags.py
new/packaging-20.3/tests/test_tags.py
--- old/packaging-20.1/tests/test_tags.py 2020-01-24 11:45:51.000000000
+0100
+++ new/packaging-20.3/tests/test_tags.py 2020-02-10 11:39:55.000000000
+0100
@@ -38,11 +38,6 @@
@pytest.fixture
-def is_64bit_os():
- return platform.architecture()[0] == "64bit"
-
-
[email protected]
def manylinux_module(monkeypatch):
monkeypatch.setattr(tags, "_have_compatible_glibc", lambda *args: False)
module_name = "_manylinux"
@@ -196,10 +191,20 @@
monkeypatch.setattr(tags, "_get_config_var", lambda var, warn: "NN")
assert tags.interpreter_version() == "NN"
- def test_sys_version_info(self, monkeypatch):
+ @pytest.mark.parametrize(
+ "version_info,version_str",
+ [
+ ((1, 2, 3), "12"),
+ ((1, 12, 3), "1_12"),
+ ((11, 2, 3), "11_2"),
+ ((11, 12, 3), "11_12"),
+ ((1, 2, 13), "12"),
+ ],
+ )
+ def test_sys_version_info(self, version_info, version_str, monkeypatch):
monkeypatch.setattr(tags, "_get_config_var", lambda *args, **kwargs:
None)
- monkeypatch.setattr(sys, "version_info", ("L", "M", "N"))
- assert tags.interpreter_version() == "LM"
+ monkeypatch.setattr(sys, "version_info", version_info)
+ assert tags.interpreter_version() == version_str
class TestMacOSPlatforms:
@@ -415,19 +420,22 @@
monkeypatch.setattr(tags, "_glibc_version_string", lambda: None)
assert not tags._have_compatible_glibc(2, 4)
- def test_linux_platforms_64bit_on_64bit_os(self, is_64bit_os, is_x86,
monkeypatch):
- if platform.system() != "Linux" or not is_64bit_os or not is_x86:
- monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
- monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda
*args: False)
- linux_platform = list(tags._linux_platforms(is_32bit=False))[-1]
- assert linux_platform == "linux_x86_64"
-
- def test_linux_platforms_32bit_on_64bit_os(self, is_64bit_os, is_x86,
monkeypatch):
- if platform.system() != "Linux" or not is_64bit_os or not is_x86:
- monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
- monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda
*args: False)
- linux_platform = list(tags._linux_platforms(is_32bit=True))[-1]
- assert linux_platform == "linux_i686"
+ @pytest.mark.parametrize(
+ "arch,is_32bit,expected",
+ [
+ ("linux-x86_64", False, "linux_x86_64"),
+ ("linux-x86_64", True, "linux_i686"),
+ ("linux-aarch64", False, "linux_aarch64"),
+ ("linux-aarch64", True, "linux_armv7l"),
+ ],
+ )
+ def test_linux_platforms_32_64bit_on_64bit_os(
+ self, arch, is_32bit, expected, monkeypatch
+ ):
+ monkeypatch.setattr(distutils.util, "get_platform", lambda: arch)
+ monkeypatch.setattr(tags, "_is_manylinux_compatible", lambda *args:
False)
+ linux_platform = list(tags._linux_platforms(is_32bit=is_32bit))[-1]
+ assert linux_platform == expected
def test_linux_platforms_manylinux_unsupported(self, monkeypatch):
monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
@@ -435,37 +443,43 @@
linux_platform = list(tags._linux_platforms(is_32bit=False))
assert linux_platform == ["linux_x86_64"]
- def test_linux_platforms_manylinux1(self, monkeypatch):
+ def test_linux_platforms_manylinux1(self, is_x86, monkeypatch):
monkeypatch.setattr(
tags, "_is_manylinux_compatible", lambda name, _: name ==
"manylinux1"
)
- if platform.system() != "Linux":
+ if platform.system() != "Linux" or not is_x86:
monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
+ monkeypatch.setattr(platform, "machine", lambda: "x86_64")
platforms = list(tags._linux_platforms(is_32bit=False))
- assert platforms == ["manylinux1_x86_64", "linux_x86_64"]
+ arch = platform.machine()
+ assert platforms == ["manylinux1_" + arch, "linux_" + arch]
- def test_linux_platforms_manylinux2010(self, monkeypatch):
+ def test_linux_platforms_manylinux2010(self, is_x86, monkeypatch):
monkeypatch.setattr(
tags, "_is_manylinux_compatible", lambda name, _: name ==
"manylinux2010"
)
- if platform.system() != "Linux":
+ if platform.system() != "Linux" or not is_x86:
monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
+ monkeypatch.setattr(platform, "machine", lambda: "x86_64")
platforms = list(tags._linux_platforms(is_32bit=False))
- expected = ["manylinux2010_x86_64", "manylinux1_x86_64",
"linux_x86_64"]
+ arch = platform.machine()
+ expected = ["manylinux2010_" + arch, "manylinux1_" + arch, "linux_" +
arch]
assert platforms == expected
- def test_linux_platforms_manylinux2014(self, monkeypatch):
+ def test_linux_platforms_manylinux2014(self, is_x86, monkeypatch):
monkeypatch.setattr(
tags, "_is_manylinux_compatible", lambda name, _: name ==
"manylinux2014"
)
- if platform.system() != "Linux":
+ if platform.system() != "Linux" or not is_x86:
monkeypatch.setattr(distutils.util, "get_platform", lambda:
"linux_x86_64")
+ monkeypatch.setattr(platform, "machine", lambda: "x86_64")
platforms = list(tags._linux_platforms(is_32bit=False))
+ arch = platform.machine()
expected = [
- "manylinux2014_x86_64",
- "manylinux2010_x86_64",
- "manylinux1_x86_64",
- "linux_x86_64",
+ "manylinux2014_" + arch,
+ "manylinux2010_" + arch,
+ "manylinux1_" + arch,
+ "linux_" + arch,
]
assert platforms == expected
@@ -687,7 +701,7 @@
config = {"Py_DEBUG": 0, "WITH_PYMALLOC": 0, "Py_UNICODE_SIZE":
unicode_size}
monkeypatch.setattr(sysconfig, "get_config_var", config.__getitem__)
monkeypatch.setattr(sys, "maxunicode", maxunicode)
- base_abi = "cp{}{}".format(version[0], version[1])
+ base_abi = "cp" + tags._version_nodot(version)
expected = [base_abi + "u" if result else base_abi]
assert tags._cpython_abis(version) == expected
@@ -697,10 +711,42 @@
result_iterator = tags.cpython_tags(
(3, 8), ["cp38d", "cp38"], ["plat1", "plat2"]
)
- isinstance(result_iterator, collections_abc.Iterator)
+ assert isinstance(result_iterator, collections_abc.Iterator)
def test_all_args(self):
result_iterator = tags.cpython_tags(
+ (3, 11), ["cp3_11d", "cp3_11"], ["plat1", "plat2"]
+ )
+ result = list(result_iterator)
+ assert result == [
+ tags.Tag("cp3_11", "cp3_11d", "plat1"),
+ tags.Tag("cp3_11", "cp3_11d", "plat2"),
+ tags.Tag("cp3_11", "cp3_11", "plat1"),
+ tags.Tag("cp3_11", "cp3_11", "plat2"),
+ tags.Tag("cp3_11", "abi3", "plat1"),
+ tags.Tag("cp3_11", "abi3", "plat2"),
+ tags.Tag("cp3_11", "none", "plat1"),
+ tags.Tag("cp3_11", "none", "plat2"),
+ tags.Tag("cp3_10", "abi3", "plat1"),
+ tags.Tag("cp3_10", "abi3", "plat2"),
+ tags.Tag("cp39", "abi3", "plat1"),
+ tags.Tag("cp39", "abi3", "plat2"),
+ tags.Tag("cp38", "abi3", "plat1"),
+ tags.Tag("cp38", "abi3", "plat2"),
+ tags.Tag("cp37", "abi3", "plat1"),
+ tags.Tag("cp37", "abi3", "plat2"),
+ tags.Tag("cp36", "abi3", "plat1"),
+ tags.Tag("cp36", "abi3", "plat2"),
+ tags.Tag("cp35", "abi3", "plat1"),
+ tags.Tag("cp35", "abi3", "plat2"),
+ tags.Tag("cp34", "abi3", "plat1"),
+ tags.Tag("cp34", "abi3", "plat2"),
+ tags.Tag("cp33", "abi3", "plat1"),
+ tags.Tag("cp33", "abi3", "plat2"),
+ tags.Tag("cp32", "abi3", "plat1"),
+ tags.Tag("cp32", "abi3", "plat2"),
+ ]
+ result_iterator = tags.cpython_tags(
(3, 8), ["cp38d", "cp38"], ["plat1", "plat2"]
)
result = list(result_iterator)
@@ -726,6 +772,7 @@
tags.Tag("cp32", "abi3", "plat1"),
tags.Tag("cp32", "abi3", "plat2"),
]
+
result = list(tags.cpython_tags((3, 3), ["cp33m"], ["plat1", "plat2"]))
assert result == [
tags.Tag("cp33", "cp33m", "plat1"),
@@ -740,7 +787,7 @@
def test_python_version_defaults(self):
tag = next(tags.cpython_tags(abis=["abi3"], platforms=["any"]))
- interpreter = "cp{}{}".format(*sys.version_info[:2])
+ interpreter = "cp" + tags._version_nodot(sys.version_info[:2])
assert interpreter == tag.interpreter
def test_abi_defaults(self, monkeypatch):
@@ -750,11 +797,23 @@
assert tags.Tag("cp38", "abi3", "any") in result
assert tags.Tag("cp38", "none", "any") in result
+ def test_abi_defaults_needs_underscore(self, monkeypatch):
+ monkeypatch.setattr(tags, "_cpython_abis", lambda _1, _2: ["cp3_11"])
+ result = list(tags.cpython_tags((3, 11), platforms=["any"]))
+ assert tags.Tag("cp3_11", "cp3_11", "any") in result
+ assert tags.Tag("cp3_11", "abi3", "any") in result
+ assert tags.Tag("cp3_11", "none", "any") in result
+
def test_platforms_defaults(self, monkeypatch):
monkeypatch.setattr(tags, "_platform_tags", lambda: ["plat1"])
result = list(tags.cpython_tags((3, 8), abis=["whatever"]))
assert tags.Tag("cp38", "whatever", "plat1") in result
+ def test_platforms_defaults_needs_underscore(self, monkeypatch):
+ monkeypatch.setattr(tags, "_platform_tags", lambda: ["plat1"])
+ result = list(tags.cpython_tags((3, 11), abis=["whatever"]))
+ assert tags.Tag("cp3_11", "whatever", "plat1") in result
+
def test_major_only_python_version(self):
result = list(tags.cpython_tags((3,), ["abi"], ["plat"]))
assert result == [
@@ -890,6 +949,51 @@
tags.Tag("py30", "none", "any"),
]
+ def test_all_args_needs_underscore(self):
+ result = list(tags.compatible_tags((3, 11), "cp3_11", ["plat1",
"plat2"]))
+ assert result == [
+ tags.Tag("py3_11", "none", "plat1"),
+ tags.Tag("py3_11", "none", "plat2"),
+ tags.Tag("py3", "none", "plat1"),
+ tags.Tag("py3", "none", "plat2"),
+ tags.Tag("py3_10", "none", "plat1"),
+ tags.Tag("py3_10", "none", "plat2"),
+ tags.Tag("py39", "none", "plat1"),
+ tags.Tag("py39", "none", "plat2"),
+ tags.Tag("py38", "none", "plat1"),
+ tags.Tag("py38", "none", "plat2"),
+ tags.Tag("py37", "none", "plat1"),
+ tags.Tag("py37", "none", "plat2"),
+ tags.Tag("py36", "none", "plat1"),
+ tags.Tag("py36", "none", "plat2"),
+ tags.Tag("py35", "none", "plat1"),
+ tags.Tag("py35", "none", "plat2"),
+ tags.Tag("py34", "none", "plat1"),
+ tags.Tag("py34", "none", "plat2"),
+ tags.Tag("py33", "none", "plat1"),
+ tags.Tag("py33", "none", "plat2"),
+ tags.Tag("py32", "none", "plat1"),
+ tags.Tag("py32", "none", "plat2"),
+ tags.Tag("py31", "none", "plat1"),
+ tags.Tag("py31", "none", "plat2"),
+ tags.Tag("py30", "none", "plat1"),
+ tags.Tag("py30", "none", "plat2"),
+ tags.Tag("cp3_11", "none", "any"),
+ tags.Tag("py3_11", "none", "any"),
+ tags.Tag("py3", "none", "any"),
+ tags.Tag("py3_10", "none", "any"),
+ tags.Tag("py39", "none", "any"),
+ tags.Tag("py38", "none", "any"),
+ tags.Tag("py37", "none", "any"),
+ tags.Tag("py36", "none", "any"),
+ tags.Tag("py35", "none", "any"),
+ tags.Tag("py34", "none", "any"),
+ tags.Tag("py33", "none", "any"),
+ tags.Tag("py32", "none", "any"),
+ tags.Tag("py31", "none", "any"),
+ tags.Tag("py30", "none", "any"),
+ ]
+
def test_major_only_python_version(self):
result = list(tags.compatible_tags((3,), "cp33", ["plat"]))
assert result == [
@@ -911,6 +1015,39 @@
tags.Tag("py30", "none", "any"),
]
+ def test_default_python_version_needs_underscore(self, monkeypatch):
+ monkeypatch.setattr(sys, "version_info", (3, 11))
+ result = list(tags.compatible_tags(interpreter="cp3_11",
platforms=["plat"]))
+ assert result == [
+ tags.Tag("py3_11", "none", "plat"),
+ tags.Tag("py3", "none", "plat"),
+ tags.Tag("py3_10", "none", "plat"),
+ tags.Tag("py39", "none", "plat"),
+ tags.Tag("py38", "none", "plat"),
+ tags.Tag("py37", "none", "plat"),
+ tags.Tag("py36", "none", "plat"),
+ tags.Tag("py35", "none", "plat"),
+ tags.Tag("py34", "none", "plat"),
+ tags.Tag("py33", "none", "plat"),
+ tags.Tag("py32", "none", "plat"),
+ tags.Tag("py31", "none", "plat"),
+ tags.Tag("py30", "none", "plat"),
+ tags.Tag("cp3_11", "none", "any"),
+ tags.Tag("py3_11", "none", "any"),
+ tags.Tag("py3", "none", "any"),
+ tags.Tag("py3_10", "none", "any"),
+ tags.Tag("py39", "none", "any"),
+ tags.Tag("py38", "none", "any"),
+ tags.Tag("py37", "none", "any"),
+ tags.Tag("py36", "none", "any"),
+ tags.Tag("py35", "none", "any"),
+ tags.Tag("py34", "none", "any"),
+ tags.Tag("py33", "none", "any"),
+ tags.Tag("py32", "none", "any"),
+ tags.Tag("py31", "none", "any"),
+ tags.Tag("py30", "none", "any"),
+ ]
+
def test_default_interpreter(self):
result = list(tags.compatible_tags((3, 1), platforms=["plat"]))
assert result == [
@@ -962,14 +1099,10 @@
result = list(tags.sys_tags())
assert len(abis) == 1
assert result[0] == tags.Tag(
- "cp{major}{minor}".format(
- major=sys.version_info[0], minor=sys.version_info[1]
- ),
- abis[0],
- platforms[0],
+ "cp" + tags._version_nodot(sys.version_info[:2]), abis[0],
platforms[0]
)
assert result[-1] == tags.Tag(
- "py{}0".format(sys.version_info[0]), "none", "any"
+ "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any"
)
def test_windows_cpython(self, mock_interpreter_name, monkeypatch):
@@ -981,13 +1114,13 @@
abis = list(tags._cpython_abis(sys.version_info[:2]))
platforms = list(tags._generic_platforms())
result = list(tags.sys_tags())
- interpreter = "cp{major}{minor}".format(
- major=sys.version_info[0], minor=sys.version_info[1]
- )
+ interpreter = "cp" + tags._version_nodot(sys.version_info[:2])
assert len(abis) == 1
expected = tags.Tag(interpreter, abis[0], platforms[0])
assert result[0] == expected
- expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
+ expected = tags.Tag(
+ "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any"
+ )
assert result[-1] == expected
def test_linux_cpython(self, mock_interpreter_name, monkeypatch):
@@ -999,12 +1132,12 @@
abis = list(tags._cpython_abis(sys.version_info[:2]))
platforms = list(tags._linux_platforms())
result = list(tags.sys_tags())
- expected_interpreter = "cp{major}{minor}".format(
- major=sys.version_info[0], minor=sys.version_info[1]
- )
+ expected_interpreter = "cp" + tags._version_nodot(sys.version_info[:2])
assert len(abis) == 1
assert result[0] == tags.Tag(expected_interpreter, abis[0],
platforms[0])
- expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
+ expected = tags.Tag(
+ "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any"
+ )
assert result[-1] == expected
def test_generic(self, monkeypatch):
@@ -1012,5 +1145,7 @@
monkeypatch.setattr(tags, "interpreter_name", lambda: "generic")
result = list(tags.sys_tags())
- expected = tags.Tag("py{}0".format(sys.version_info[0]), "none", "any")
+ expected = tags.Tag(
+ "py" + tags._version_nodot((sys.version_info[0], 0)), "none", "any"
+ )
assert result[-1] == expected
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/packaging-20.1/tox.ini new/packaging-20.3/tox.ini
--- old/packaging-20.1/tox.ini 2020-01-24 11:45:46.000000000 +0100
+++ new/packaging-20.3/tox.ini 1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-[tox]
-envlist = py27,pypy,pypy3,py34,py35,py36,py37,py38,docs,lint
-
-[testenv]
-deps =
- coverage<5.0.0
- pretend
- pytest
- pip>=9.0.2
-commands =
- python -m coverage run --source packaging/ -m pytest --strict {posargs}
tests
- python -m coverage report -m --fail-under 100
-
-[testenv:pypy]
-commands =
- pytest --capture=no --strict {posargs} tests
-
-[testenv:pypy3]
-commands =
- pytest --capture=no --strict {posargs} tests
-
-[testenv:lint]
-basepython=python3
-deps =
- pre-commit
- readme_renderer
- setuptools
- twine
- wheel
-commands =
- pre-commit run --all-files
- python setup.py --quiet sdist bdist_wheel
- twine check dist/*
-
-[testenv:docs]
-basepython = python3
-deps =
- sphinx
- sphinx_rtd_theme
-commands =
- sphinx-build -W -b html -d {envtmpdir}/doctrees docs docs/_build/html
- sphinx-build -W -b latex -d {envtmpdir}/doctrees docs docs/_build/latex
- sphinx-build -W -b doctest -d {envtmpdir}/doctrees docs docs/_build/html