From 908cc6f8d300394bd8e777846ace6181393ad18e Mon Sep 17 00:00:00 2001 From: Stephen Rosen Date: Sat, 16 Jul 2022 16:35:15 +0000 Subject: [PATCH] Move __version__ into __init__.py A little bit of clean parsing code in setup.py and the enforcement from `black`, and it becomes possible to ditch a file which only held a single value. Similarly update the version parsing in the makefile. --- Makefile | 2 +- nose2/__init__.py | 3 ++- nose2/_version.py | 7 ------- setup.py | 15 +++++++++++++-- 4 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 nose2/_version.py diff --git a/Makefile b/Makefile index b2af736c..48908185 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ .PHONY: lint test docs build release clean -NOSE2_VERSION=$(shell grep '^__version__' nose2/_version.py | cut -d '"' -f2) +NOSE2_VERSION=$(shell grep '^__version__' nose2/__init__.py | cut -d '"' -f2) lint: tox -e lint diff --git a/nose2/__init__.py b/nose2/__init__.py index c7183289..2b4a8796 100644 --- a/nose2/__init__.py +++ b/nose2/__init__.py @@ -1,4 +1,5 @@ -from nose2._version import __version__ from nose2.main import discover, main +__version__ = "0.12.0" + __all__ = ("__version__", "discover", "main") diff --git a/nose2/_version.py b/nose2/_version.py deleted file mode 100644 index ffafc7da..00000000 --- a/nose2/_version.py +++ /dev/null @@ -1,7 +0,0 @@ -"""version information""" - -# taken from http://stackoverflow.com/a/17626524/1836144 -# The following line *must* be the last in the module, exactly as formatted: -# could also use advice from -# https://packaging.python.org/guides/single-sourcing-package-version/ -__version__ = "0.11.0" diff --git a/setup.py b/setup.py index 0da09e2e..8b90f42a 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,19 @@ import os +import re from setuptools import find_packages, setup -VERSION = open("nose2/_version.py").readlines()[-1].split()[-1].strip("\"'") + +def read_version(filename): + # use of " over ' will be enforced by "black" + version_pattern = re.compile(r'__version__ = "([^"]*)"') + with open(filename) as fp: + for line in fp: + m = version_pattern.match(line) + if m: + return m.group(1) + raise Exception("could not parse version from {}".format(filename)) + MAINTAINER = "Stephen Rosen" MAINTAINER_EMAIL = "dev@nose2.io" @@ -11,7 +22,7 @@ setup( name="nose2", - version=VERSION, + version=read_version("nose2/__init__.py"), packages=find_packages(), extras_require={ "coverage_plugin": ["coverage"],