Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-versioneer for openSUSE:Factory checked in at 2023-05-29 22:47:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-versioneer (Old) and /work/SRC/openSUSE:Factory/.python-versioneer.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-versioneer" Mon May 29 22:47:34 2023 rev:7 rq:1089423 version:0.28 Changes: -------- --- /work/SRC/openSUSE:Factory/python-versioneer/python-versioneer.changes 2023-05-23 14:53:27.826099867 +0200 +++ /work/SRC/openSUSE:Factory/.python-versioneer.new.1533/python-versioneer.changes 2023-05-29 22:47:37.970249398 +0200 @@ -1,0 +2,18 @@ +Fri May 26 20:12:38 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Update to 0.28 + * FIX: handle unset versionfile_build in build_ext by @mgorny in + #347 + * ENH: support built-in tomllib for Python 3.11+ by @mgorny in + #348 +- Release 0.27 + * FIX: Always bootstrap in setup.py to avoid incompatibility with + old versioneer by @mgorny (#344) + * FIX: Mixup between _egg_info and _sdist by @DimitriPapadopoulos + (#342) + * STY: Merge endswith checks by @DimitriPapadopoulos (#337) + * STY: Useless inheritance from object by @DimitriPapadopoulos + (#336) +- Provide [toml] extra as subpackage + +------------------------------------------------------------------- Old: ---- versioneer-0.26.tar.gz New: ---- versioneer-0.28.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-versioneer.spec ++++++ --- /var/tmp/diff_new_pack.3GqFmN/_old 2023-05-29 22:47:41.918270689 +0200 +++ /var/tmp/diff_new_pack.3GqFmN/_new 2023-05-29 22:47:41.922270711 +0200 @@ -18,15 +18,18 @@ %{?sle15_python_module_pythons} Name: python-versioneer -Version: 0.26 +Version: 0.28 Release: 0 Summary: VCS-based management of project version strings License: Unlicense Group: Development/Languages/Python URL: https://github.com/warner/python-versioneer Source: https://files.pythonhosted.org/packages/source/v/versioneer/versioneer-%{version}.tar.gz +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module testsuite} +BuildRequires: %{python_module tomli if %python-base < 3.11} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires(post): update-alternatives @@ -40,14 +43,28 @@ setup.py and the conventional âfrom PROJECT import _versionâ pattern) by asking the version control system about the current tree. +%package toml +Summary: VCS-based management of project version strings [toml] extra +Requires: python-versioneer = %{version} +Requires: (python-tomli if python-base < 3.11) + +%description toml +Versioneer is a tool to automatically update version strings (in +setup.py and the conventional âfrom PROJECT import _versionâ pattern) +by asking the version control system about the current tree. + +This package provides the [toml] extra + %prep %setup -q -n versioneer-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install +%python_expand sed -i '1{/^#!/d}' %{buildroot}%{$python_sitelib}/versioneer.py +%python_compileall %python_clone -a %{buildroot}%{_bindir}/versioneer %python_expand %fdupes %{buildroot}%{$python_sitelib} @@ -61,9 +78,15 @@ %python_uninstall_alternative versioneer %files %{python_files} -%defattr(-,root,root,-) %doc README.md -%{python_sitelib}/* +%license LICENSE +%{python_sitelib}/versioneer.py* +%pycache_only %{python_sitelib}/__pycache__/versioneer*.pyc +%{python_sitelib}/versioneer-%{version}.dist-info %python_alternative %{_bindir}/versioneer +%files %{python_files toml} +%doc README.md +%license LICENSE + %changelog ++++++ versioneer-0.26.tar.gz -> versioneer-0.28.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/PKG-INFO new/versioneer-0.28/PKG-INFO --- old/versioneer-0.26/PKG-INFO 2022-09-06 19:09:01.888857600 +0200 +++ new/versioneer-0.28/PKG-INFO 2022-10-27 20:45:45.986500700 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: versioneer -Version: 0.26 +Version: 0.28 Summary: Easy VCS-based management of project version strings Author: Brian Warner Maintainer-email: Christopher Markiewicz <effig...@gmail.com>, Nathan Buckner <buckne...@users.noreply.github.com> @@ -69,21 +69,27 @@ ### Vendored mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) + * Note that you will need to add `tomli; python_version < "3.11"` to your + build-time dependencies if you use `pyproject.toml` * run `versioneer install --vendor` in your source tree, commit the results * verify version information with `python setup.py version` ### Build-time dependency mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) -* add `versioneer` to the `requires` key of the `build-system` table in - `pyproject.toml`: +* add `versioneer` (with `[toml]` extra, if configuring in `pyproject.toml`) + to the `requires` key of the `build-system` table in `pyproject.toml`: ```toml [build-system] - requires = ["setuptools", "versioneer"] + requires = ["setuptools", "versioneer[toml]"] build-backend = "setuptools.build_meta" ``` * run `versioneer install --no-vendor` in your source tree, commit the results @@ -325,9 +331,8 @@ To make Versioneer easier to embed, all its code is dedicated to the public domain. The `_version.py` that it creates is also in the public domain. -Specifically, both are released under the Creative Commons "Public Domain -Dedication" license (CC0-1.0), as described in -https://creativecommons.org/publicdomain/zero/1.0/ . +Specifically, both are released under the "Unlicense", as described in +https://unlicense.org/. [pypi-image]: https://img.shields.io/pypi/v/versioneer.svg [pypi-url]: https://pypi.python.org/pypi/versioneer/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/README.md new/versioneer-0.28/README.md --- old/versioneer-0.26/README.md 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/README.md 2022-10-27 20:45:29.000000000 +0200 @@ -25,21 +25,27 @@ ### Vendored mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) + * Note that you will need to add `tomli; python_version < "3.11"` to your + build-time dependencies if you use `pyproject.toml` * run `versioneer install --vendor` in your source tree, commit the results * verify version information with `python setup.py version` ### Build-time dependency mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) -* add `versioneer` to the `requires` key of the `build-system` table in - `pyproject.toml`: +* add `versioneer` (with `[toml]` extra, if configuring in `pyproject.toml`) + to the `requires` key of the `build-system` table in `pyproject.toml`: ```toml [build-system] - requires = ["setuptools", "versioneer"] + requires = ["setuptools", "versioneer[toml]"] build-backend = "setuptools.build_meta" ``` * run `versioneer install --no-vendor` in your source tree, commit the results @@ -281,9 +287,8 @@ To make Versioneer easier to embed, all its code is dedicated to the public domain. The `_version.py` that it creates is also in the public domain. -Specifically, both are released under the Creative Commons "Public Domain -Dedication" license (CC0-1.0), as described in -https://creativecommons.org/publicdomain/zero/1.0/ . +Specifically, both are released under the "Unlicense", as described in +https://unlicense.org/. [pypi-image]: https://img.shields.io/pypi/v/versioneer.svg [pypi-url]: https://pypi.python.org/pypi/versioneer/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/_version.py new/versioneer-0.28/_version.py --- old/versioneer-0.26/_version.py 2022-09-06 19:09:01.888857600 +0200 +++ new/versioneer-0.28/_version.py 2022-10-27 20:45:45.986500700 +0200 @@ -8,11 +8,11 @@ version_json = ''' { - "date": "2022-09-06T13:07:50-0400", + "date": "2022-10-27T14:30:06-0400", "dirty": false, "error": null, - "full-revisionid": "922f0d975d203476ccea248241ded9948c568435", - "version": "0.26" + "full-revisionid": "83f20fdf886df7a6089fca3bb7fc3c33198bd629", + "version": "0.28" } ''' # END VERSION_JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/pyproject.toml new/versioneer-0.28/pyproject.toml --- old/versioneer-0.26/pyproject.toml 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/pyproject.toml 2022-10-27 20:45:29.000000000 +0200 @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools"] +requires = ["setuptools", "tomli; python_version < '3.11'"] build-backend = "setuptools.build_meta" [project] @@ -33,4 +33,10 @@ "versioneer" = "versioneer:main" [project.optional-dependencies] -toml = ["tomli"] +toml = ["tomli; python_version < '3.11'"] + +[tool.versioneer] +VCS = "git" +style = "pep440" +versionfile_source = "_version.py" +parentdir_prefix = "" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/setup.cfg new/versioneer-0.28/setup.cfg --- old/versioneer-0.26/setup.cfg 2022-09-06 19:09:01.888857600 +0200 +++ new/versioneer-0.28/setup.cfg 2022-10-27 20:45:45.986500700 +0200 @@ -1,11 +1,3 @@ -[versioneer] -VCS = git -style = pep440 -versionfile_source = _version.py -versionfile_build = -tag_prefix = -parentdir_prefix = - [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/setup.py new/versioneer-0.28/setup.py --- old/versioneer-0.26/setup.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/setup.py 2022-10-27 20:45:29.000000000 +0200 @@ -1,6 +1,7 @@ #!/usr/bin/env python import os, base64, tempfile, io +from importlib import util as ilu from pathlib import Path from setuptools import setup, Command from setuptools.command.build_py import build_py @@ -132,13 +133,9 @@ def run(self): raise RuntimeError("Versioneer cannot be installed in developer/editable mode.") -try: - import versioneer -except ImportError: - # Bootstrap a versioneer module until it's built - from importlib import util as ilu - versioneer = ilu.module_from_spec(ilu.spec_from_loader('versioneer', loader=None)) - exec(generate_versioneer_py(), versioneer.__dict__) +# Bootstrap a versioneer module to guarantee that we get a compatible version +versioneer = ilu.module_from_spec(ilu.spec_from_loader('versioneer', loader=None)) +exec(generate_versioneer_py(), versioneer.__dict__) VERSION = versioneer.get_version() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/src/cmdclass.py new/versioneer-0.28/src/cmdclass.py --- old/versioneer-0.26/src/cmdclass.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/src/cmdclass.py 2022-10-27 20:45:29.000000000 +0200 @@ -116,6 +116,8 @@ return # now locate _version.py in the new build/ directory and replace # it with an updated value + if not cfg.versionfile_build: + return target_versionfile = os.path.join(self.build_lib, cfg.versionfile_build) if not os.path.exists(target_versionfile): @@ -189,7 +191,7 @@ # sdist farms its file list building out to egg_info if 'egg_info' in cmds: - _sdist = cmds['egg_info'] + _egg_info = cmds['egg_info'] else: from setuptools.command.egg_info import egg_info as _egg_info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/src/git/install.py new/versioneer-0.28/src/git/install.py --- old/versioneer-0.26/src/git/install.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/src/git/install.py 2022-10-27 20:45:29.000000000 +0200 @@ -16,7 +16,7 @@ if "VERSIONEER_PEP518" not in globals(): try: my_path = __file__ - if my_path.endswith(".pyc") or my_path.endswith(".pyo"): + if my_path.endswith((".pyc", ".pyo")): my_path = os.path.splitext(my_path)[0] + ".py" versioneer_file = os.path.relpath(my_path) except NameError: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/src/header.py new/versioneer-0.28/src/header.py --- old/versioneer-0.26/src/header.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/src/header.py 2022-10-27 20:45:29.000000000 +0200 @@ -21,11 +21,15 @@ from pathlib import Path from typing import Callable, Dict import functools -try: - import tomli - have_tomli = True -except ImportError: - have_tomli = False + +have_tomllib = True +if sys.version_info >= (3, 11): + import tomllib +else: + try: + import tomli as tomllib + except ImportError: + have_tomllib = False class VersioneerBadRootError(Exception): ... # --STRIP DURING BUILD @@ -82,12 +86,12 @@ pyproject_toml = root / "pyproject.toml" setup_cfg = root / "setup.cfg" section = None - if pyproject_toml.exists() and have_tomli: + if pyproject_toml.exists() and have_tomllib: try: with open(pyproject_toml, 'rb') as fobj: - pp = tomli.load(fobj) + pp = tomllib.load(fobj) section = pp['tool']['versioneer'] - except (tomli.TOMLDecodeError, KeyError): + except (tomllib.TOMLDecodeError, KeyError): pass if not section: parser = configparser.ConfigParser() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/test/demoapp2-setuptools/setup.py new/versioneer-0.28/test/demoapp2-setuptools/setup.py --- old/versioneer-0.26/test/demoapp2-setuptools/setup.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/test/demoapp2-setuptools/setup.py 2022-10-27 20:45:29.000000000 +0200 @@ -2,6 +2,8 @@ from setuptools import setup import versioneer commands = versioneer.get_cmdclass().copy() +# Updating our updated commands should be safe +commands = versioneer.get_cmdclass(commands).copy() setup(name="demoapp2", version=versioneer.get_version(), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/test/demoappext-setuptools/demo/ext.c new/versioneer-0.28/test/demoappext-setuptools/demo/ext.c --- old/versioneer-0.26/test/demoappext-setuptools/demo/ext.c 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/test/demoappext-setuptools/demo/ext.c 2022-10-27 20:45:29.000000000 +0200 @@ -1,15 +1,17 @@ -/* Generated by Cython 0.29.21 */ +/* Generated by Cython 0.29.32 */ +#ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #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_21" -#define CYTHON_HEX_VERSION 0x001D15F0 -#define CYTHON_FUTURE_DIVISION 0 +#define CYTHON_ABI "0_29_32" +#define CYTHON_HEX_VERSION 0x001D20F0 +#define CYTHON_FUTURE_DIVISION 1 #include <stddef.h> #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) @@ -47,6 +49,7 @@ #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP @@ -83,10 +86,14 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC (PYPY_VERSION_HEX >= 0x07030900) + #endif #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -124,10 +131,59 @@ #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif @@ -155,7 +211,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) @@ -170,11 +226,14 @@ #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif - #ifndef CYTHON_FAST_THREAD_STATE + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL - #define CYTHON_FAST_PYCALL 1 + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) @@ -185,15 +244,23 @@ #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif - #ifndef CYTHON_USE_EXC_INFO_STACK + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #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 @@ -310,9 +377,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) @@ -426,8 +552,12 @@ #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 + #if defined(PyUnicode_IS_READY) #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) + #else + #define __Pyx_PyUnicode_READY(op) (0) + #endif #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) @@ -436,7 +566,11 @@ #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif @@ -542,10 +676,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)) @@ -570,8 +704,10 @@ } __Pyx_PyAsyncMethodsStruct; #endif -#if defined(WIN32) || defined(MS_WINDOWS) - #define _USE_MATH_DEFINES +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif #endif #include <math.h> #ifdef NAN @@ -701,6 +837,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 @@ -813,7 +950,7 @@ static const char *__pyx_f[] = { - "test/demoappext-setuptools/demo/ext.pyx", + "ext.pyx", }; /*--- Type declarations ---*/ @@ -987,6 +1124,11 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); @@ -1028,19 +1170,19 @@ static const char __pyx_k_name[] = "__name__"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_print[] = "print"; +static const char __pyx_k_ext_pyx[] = "ext.pyx"; static const char __pyx_k_demo_ext[] = "demo.ext"; static const char __pyx_k_Extension_code[] = "Extension code"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_test_demoappext_setuptools_demo[] = "test/demoappext-setuptools/demo/ext.pyx"; -static PyObject *__pyx_kp_s_Extension_code; +static PyObject *__pyx_kp_u_Extension_code; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_demo_ext; +static PyObject *__pyx_kp_s_ext_pyx; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_print; static PyObject *__pyx_n_s_run; static PyObject *__pyx_n_s_test; -static PyObject *__pyx_kp_s_test_demoappext_setuptools_demo; static PyObject *__pyx_pf_4demo_3ext_run(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ static PyObject *__pyx_tuple_; static PyObject *__pyx_codeobj__2; @@ -1151,15 +1293,15 @@ #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_Extension_code, __pyx_k_Extension_code, sizeof(__pyx_k_Extension_code), 0, 0, 1, 0}, + {&__pyx_kp_u_Extension_code, __pyx_k_Extension_code, sizeof(__pyx_k_Extension_code), 0, 1, 0, 0}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_demo_ext, __pyx_k_demo_ext, sizeof(__pyx_k_demo_ext), 0, 0, 1, 1}, + {&__pyx_kp_s_ext_pyx, __pyx_k_ext_pyx, sizeof(__pyx_k_ext_pyx), 0, 0, 1, 0}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_kp_s_test_demoappext_setuptools_demo, __pyx_k_test_demoappext_setuptools_demo, sizeof(__pyx_k_test_demoappext_setuptools_demo), 0, 0, 1, 0}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { @@ -1178,7 +1320,7 @@ * def run(): * print("Extension code") # <<<<<<<<<<<<<< */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_Extension_code); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 4, __pyx_L1_error) + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_Extension_code); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); @@ -1188,7 +1330,7 @@ * def run(): # <<<<<<<<<<<<<< * print("Extension code") */ - __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_test_demoappext_setuptools_demo, __pyx_n_s_run, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 3, __pyx_L1_error) + __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_ext_pyx, __pyx_n_s_run, 3, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 3, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; @@ -1412,11 +1554,9 @@ #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ - #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - #ifdef WITH_THREAD /* Python build with threading support? */ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS PyEval_InitThreads(); #endif - #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; @@ -1564,7 +1704,7 @@ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; - ternaryfunc call = func->ob_type->tp_call; + ternaryfunc call = Py_TYPE(func)->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) @@ -1662,7 +1802,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; @@ -1756,33 +1896,40 @@ #include "compile.h" #include "frameobject.h" #include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif 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, @@ -1801,11 +1948,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, @@ -1813,14 +1965,24 @@ PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); - if (!py_code) goto bad; + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( @@ -1839,7 +2001,14 @@ /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { @@ -1892,7 +2061,14 @@ /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -2081,7 +2257,14 @@ /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { @@ -2370,11 +2553,33 @@ /* CheckBinaryVersion */ static int __Pyx_check_binary_version(void) { - char ctversion[4], rtversion[4]; - PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); - PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion()); - if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } PyOS_snprintf(message, sizeof(message), "compiletime version %s of module '%.100s' " "does not match runtime version %s", @@ -2632,6 +2837,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/versioneer-0.26/test/test_render.py new/versioneer-0.28/test/test_render.py --- old/versioneer-0.26/test/test_render.py 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/test/test_render.py 2022-10-27 20:45:29.000000000 +0200 @@ -3,7 +3,7 @@ from versioneer import render -class Testing_renderer_case_mixin(object): +class Testing_renderer_case_mixin: """ This is a mixin object which can be combined with a unittest.TestCase which defines a style and an expected dictionary. See Test_pep440 for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/tox.ini new/versioneer-0.28/tox.ini --- old/versioneer-0.26/tox.ini 2022-09-06 19:08:48.000000000 +0200 +++ new/versioneer-0.28/tox.ini 2022-10-27 20:45:29.000000000 +0200 @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py{37,38,39,310,py3}-{linux,windows} +envlist = py{37,38,39,310,311,py3}-{linux,windows} skip_missing_interpreters = True [flake8] @@ -16,6 +16,7 @@ 3.8: py38 3.9: py39 3.10: py310 + 3.11: py311 pypy-3.9: pypy3 [gh-actions:env] @@ -33,7 +34,7 @@ packaging>=20 pip>=20 build - tomli + tomli; python_version < "3.11" !pypy3: mypy commands = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/versioneer.egg-info/PKG-INFO new/versioneer-0.28/versioneer.egg-info/PKG-INFO --- old/versioneer-0.26/versioneer.egg-info/PKG-INFO 2022-09-06 19:09:01.000000000 +0200 +++ new/versioneer-0.28/versioneer.egg-info/PKG-INFO 2022-10-27 20:45:45.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: versioneer -Version: 0.26 +Version: 0.28 Summary: Easy VCS-based management of project version strings Author: Brian Warner Maintainer-email: Christopher Markiewicz <effig...@gmail.com>, Nathan Buckner <buckne...@users.noreply.github.com> @@ -69,21 +69,27 @@ ### Vendored mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) + * Note that you will need to add `tomli; python_version < "3.11"` to your + build-time dependencies if you use `pyproject.toml` * run `versioneer install --vendor` in your source tree, commit the results * verify version information with `python setup.py version` ### Build-time dependency mode * `pip install versioneer` to somewhere in your $PATH -* add a `[tool.versioneer]` section to your `pyproject.toml or a + * A [conda-forge recipe](https://github.com/conda-forge/versioneer-feedstock) is + available, so you can also use `conda install -c conda-forge versioneer` +* add a `[tool.versioneer]` section to your `pyproject.toml` or a `[versioneer]` section to your `setup.cfg` (see [Install](INSTALL.md)) -* add `versioneer` to the `requires` key of the `build-system` table in - `pyproject.toml`: +* add `versioneer` (with `[toml]` extra, if configuring in `pyproject.toml`) + to the `requires` key of the `build-system` table in `pyproject.toml`: ```toml [build-system] - requires = ["setuptools", "versioneer"] + requires = ["setuptools", "versioneer[toml]"] build-backend = "setuptools.build_meta" ``` * run `versioneer install --no-vendor` in your source tree, commit the results @@ -325,9 +331,8 @@ To make Versioneer easier to embed, all its code is dedicated to the public domain. The `_version.py` that it creates is also in the public domain. -Specifically, both are released under the Creative Commons "Public Domain -Dedication" license (CC0-1.0), as described in -https://creativecommons.org/publicdomain/zero/1.0/ . +Specifically, both are released under the "Unlicense", as described in +https://unlicense.org/. [pypi-image]: https://img.shields.io/pypi/v/versioneer.svg [pypi-url]: https://pypi.python.org/pypi/versioneer/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/versioneer.egg-info/SOURCES.txt new/versioneer-0.28/versioneer.egg-info/SOURCES.txt --- old/versioneer-0.26/versioneer.egg-info/SOURCES.txt 2022-09-06 19:09:01.000000000 +0200 +++ new/versioneer-0.28/versioneer.egg-info/SOURCES.txt 2022-10-27 20:45:45.000000000 +0200 @@ -6,7 +6,6 @@ details.md developers.md pyproject.toml -setup.cfg setup.py tox.ini src/__init__.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/versioneer-0.26/versioneer.egg-info/requires.txt new/versioneer-0.28/versioneer.egg-info/requires.txt --- old/versioneer-0.26/versioneer.egg-info/requires.txt 2022-09-06 19:09:01.000000000 +0200 +++ new/versioneer-0.28/versioneer.egg-info/requires.txt 2022-10-27 20:45:45.000000000 +0200 @@ -1,3 +1,5 @@ [toml] + +[toml:python_version < "3.11"] tomli