Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-roman for openSUSE:Factory checked in at 2025-05-09 18:50:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-roman (Old) and /work/SRC/openSUSE:Factory/.python-roman.new.30101 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-roman" Fri May 9 18:50:35 2025 rev:14 rq:1276020 version:5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-roman/python-roman.changes 2023-05-04 17:09:04.455837915 +0200 +++ /work/SRC/openSUSE:Factory/.python-roman.new.30101/python-roman.changes 2025-05-09 18:53:08.929548006 +0200 @@ -1,0 +2,13 @@ +Fri May 9 05:17:15 UTC 2025 - Steve Kowalik <[email protected]> + +- Update to 5.0: + * Drop support for Python 3.7, 3.8. + * Add support for lower case roman numerals. + * Remove overlooked mentions of the Python 2.1.1 license + * Add support for Python 3.12 and 3.13. + * Change license to the Zope Public License (ZPL) version 2.1 + * Add support for Python 3.10, 3.11. + * Drop support for Python 2.7, 3.5, 3.6. +- Switch to pyproject macros. + +------------------------------------------------------------------- Old: ---- roman-3.3.tar.gz New: ---- roman-5.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-roman.spec ++++++ --- /var/tmp/diff_new_pack.yQhYIC/_old 2025-05-09 18:53:09.413568140 +0200 +++ /var/tmp/diff_new_pack.yQhYIC/_new 2025-05-09 18:53:09.413568140 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-roman # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,19 +17,22 @@ %define packagename roman -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?sle15_python_module_pythons} Name: python-roman -Version: 3.3 +Version: 5.0 Release: 0 Summary: Integer to Roman numerals converter -License: Python-2.0 -Group: Development/Languages/Python +License: ZPL-2.1 URL: https://github.com/zopefoundation/roman Source: https://files.pythonhosted.org/packages/source/r/roman/%{packagename}-%{version}.tar.gz +BuildRequires: %{python_module base >= 3.9} +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros +Requires(post): update-alternatives +Requires(postun): update-alternatives BuildArch: noarch %python_subpackages @@ -41,10 +44,10 @@ %setup -q -n %{packagename}-%{version} %build -%python_build +%pyproject_wheel %install -%python_install +%pyproject_install %python_clone -a %{buildroot}%{_bindir}/%{packagename} %python_expand %fdupes %{buildroot}%{$python_sitelib} %prepare_alternative %{packagename} @@ -59,9 +62,10 @@ %pyunittest discover -v src %files %{python_files} -%doc CHANGES.txt -%pycache_only %{python_sitelib}/__pycache__/%{packagename}* -%{python_sitelib}/*egg-info/ +%doc README.rst CHANGES.rst +%license LICENSE.txt +%pycache_only %{python_sitelib}/__pycache__/%{packagename}*pyc +%{python_sitelib}/%{packagename}-%{version}.dist-info %{python_sitelib}/%{packagename}.py %python_alternative %{_bindir}/roman ++++++ roman-3.3.tar.gz -> roman-5.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/.pre-commit-config.yaml new/roman-5.0/.pre-commit-config.yaml --- old/roman-3.3/.pre-commit-config.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/.pre-commit-config.yaml 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1,28 @@ +# Generated from: +# https://github.com/zopefoundation/meta/tree/master/config/pure-python +minimum_pre_commit_version: '3.6' +repos: + - repo: https://github.com/pycqa/isort + rev: "5.13.2" + hooks: + - id: isort + - repo: https://github.com/hhatto/autopep8 + rev: "v2.3.1" + hooks: + - id: autopep8 + args: [--in-place, --aggressive, --aggressive] + - repo: https://github.com/asottile/pyupgrade + rev: v3.19.0 + hooks: + - id: pyupgrade + args: [--py39-plus] + - repo: https://github.com/isidentical/teyit + rev: 0.4.3 + hooks: + - id: teyit + - repo: https://github.com/PyCQA/flake8 + rev: "7.1.1" + hooks: + - id: flake8 + additional_dependencies: + - flake8-debugger == 4.1.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/CHANGES.rst new/roman-5.0/CHANGES.rst --- old/roman-3.3/CHANGES.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/CHANGES.rst 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1,83 @@ +Change log +========== + +5.0 (2025-01-15) +---------------- + +- Drop support for Python 3.7, 3.8. + +- Add support for lower case roman numerals. + (`#22 <https://github.com/zopefoundation/roman/pull/22>`_) + + +4.2 (2024-04-25) +---------------- + +- Remove overlooked mentions of the Python 2.1.1 license + (`#17 <https://github.com/zopefoundation/roman/issues/17>`_) + +- Add support for Python 3.12 and 3.13. + + +4.1 (2023-05-26) +---------------- + +- Change license to the Zope Public License (ZPL) version 2.1 + (`#15 <https://github.com/zopefoundation/roman/issues/15>`_) + + +4.0 (2023-02-28) +---------------- + +- Add support for Python 3.10, 3.11. + +- Drop support for Python 2.7, 3.5, 3.6. + + +3.3 (2020-07-12) +---------------- + +- added support for Python 3.9 + +- added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman + +- added simple usage instructions + + +3.2 (2019-04-14) +---------------- + +- expanded test coverage + +- Added support for 0 -> N + (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) + +- Added support for Python 3.8 + + +3.1 (2018-10-24) +---------------- + +- Added support for Python 3.7. + + +3.0 (2018-05-28) +---------------- + +- Added support for Python 3.5, 3.6 and PyPy3. + +- Dropped support for Python 2.6 and 3.3. + + +2.0.0 (2013-02-25) +------------------ + +- Added Python 3.3 and PyPy support. + +- Added tests. + + +1.4.0 (2009-07-23) +------------------ + +- Initial PyPI release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/CHANGES.txt new/roman-5.0/CHANGES.txt --- old/roman-3.3/CHANGES.txt 2020-07-12 17:23:31.000000000 +0200 +++ new/roman-5.0/CHANGES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,50 +0,0 @@ -Change log -========== - -3.3 (2020-07-12) ----------------- - -- added support for Python 3.9 - -- added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman - -- added simple usage instructions - - -3.2 (2019-04-14) ----------------- - -- expanded test coverage - -- Added support for 0 -> N - (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) - -- Added support for Python 3.8 - - -3.1 (2018-10-24) ----------------- - -- Added support for Python 3.7. - - -3.0 (2018-05-28) ----------------- - -- Added support for Python 3.5, 3.6 and PyPy3. - -- Dropped support for Python 2.6 and 3.3. - - -2.0.0 (2013-02-25) ------------------- - -- Added Python 3.3 and PyPy support. - -- Added tests. - - -1.4.0 (2009-07-23) ------------------- - -- Initial PyPI release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/CONTRIBUTING.md new/roman-5.0/CONTRIBUTING.md --- old/roman-3.3/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/CONTRIBUTING.md 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1,23 @@ +<!-- +Generated from: +https://github.com/zopefoundation/meta/tree/master/config/pure-python +--> +# Contributing to zopefoundation projects + +The projects under the zopefoundation GitHub organization are open source and +welcome contributions in different forms: + +* bug reports +* code improvements and bug fixes +* documentation improvements +* pull request reviews + +For any changes in the repository besides trivial typo fixes you are required +to sign the contributor agreement. See +https://www.zope.dev/developer/becoming-a-committer.html for details. + +Please visit our [Developer +Guidelines](https://www.zope.dev/developer/guidelines.html) if you'd like to +contribute code changes and our [guidelines for reporting +bugs](https://www.zope.dev/developer/reporting-bugs.html) if you want to file a +bug report. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/COPYRIGHT.txt new/roman-5.0/COPYRIGHT.txt --- old/roman-3.3/COPYRIGHT.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/COPYRIGHT.txt 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1 @@ +Mark Pilgrim and Contributors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/LICENSE.txt new/roman-5.0/LICENSE.txt --- old/roman-3.3/LICENSE.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/LICENSE.txt 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1,44 @@ +Zope Public License (ZPL) Version 2.1 + +A copyright notice accompanies this license document that identifies the +copyright holders. + +This license has been certified as open source. It has also been designated as +GPL compatible by the Free Software Foundation (FSF). + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions in source code must retain the accompanying copyright +notice, this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the accompanying copyright +notice, this list of conditions, and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Names of the copyright holders must not be used to endorse or promote +products derived from this software without prior written permission from the +copyright holders. + +4. The right to distribute this software or to use it for any purpose does not +give you the right to use Servicemarks (sm) or Trademarks (tm) of the +copyright +holders. Use of them is covered by separate agreement with the copyright +holders. + +5. If any files are modified, you must cause the modified files to carry +prominent notices stating that you changed the files and the date of any +change. + +Disclaimer + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/MANIFEST.in new/roman-5.0/MANIFEST.in --- old/roman-3.3/MANIFEST.in 2019-04-14 18:13:46.000000000 +0200 +++ new/roman-5.0/MANIFEST.in 2025-01-15 07:43:12.000000000 +0100 @@ -1,9 +1,10 @@ +# Generated from: +# https://github.com/zopefoundation/meta/tree/master/config/pure-python +include *.md include *.rst include *.txt -include *.py include buildout.cfg include tox.ini +include .pre-commit-config.yaml -recursive-include src * - -global-exclude *.pyc +recursive-include src *.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/PKG-INFO new/roman-5.0/PKG-INFO --- old/roman-3.3/PKG-INFO 2020-07-12 17:28:16.000000000 +0200 +++ new/roman-5.0/PKG-INFO 2025-01-15 07:43:13.169437400 +0100 @@ -1,131 +1,163 @@ Metadata-Version: 2.1 Name: roman -Version: 3.3 +Version: 5.0 Summary: Integer to Roman numerals converter Home-page: https://github.com/zopefoundation/roman Author: Mark Pilgrim -Author-email: [email protected] -License: Python 2.1.1 -Description: .. image:: https://travis-ci.org/zopefoundation/roman.svg?branch=master - :target: https://travis-ci.org/zopefoundation/roman - - .. image:: https://coveralls.io/repos/github/zopefoundation/roman/badge.svg?branch=master - :target: https://coveralls.io/github/zopefoundation/roman?branch=master - - .. image:: https://img.shields.io/pypi/v/roman.svg - :target: https://pypi.org/project/roman/ - :alt: Current version on PyPI - - .. image:: https://img.shields.io/pypi/pyversions/roman.svg - :target: https://pypi.org/project/roman/ - :alt: Supported Python versions - - roman - ===== - - Small helper library to convert arabic to roman numerals. - - There are two ways to use this library. - - 1. Importing it into your application - - .. code-block:: python - - import roman - - # to roman - number = int(input('> ')) # 10 - print(roman.toRoman(number)) - - # from roman - number = input('> ') # X - print(roman.fromRoman(number)) - - - 2. ``roman`` CLI command - - .. code-block:: bash - - ~$ roman 972 - CMLXXII - # use the -r/--reverse to conver Roman numerals - ~$ roman -r CMLXXII - 972 - # case insensitive - ~$ roman -r cMlxxii - 972 - - - - Change log - ========== - - 3.3 (2020-07-12) - ---------------- - - - added support for Python 3.9 - - - added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman - - - added simple usage instructions - - - 3.2 (2019-04-14) - ---------------- - - - expanded test coverage - - - Added support for 0 -> N - (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) - - - Added support for Python 3.8 - - - 3.1 (2018-10-24) - ---------------- - - - Added support for Python 3.7. - - - 3.0 (2018-05-28) - ---------------- - - - Added support for Python 3.5, 3.6 and PyPy3. - - - Dropped support for Python 2.6 and 3.3. - - - 2.0.0 (2013-02-25) - ------------------ - - - Added Python 3.3 and PyPy support. - - - Added tests. - - - 1.4.0 (2009-07-23) - ------------------ - - - Initial PyPI release. - +Maintainer: Zope Foundation and Contributors +Maintainer-email: [email protected] +License: ZPL 2.1 Keywords: roman -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 -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: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: License :: OSI Approved :: Zope Public License Classifier: Programming Language :: Python Classifier: Natural Language :: English Classifier: Operating System :: OS Independent -Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.* +Requires-Python: >=3.9 Description-Content-Type: text/x-rst +License-File: LICENSE.txt + +.. image:: https://github.com/zopefoundation/roman/actions/workflows/tests.yml/badge.svg + :target: https://github.com/zopefoundation/roman/actions/workflows/tests.yml + +.. image:: https://coveralls.io/repos/github/zopefoundation/roman/badge.svg?branch=master + :target: https://coveralls.io/github/zopefoundation/roman?branch=master + +.. image:: https://img.shields.io/pypi/v/roman.svg + :target: https://pypi.org/project/roman/ + :alt: Current version on PyPI + +.. image:: https://img.shields.io/pypi/pyversions/roman.svg + :target: https://pypi.org/project/roman/ + :alt: Supported Python versions + +roman +===== + +Small helper library to convert arabic to roman numerals. + +There are two ways to use this library. + +1. Importing it into your application + +.. code-block:: python + + import roman + + # to roman + number = int(input('> ')) # 10 + print(roman.toRoman(number)) + + # from roman + number = input('> ') # X + print(roman.fromRoman(number)) + + +2. ``roman`` CLI command + +.. code-block:: bash + + ~$ roman 972 + CMLXXII + # use the -r/--reverse to convert Roman numerals + ~$ roman -r CMLXXII + 972 + # case insensitive + ~$ roman -r cMlxxii + 972 + + + +Change log +========== + +5.0 (2025-01-15) +---------------- + +- Drop support for Python 3.7, 3.8. + +- Add support for lower case roman numerals. + (`#22 <https://github.com/zopefoundation/roman/pull/22>`_) + + +4.2 (2024-04-25) +---------------- + +- Remove overlooked mentions of the Python 2.1.1 license + (`#17 <https://github.com/zopefoundation/roman/issues/17>`_) + +- Add support for Python 3.12 and 3.13. + + +4.1 (2023-05-26) +---------------- + +- Change license to the Zope Public License (ZPL) version 2.1 + (`#15 <https://github.com/zopefoundation/roman/issues/15>`_) + + +4.0 (2023-02-28) +---------------- + +- Add support for Python 3.10, 3.11. + +- Drop support for Python 2.7, 3.5, 3.6. + + +3.3 (2020-07-12) +---------------- + +- added support for Python 3.9 + +- added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman + +- added simple usage instructions + + +3.2 (2019-04-14) +---------------- + +- expanded test coverage + +- Added support for 0 -> N + (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) + +- Added support for Python 3.8 + + +3.1 (2018-10-24) +---------------- + +- Added support for Python 3.7. + + +3.0 (2018-05-28) +---------------- + +- Added support for Python 3.5, 3.6 and PyPy3. + +- Dropped support for Python 2.6 and 3.3. + + +2.0.0 (2013-02-25) +------------------ + +- Added Python 3.3 and PyPy support. + +- Added tests. + + +1.4.0 (2009-07-23) +------------------ + +- Initial PyPI release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/README.rst new/roman-5.0/README.rst --- old/roman-3.3/README.rst 2020-07-12 17:26:07.000000000 +0200 +++ new/roman-5.0/README.rst 2025-01-15 07:43:12.000000000 +0100 @@ -1,5 +1,5 @@ -.. image:: https://travis-ci.org/zopefoundation/roman.svg?branch=master - :target: https://travis-ci.org/zopefoundation/roman +.. image:: https://github.com/zopefoundation/roman/actions/workflows/tests.yml/badge.svg + :target: https://github.com/zopefoundation/roman/actions/workflows/tests.yml .. image:: https://coveralls.io/repos/github/zopefoundation/roman/badge.svg?branch=master :target: https://coveralls.io/github/zopefoundation/roman?branch=master @@ -40,7 +40,7 @@ ~$ roman 972 CMLXXII - # use the -r/--reverse to conver Roman numerals + # use the -r/--reverse to convert Roman numerals ~$ roman -r CMLXXII 972 # case insensitive diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/bootstrap.py new/roman-5.0/bootstrap.py --- old/roman-3.3/bootstrap.py 2019-04-14 18:14:21.000000000 +0200 +++ new/roman-5.0/bootstrap.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,189 +0,0 @@ -############################################################################## -# -# Copyright (c) 2006 Zope Foundation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## -"""Bootstrap a buildout-based project - -Simply run this script in a directory containing a buildout.cfg. -The script accepts buildout command-line options, so you can -use the -c option to specify an alternate configuration file. -""" - -import os -import shutil -import sys -import tempfile - -from optparse import OptionParser - -tmpeggs = tempfile.mkdtemp() - -usage = '''\ -[DESIRED PYTHON FOR BUILDOUT] bootstrap.py [options] - -Bootstraps a buildout-based project. - -Simply run this script in a directory containing a buildout.cfg, using the -Python that you want bin/buildout to use. - -Note that by using --find-links to point to local resources, you can keep -this script from going over the network. -''' - -parser = OptionParser(usage=usage) -parser.add_option("-v", "--version", help="use a specific zc.buildout version") - -parser.add_option("-t", "--accept-buildout-test-releases", - dest='accept_buildout_test_releases', - action="store_true", default=False, - help=("Normally, if you do not specify a --version, the " - "bootstrap script and buildout gets the newest " - "*final* versions of zc.buildout and its recipes and " - "extensions for you. If you use this flag, " - "bootstrap and buildout will get the newest releases " - "even if they are alphas or betas.")) -parser.add_option("-c", "--config-file", - help=("Specify the path to the buildout configuration " - "file to be used.")) -parser.add_option("-f", "--find-links", - help=("Specify a URL to search for buildout releases")) -parser.add_option("--allow-site-packages", - action="store_true", default=False, - help=("Let bootstrap.py use existing site packages")) -parser.add_option("--setuptools-version", - help="use a specific setuptools version") - - -options, args = parser.parse_args() - -###################################################################### -# load/install setuptools - -try: - if options.allow_site_packages: - import setuptools - import pkg_resources - from urllib.request import urlopen -except ImportError: - from urllib2 import urlopen - -ez = {} -exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) - -if not options.allow_site_packages: - # ez_setup imports site, which adds site packages - # this will remove them from the path to ensure that incompatible versions - # of setuptools are not in the path - import site - # inside a virtualenv, there is no 'getsitepackages'. - # We can't remove these reliably - if hasattr(site, 'getsitepackages'): - for sitepackage_path in site.getsitepackages(): - sys.path[:] = [x for x in sys.path if sitepackage_path not in x] - -setup_args = dict(to_dir=tmpeggs, download_delay=0) - -if options.setuptools_version is not None: - setup_args['version'] = options.setuptools_version - -ez['use_setuptools'](**setup_args) -import setuptools -import pkg_resources - -# This does not (always?) update the default working set. We will -# do it. -for path in sys.path: - if path not in pkg_resources.working_set.entries: - pkg_resources.working_set.add_entry(path) - -###################################################################### -# Install buildout - -ws = pkg_resources.working_set - -cmd = [sys.executable, '-c', - 'from setuptools.command.easy_install import main; main()', - '-mZqNxd', tmpeggs] - -find_links = os.environ.get( - 'bootstrap-testing-find-links', - options.find_links or - ('http://downloads.buildout.org/' - if options.accept_buildout_test_releases else None) - ) -if find_links: - cmd.extend(['-f', find_links]) - -setuptools_path = ws.find( - pkg_resources.Requirement.parse('setuptools')).location - -requirement = 'zc.buildout' -version = options.version -if version is None and not options.accept_buildout_test_releases: - # Figure out the most recent final version of zc.buildout. - import setuptools.package_index - _final_parts = '*final-', '*final' - - def _final_version(parsed_version): - try: - return not parsed_version.is_prerelease - except AttributeError: - # Older setuptools - for part in parsed_version: - if (part[:1] == '*') and (part not in _final_parts): - return False - return True - - index = setuptools.package_index.PackageIndex( - search_path=[setuptools_path]) - if find_links: - index.add_find_links((find_links,)) - req = pkg_resources.Requirement.parse(requirement) - if index.obtain(req) is not None: - best = [] - bestv = None - for dist in index[req.project_name]: - distv = dist.parsed_version - if _final_version(distv): - if bestv is None or distv > bestv: - best = [dist] - bestv = distv - elif distv == bestv: - best.append(dist) - if best: - best.sort() - version = best[-1].version -if version: - requirement = '=='.join((requirement, version)) -cmd.append(requirement) - -import subprocess -if subprocess.call(cmd, env=dict(os.environ, PYTHONPATH=setuptools_path)) != 0: - raise Exception( - "Failed to execute command:\n%s" % repr(cmd)[1:-1]) - -###################################################################### -# Import and run buildout - -ws.add_entry(tmpeggs) -ws.require(requirement) -import zc.buildout.buildout - -if not [a for a in args if '=' not in a]: - args.append('bootstrap') - -# if -c was provided, we push it back into args for buildout' main function -if options.config_file is not None: - args[0:0] = ['-c', options.config_file] - -zc.buildout.buildout.main(args) -shutil.rmtree(tmpeggs) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/buildout.cfg new/roman-5.0/buildout.cfg --- old/roman-3.3/buildout.cfg 2020-07-12 16:59:25.000000000 +0200 +++ new/roman-5.0/buildout.cfg 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -[buildout] -develop = . -parts = - test - -[test] -recipe = zc.recipe.testrunner -eggs = roman diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/pyproject.toml new/roman-5.0/pyproject.toml --- old/roman-3.3/pyproject.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/roman-5.0/pyproject.toml 2025-01-15 07:43:12.000000000 +0100 @@ -0,0 +1,21 @@ +# +# Generated from: +# https://github.com/zopefoundation/meta/tree/master/config/pure-python + +[build-system] +requires = ["setuptools <= 75.6.0"] +build-backend = "setuptools.build_meta" + +[tool.coverage.run] +branch = true +source = ["roman"] + +[tool.coverage.report] +fail_under = 100 +precision = 2 +ignore_errors = true +show_missing = true +exclude_lines = ["pragma: no cover", "pragma: nocover", "except ImportError:", "raise NotImplementedError", "if __name__ == '__main__':", "self.fail", "raise AssertionError", "raise unittest.Skip"] + +[tool.coverage.html] +directory = "parts/htmlcov" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/setup.cfg new/roman-5.0/setup.cfg --- old/roman-3.3/setup.cfg 2020-07-12 17:28:16.000000000 +0200 +++ new/roman-5.0/setup.cfg 2025-01-15 07:43:13.169712500 +0100 @@ -1,32 +1,22 @@ -[bdist_wheel] -universal = 1 +[flake8] +doctests = 1 + +[check-manifest] +ignore = + .editorconfig + .meta.toml [isort] force_single_line = True combine_as_imports = True +sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER +known_third_party = docutils, pkg_resources, pytz +known_zope = +known_first_party = +default_section = ZOPE line_length = 79 lines_after_imports = 2 -[flake8] -no-accept-encodings = True -exclude = - bootstrap.py - -[coverage:run] -branch = True -source = src -omit = - -[coverage:report] -fail_under = 95.0 -ignore_errors = True -precision = 2 -show_missing = False -sort = Name - -[coverage:html] -directory = parts/coverage - [egg_info] tag_build = tag_date = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/setup.py new/roman-5.0/setup.py --- old/roman-3.3/setup.py 2020-07-12 17:28:06.000000000 +0200 +++ new/roman-5.0/setup.py 2025-01-15 07:43:12.000000000 +0100 @@ -1,42 +1,56 @@ +############################################################################## +# +# Copyright (c) 2001 Mark Pilgrim and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## + from setuptools import setup -desc = ('%s\n\n%s' % (open('README.rst').read(), open('CHANGES.txt').read())) +desc = ('{}\n\n{}'.format(open('README.rst').read(), + open('CHANGES.rst').read())) setup( name='roman', - version='3.3', + version='5.0', author="Mark Pilgrim", - author_email="[email protected]", + maintainer="Zope Foundation and Contributors", + maintainer_email="[email protected]", description="Integer to Roman numerals converter", long_description=desc, long_description_content_type='text/x-rst', - license="Python 2.1.1", + license="ZPL 2.1", keywords="roman", classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', - 'License :: OSI Approved :: Python Software Foundation License', + 'License :: OSI Approved :: Zope Public License', 'Programming Language :: Python', 'Natural Language :: English', - 'Operating System :: OS Independent'], + 'Operating System :: OS Independent', + ], url='https://github.com/zopefoundation/roman', package_dir={"": "src"}, - python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*', + python_requires='>=3.9', py_modules=["roman"], include_package_data=True, - test_suite='tests', zip_safe=True, entry_points={ 'console_scripts': [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/src/roman.egg-info/PKG-INFO new/roman-5.0/src/roman.egg-info/PKG-INFO --- old/roman-3.3/src/roman.egg-info/PKG-INFO 2020-07-12 17:28:16.000000000 +0200 +++ new/roman-5.0/src/roman.egg-info/PKG-INFO 2025-01-15 07:43:13.000000000 +0100 @@ -1,131 +1,163 @@ Metadata-Version: 2.1 Name: roman -Version: 3.3 +Version: 5.0 Summary: Integer to Roman numerals converter Home-page: https://github.com/zopefoundation/roman Author: Mark Pilgrim -Author-email: [email protected] -License: Python 2.1.1 -Description: .. image:: https://travis-ci.org/zopefoundation/roman.svg?branch=master - :target: https://travis-ci.org/zopefoundation/roman - - .. image:: https://coveralls.io/repos/github/zopefoundation/roman/badge.svg?branch=master - :target: https://coveralls.io/github/zopefoundation/roman?branch=master - - .. image:: https://img.shields.io/pypi/v/roman.svg - :target: https://pypi.org/project/roman/ - :alt: Current version on PyPI - - .. image:: https://img.shields.io/pypi/pyversions/roman.svg - :target: https://pypi.org/project/roman/ - :alt: Supported Python versions - - roman - ===== - - Small helper library to convert arabic to roman numerals. - - There are two ways to use this library. - - 1. Importing it into your application - - .. code-block:: python - - import roman - - # to roman - number = int(input('> ')) # 10 - print(roman.toRoman(number)) - - # from roman - number = input('> ') # X - print(roman.fromRoman(number)) - - - 2. ``roman`` CLI command - - .. code-block:: bash - - ~$ roman 972 - CMLXXII - # use the -r/--reverse to conver Roman numerals - ~$ roman -r CMLXXII - 972 - # case insensitive - ~$ roman -r cMlxxii - 972 - - - - Change log - ========== - - 3.3 (2020-07-12) - ---------------- - - - added support for Python 3.9 - - - added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman - - - added simple usage instructions - - - 3.2 (2019-04-14) - ---------------- - - - expanded test coverage - - - Added support for 0 -> N - (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) - - - Added support for Python 3.8 - - - 3.1 (2018-10-24) - ---------------- - - - Added support for Python 3.7. - - - 3.0 (2018-05-28) - ---------------- - - - Added support for Python 3.5, 3.6 and PyPy3. - - - Dropped support for Python 2.6 and 3.3. - - - 2.0.0 (2013-02-25) - ------------------ - - - Added Python 3.3 and PyPy support. - - - Added tests. - - - 1.4.0 (2009-07-23) - ------------------ - - - Initial PyPI release. - +Maintainer: Zope Foundation and Contributors +Maintainer-email: [email protected] +License: ZPL 2.1 Keywords: roman -Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 -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: Programming Language :: Python :: 3.11 +Classifier: Programming Language :: Python :: 3.12 +Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: License :: OSI Approved :: Python Software Foundation License +Classifier: License :: OSI Approved :: Zope Public License Classifier: Programming Language :: Python Classifier: Natural Language :: English Classifier: Operating System :: OS Independent -Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.* +Requires-Python: >=3.9 Description-Content-Type: text/x-rst +License-File: LICENSE.txt + +.. image:: https://github.com/zopefoundation/roman/actions/workflows/tests.yml/badge.svg + :target: https://github.com/zopefoundation/roman/actions/workflows/tests.yml + +.. image:: https://coveralls.io/repos/github/zopefoundation/roman/badge.svg?branch=master + :target: https://coveralls.io/github/zopefoundation/roman?branch=master + +.. image:: https://img.shields.io/pypi/v/roman.svg + :target: https://pypi.org/project/roman/ + :alt: Current version on PyPI + +.. image:: https://img.shields.io/pypi/pyversions/roman.svg + :target: https://pypi.org/project/roman/ + :alt: Supported Python versions + +roman +===== + +Small helper library to convert arabic to roman numerals. + +There are two ways to use this library. + +1. Importing it into your application + +.. code-block:: python + + import roman + + # to roman + number = int(input('> ')) # 10 + print(roman.toRoman(number)) + + # from roman + number = input('> ') # X + print(roman.fromRoman(number)) + + +2. ``roman`` CLI command + +.. code-block:: bash + + ~$ roman 972 + CMLXXII + # use the -r/--reverse to convert Roman numerals + ~$ roman -r CMLXXII + 972 + # case insensitive + ~$ roman -r cMlxxii + 972 + + + +Change log +========== + +5.0 (2025-01-15) +---------------- + +- Drop support for Python 3.7, 3.8. + +- Add support for lower case roman numerals. + (`#22 <https://github.com/zopefoundation/roman/pull/22>`_) + + +4.2 (2024-04-25) +---------------- + +- Remove overlooked mentions of the Python 2.1.1 license + (`#17 <https://github.com/zopefoundation/roman/issues/17>`_) + +- Add support for Python 3.12 and 3.13. + + +4.1 (2023-05-26) +---------------- + +- Change license to the Zope Public License (ZPL) version 2.1 + (`#15 <https://github.com/zopefoundation/roman/issues/15>`_) + + +4.0 (2023-02-28) +---------------- + +- Add support for Python 3.10, 3.11. + +- Drop support for Python 2.7, 3.5, 3.6. + + +3.3 (2020-07-12) +---------------- + +- added support for Python 3.9 + +- added CLI command ``roman`` with ``-r/--reverse`` to convert back from Roman + +- added simple usage instructions + + +3.2 (2019-04-14) +---------------- + +- expanded test coverage + +- Added support for 0 -> N + (see https://en.wikipedia.org/wiki/Roman_numerals#Zero) + +- Added support for Python 3.8 + + +3.1 (2018-10-24) +---------------- + +- Added support for Python 3.7. + + +3.0 (2018-05-28) +---------------- + +- Added support for Python 3.5, 3.6 and PyPy3. + +- Dropped support for Python 2.6 and 3.3. + + +2.0.0 (2013-02-25) +------------------ + +- Added Python 3.3 and PyPy support. + +- Added tests. + + +1.4.0 (2009-07-23) +------------------ + +- Initial PyPI release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/src/roman.egg-info/SOURCES.txt new/roman-5.0/src/roman.egg-info/SOURCES.txt --- old/roman-3.3/src/roman.egg-info/SOURCES.txt 2020-07-12 17:28:16.000000000 +0200 +++ new/roman-5.0/src/roman.egg-info/SOURCES.txt 2025-01-15 07:43:13.000000000 +0100 @@ -1,8 +1,11 @@ -CHANGES.txt +.pre-commit-config.yaml +CHANGES.rst +CONTRIBUTING.md +COPYRIGHT.txt +LICENSE.txt MANIFEST.in README.rst -bootstrap.py -buildout.cfg +pyproject.toml setup.cfg setup.py tox.ini diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/src/roman.egg-info/entry_points.txt new/roman-5.0/src/roman.egg-info/entry_points.txt --- old/roman-3.3/src/roman.egg-info/entry_points.txt 2020-07-12 17:28:16.000000000 +0200 +++ new/roman-5.0/src/roman.egg-info/entry_points.txt 2025-01-15 07:43:13.000000000 +0100 @@ -1,3 +1,2 @@ [console_scripts] roman = roman:main - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/src/roman.py new/roman-5.0/src/roman.py --- old/roman-3.3/src/roman.py 2020-07-12 17:15:16.000000000 +0200 +++ new/roman-5.0/src/roman.py 2025-01-15 07:43:12.000000000 +0100 @@ -1,24 +1,27 @@ -from __future__ import print_function - - +############################################################################## +# +# Copyright (c) 2001 Mark Pilgrim and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## """Convert to and from Roman numerals""" __author__ = "Mark Pilgrim ([email protected])" -__version__ = "1.4" -__date__ = "8 August 2001" __copyright__ = """Copyright (c) 2001 Mark Pilgrim This program is part of "Dive Into Python", a free Python tutorial for experienced programmers. Visit http://diveintopython.org/ for the latest version. - -This program is free software; you can redistribute it and/or modify -it under the terms of the Python 2.1.1 license, available at -http://www.python.org/2.1.1/license.html """ import argparse -import os import re import sys @@ -59,7 +62,7 @@ def toRoman(n): """convert integer to Roman numeral""" if not isinstance(n, int): - raise NotIntegerError("decimals can not be converted") + raise NotIntegerError("decimals cannot be converted") if not (-1 < n < 5000): raise OutOfRangeError("number out of range (must be 0..4999)") @@ -91,8 +94,11 @@ def fromRoman(s): """convert Roman numeral to integer""" + if not s: - raise InvalidRomanNumeralError('Input can not be blank') + raise InvalidRomanNumeralError('Input cannot be blank') + + s = s.upper() # Handle lowercase inputs # special case if s == 'N': @@ -130,16 +136,15 @@ def main(): args = parse_args() if args.reverse: - u = args.number.upper() - r = fromRoman(u) + r = fromRoman(args.number) print(r) else: i = int(args.number) n = toRoman(i) print(n) - return os.EX_OK + return 0 -if __name__ == "__main__": - sys.exit(main()) +if __name__ == "__main__": # pragma: no cover + sys.exit(main()) # pragma: no cover diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/src/tests.py new/roman-5.0/src/tests.py --- old/roman-3.3/src/tests.py 2020-07-12 17:15:37.000000000 +0200 +++ new/roman-5.0/src/tests.py 2025-01-15 07:43:12.000000000 +0100 @@ -1,12 +1,20 @@ +############################################################################## +# +# Copyright (c) 2001 Mark Pilgrim and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## import os import sys import unittest - - -if sys.version_info[0] > 2: - from io import StringIO -else: - from StringIO import StringIO +from io import StringIO import roman @@ -17,18 +25,13 @@ (900, 'CM'), (990, 'CMXC'), (998, 'CMXCVIII'), (999, 'CMXCIX'), (2013, 'MMXIII')) -if sys.version_info[0] > 2: - _str = str -else: - _str = unicode # NOQA: F821 - class TestRoman(unittest.TestCase): def test_toRoman(self): for num_arabic, num_roman in TEST_MAP: self.assertEqual(roman.toRoman(num_arabic), num_roman, - '%s should be %s' % (num_arabic, num_roman)) + f'{num_arabic} should be {num_roman}') def test_toRoman_errors(self): self.assertRaises(roman.OutOfRangeError, roman.toRoman, 100000) @@ -37,7 +40,7 @@ def test_fromRoman(self): for num_arabic, num_roman in TEST_MAP: self.assertEqual(roman.fromRoman(num_roman), num_arabic, - '%s should be %s' % (num_roman, num_arabic)) + f'{num_roman} should be {num_arabic}') def test_fromRoman_errors(self): self.assertRaises( @@ -53,7 +56,7 @@ def test_main_toRoman(self): for num_arabic, num_roman in TEST_MAP: - sys.argv = ['roman', _str(num_arabic)] + sys.argv = ['roman', str(num_arabic)] sys.stdout = StringIO() ex_st = roman.main() output = sys.stdout.getvalue().strip() @@ -66,7 +69,7 @@ sys.stdout = StringIO() ex_st = roman.main() output = sys.stdout.getvalue().strip() - self.assertEqual(output, _str(num_arabic)) + self.assertEqual(output, str(num_arabic)) self.assertEqual(ex_st, os.EX_OK) def test_main_fromRoman_caseInsensitive(self): @@ -75,9 +78,9 @@ sys.stdout = StringIO() ex_st = roman.main() output = sys.stdout.getvalue().strip() - self.assertEqual(output, _str(num_arabic)) + self.assertEqual(output, str(num_arabic)) self.assertEqual(ex_st, os.EX_OK) def test_suite(): - return unittest.makeSuite(TestRoman) + return unittest.defaultTestLoader.loadTestsFromTestCase(TestRoman) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/roman-3.3/tox.ini new/roman-5.0/tox.ini --- old/roman-3.3/tox.ini 2020-07-12 17:09:18.000000000 +0200 +++ new/roman-5.0/tox.ini 2025-01-15 07:43:12.000000000 +0100 @@ -1,75 +1,75 @@ +# Generated from: +# https://github.com/zopefoundation/meta/tree/master/config/pure-python [tox] +minversion = 3.18 envlist = - py27, - py35, - py36, - py37, - py38, - py39, - pypy, - pypy3, - lint, + release-check + lint + py39 + py310 + py311 + py312 + py313 + py314 + pypy3 coverage [testenv] +usedevelop = true +package = wheel +wheel_build_env = .pkg +pip_pre = py314: true +deps = + setuptools <= 75.6.0 + zope.testrunner commands = - {envbindir}/buildout -c {toxinidir}/buildout.cfg buildout:directory={envdir} buildout:develop={toxinidir} install test - coverage run {envbindir}/test {posargs:-cv} + zope-testrunner --test-path=src {posargs:-vc} +extras = + test + +[testenv:setuptools-latest] +basepython = python3 deps = - zc.buildout - coverage -setenv = - COVERAGE_FILE=.coverage.{envname} -skip_install = true + git+https://github.com/pypa/setuptools.git\#egg=setuptools + zope.testrunner -[testenv:coverage] -basepython = python3.6 +[testenv:release-check] +description = ensure that the distribution is ready to release +basepython = python3 skip_install = true -deps = coverage -depends = - py27, - py35, - py36, - py37, - py38, - py39, - pypy, - pypy3, -setenv = - COVERAGE_FILE=.coverage +deps = + setuptools <= 75.6.0 + twine + build + check-manifest + check-python-versions >= 0.20.0 + wheel +commands_pre = commands = - coverage erase - coverage combine - coverage html - coverage xml - coverage report + check-manifest + check-python-versions --only setup.py,tox.ini,.github/workflows/tests.yml + python -m build --sdist --no-isolation + twine check dist/* [testenv:lint] -basepython = python3.6 +description = This env runs all linters configured in .pre-commit-config.yaml +basepython = python3 skip_install = true - deps = - isort - flake8 - # helper to generate HTML reports: - flake8-html - # Useful flake8 plugins that are Python and Plone specific: - flake8-coding - flake8-debugger - flake8-deprecated - flake8-todo - mccabe - # Potential flake8 plugins that should be used: # TBD - #flake8-blind-except - #flake8-commas - #flake8-docstrings - #flake8-mypy - #flake8-pep3101 - #flake8-plone-hasattr - #flake8-string-format - #flake8_strict - #flake8-quotes + pre-commit +commands_pre = +commands = + pre-commit run --all-files --show-diff-on-failure +[testenv:coverage] +basepython = python3 +allowlist_externals = + mkdir +deps = + coverage[toml] + zope.testrunner commands = - - isort --check-only --diff {toxinidir}/src setup.py - flake8 src setup.py + mkdir -p {toxinidir}/parts/htmlcov + coverage run -m zope.testrunner --test-path=src {posargs:-vc} + coverage html + coverage report
