Skip to content

Commit 6be4cda

Browse files
committed
add virtualenvwrapper.version module
Have setuptools_scm write a module with the package version so we don't need to use importlib.metadata to look up the value at runtime. This makes version handling more portable across versions of Python.
1 parent dbd54a4 commit 6be4cda

File tree

6 files changed

+11
-10
lines changed

6 files changed

+11
-10
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@ syntax: re
3636
^web/
3737
.python-version
3838
.eggs
39+
/virtualenvwrapper/version.py

docs/requirements.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
# sphinxcontrib-bitbucket
22
# sphinx>=1.1.2,!=1.2.0,!=1.3b1,<1.3
33
sphinx
4-
# We need importlib.metadata, which was added in 3.10.
5-
importlib_metadata;python_version<'3.10'

docs/source/conf.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
# serve to show the default.
1414

1515
import datetime
16-
import importlib.metadata
16+
17+
import virtualenvwrapper.version
1718

1819
# If extensions (or modules to document with autodoc) are in another directory,
1920
# add these directories to sys.path here. If the directory is relative to the
@@ -51,7 +52,7 @@
5152
# built documents.
5253
#
5354
# The short X.Y version.
54-
version = importlib.metadata.version('virtualenvwrapper')
55+
version = virtualenvwrapper.version.version
5556
# The full version, including alpha/beta/rc tags.
5657
release = version
5758

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies = [
3838

3939
# https://github.com/pypa/setuptools_scm/
4040
[tool.setuptools_scm]
41+
write_to = "virtualenvwrapper/version.py"
4142

4243
[project.urls]
4344
homepage = "https://virtualenvwrapper.readthedocs.io/"

tests/test_virtualenvwrapper.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ test_virtualenvwrapper_script_set() {
2727
}
2828

2929
test_virtualenvwrapper_version() {
30-
source "$test_dir/../virtualenvwrapper.sh"
30+
load_wrappers
3131
typeset ver=$(_virtualenvwrapper_version)
3232
assertTrue "version is empty" "[ -n $ver ]"
3333
}
3434

3535
test_virtualenvwrapper_help_shows_version() {
36-
source "$test_dir/../virtualenvwrapper.sh"
36+
load_wrappers
3737
typeset pattern="Version: $(_virtualenvwrapper_version)"
3838
assertTrue "version not in command output" "virtualenvwrapper | grep \"$pattern\""
3939
}

virtualenvwrapper/hook_loader.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313
import os
1414
import sys
1515

16-
from stevedore import ExtensionManager
17-
from stevedore import NamedExtensionManager
16+
from stevedore import ExtensionManager, NamedExtensionManager
17+
18+
import virtualenvwrapper.version
1819

1920
LOG_FORMAT = '%(asctime)s %(levelname)s %(name)s %(message)s'
2021

@@ -89,8 +90,7 @@ def main():
8990
options, args = parser.parse_args()
9091

9192
if options.version:
92-
import importlib.metadata
93-
print(importlib.metadata.version('virtualenvwrapper'))
93+
print(virtualenvwrapper.version.version)
9494
return 0
9595

9696
root_logger = logging.getLogger('virtualenvwrapper')

0 commit comments

Comments
 (0)