From fbed5910c4fb94ed00d3661f0062dcb870f88a78 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Tue, 5 May 2020 21:25:06 +0200 Subject: [PATCH 1/3] Prepare semver 3 (#176) Generally, remove everything related to Python 2.7 & 3.4 and add missing 3.8 & 3.9: * Raise version to 2.99.99 (to indicate that it's different from 2.10.0) * Prepare (empty) CHANGELOG for 2.99.99 * Correct Trove categories and python_requires in setup.py * Adapt tox.ini & .travis.yml: remove old stuff, add missing (see above) * Adapt semver.py - Remove if clause for cmp - Don't check for `__name__`, use `__qualname__` instead - Use yield from ... (for loop is not necessary anymore) --- .travis.yml | 15 +++++++++------ CHANGELOG.rst | 22 ++++++++++++++++++++++ semver.py | 18 ++++++------------ setup.py | 7 +++---- tox.ini | 2 +- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index 54165f6e..c182f268 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,11 +13,6 @@ script: tox -v matrix: include: - - python: "2.7" - env: TOXENV=py27 - - - python: "3.4" - env: TOXENV=py34 - python: "3.6" env: TOXENV=checks @@ -32,5 +27,13 @@ matrix: dist: xenial env: TOXENV=py37 - - python: "pypy" + - python: "3.8" + dist: bionic + env: TOXENV=py38 + + - python: "nightly" + dist: bionic + env: TOXENV=py39 + + - python: "pypy3" env: TOXENV=pypy diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c28880e1..bcebd23a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,6 +7,26 @@ All notable changes to this code base will be documented in this file, in every released version. +Version 3.0.0-dev1 +================== + +Features +-------- + + +Bug Fixes +--------- + + +Additions +--------- + + +Removals +-------- + + + Version 2.10.1 ============== @@ -23,6 +43,7 @@ Features * :pr:`256`: Made docstrings consistent + Bug Fixes --------- @@ -38,6 +59,7 @@ Removals -------- + Version 2.10.0 ============== diff --git a/semver.py b/semver.py index 00338e8f..dff43107 100644 --- a/semver.py +++ b/semver.py @@ -10,7 +10,7 @@ import warnings -__version__ = "2.10.1" +__version__ = "3.0.0-dev1" __author__ = "Kostiantyn Rybnikov" __author_email__ = "k-bx@k-bx.com" __maintainer__ = ["Sebastien Celles", "Tom Schraitle"] @@ -53,11 +53,9 @@ SEMVER_SPEC_VERSION = "2.0.0" -if not hasattr(__builtins__, "cmp"): - - def cmp(a, b): - """Return negative if ab.""" - return (a > b) - (a < b) +def cmp(a, b): + """Return negative if ab.""" + return (a > b) - (a < b) def deprecated(func=None, replace=None, version=None, category=DeprecationWarning): @@ -88,10 +86,8 @@ def wrapper(*args, **kwargs): else: msg.append("Use the respective 'semver.VersionInfo.{r}' instead.") - # hasattr is needed for Python2 compatibility: - f = func.__qualname__ if hasattr(func, "__qualname__") else func.__name__ + f = func.__qualname__ r = replace or f - frame = inspect.currentframe().f_back msg = " ".join(msg) @@ -300,9 +296,7 @@ def _asdict(self): def __iter__(self): """Implement iter(self).""" - # As long as we support Py2.7, we can't use the "yield from" syntax - for v in self.to_tuple(): - yield v + yield from self.to_tuple() @staticmethod def _increment_string(string): diff --git a/setup.py b/setup.py index 746c1436..357fe17d 100755 --- a/setup.py +++ b/setup.py @@ -92,16 +92,15 @@ def read_file(filename): "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.4", "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", "Topic :: Software Development :: Libraries :: Python Modules", ], - python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", + python_requires=">=3.5.*", tests_require=["tox", "virtualenv"], cmdclass={"clean": Clean, "test": Tox}, entry_points={"console_scripts": ["pysemver = semver:main"]}, diff --git a/tox.ini b/tox.ini index 833c9655..3bcfb34d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] envlist = flake8 - py{27,34,35,36,37} + py{35,36,37,38,39} pypy [testenv] From 2bf59a0c5c41b139600b99f798e0248a938419a9 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Tue, 5 May 2020 22:28:39 +0200 Subject: [PATCH 2/3] Clean up setup.py (#234) --- setup.py | 67 +++++++------------------------------------------------- 1 file changed, 8 insertions(+), 59 deletions(-) diff --git a/setup.py b/setup.py index 357fe17d..38f74c82 100755 --- a/setup.py +++ b/setup.py @@ -1,68 +1,17 @@ #!/usr/bin/env python -import semver as package -from glob import glob -from os import remove from os.path import dirname, join from setuptools import setup -from setuptools.command.test import test as TestCommand - -try: - from setuptools.command.clean import clean as CleanCommand -except ImportError: - from distutils.command.clean import clean as CleanCommand -from shlex import split -from shutil import rmtree - - -class Tox(TestCommand): - user_options = [("tox-args=", "a", "Arguments to pass to tox")] - - def initialize_options(self): - TestCommand.initialize_options(self) - self.tox_args = None - - def finalize_options(self): - TestCommand.finalize_options(self) - self.test_args = [] - self.test_suite = True - - def run_tests(self): - from tox import cmdline - args = self.tox_args - if args: - args = split(self.tox_args) - errno = cmdline(args=args) - exit(errno) - - -class Clean(CleanCommand): - def run(self): - CleanCommand.run(self) - delete_in_root = ["build", ".cache", "dist", ".eggs", "*.egg-info", ".tox"] - delete_everywhere = ["__pycache__", "*.pyc"] - for candidate in delete_in_root: - rmtree_glob(candidate) - for visible_dir in glob("[A-Za-z0-9]*"): - for candidate in delete_everywhere: - rmtree_glob(join(visible_dir, candidate)) - rmtree_glob(join(visible_dir, "*", candidate)) - - -def rmtree_glob(file_glob): - for fobj in glob(file_glob): - try: - rmtree(fobj) - print("%s/ removed ..." % fobj) - except OSError: - try: - remove(fobj) - print("%s removed ..." % fobj) - except OSError: - pass +import semver as package def read_file(filename): + """ + Read RST file and return content + + :param filename: the RST file + :return: content of the RST file + """ with open(join(dirname(__file__), filename)) as f: return f.read() @@ -98,10 +47,10 @@ def read_file(filename): "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", ], python_requires=">=3.5.*", tests_require=["tox", "virtualenv"], - cmdclass={"clean": Clean, "test": Tox}, entry_points={"console_scripts": ["pysemver = semver:main"]}, ) From 77348f79dd8ca51e59a27be5765cff46b83f2a60 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Thu, 7 May 2020 08:48:23 +0200 Subject: [PATCH 3/3] Use 3.0.0-dev.1 as version This makes it possible to distinguish between version 2 and version 3. For example, >=2.8,<3 --- CHANGELOG.rst | 4 ++-- semver.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index bcebd23a..5e4a0a1a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,8 +7,8 @@ All notable changes to this code base will be documented in this file, in every released version. -Version 3.0.0-dev1 -================== +Version 3.0.0-dev.1 +=================== Features -------- diff --git a/semver.py b/semver.py index dff43107..cf214643 100644 --- a/semver.py +++ b/semver.py @@ -10,7 +10,7 @@ import warnings -__version__ = "3.0.0-dev1" +__version__ = "3.0.0-dev.1" __author__ = "Kostiantyn Rybnikov" __author_email__ = "k-bx@k-bx.com" __maintainer__ = ["Sebastien Celles", "Tom Schraitle"] pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy