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..5e4a0a1a 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-dev.1
+===================
+
+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..cf214643 100644
--- a/semver.py
+++ b/semver.py
@@ -10,7 +10,7 @@
import warnings
-__version__ = "2.10.1"
+__version__ = "3.0.0-dev.1"
__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..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()
@@ -92,17 +41,16 @@ 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",
+ "Programming Language :: Python :: Implementation :: PyPy",
"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]
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: