Skip to content

Commit 29e6a36

Browse files
committed
Fixing ordering dependency importing version number
Addressing problem caused by pypa/setuptools#1724 Accessing the version attribute could cause odd dependencies on import statement ordering as to whether importing succeeded or failed
1 parent b05ce84 commit 29e6a36

File tree

11 files changed

+45
-21
lines changed

11 files changed

+45
-21
lines changed

MANIFEST.in

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
include CHANGES.rst
44
include LICENSE
55
include README.rst
6+
include VERSION.txt
67
include tox.ini
7-
include dev-requirements.in
8-
include dev-requirements.txt
98
include requirements.in
109
include requirements.txt
1110
include .pylintrc
12-
include .travis.yml
1311

1412
recursive-include examples *
1513
recursive-include src/crcengine/templates *

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ install: clean ## install the package to the active Python's site-packages
123123

124124
UPDATE_REQS=pip-compile -q -U --output-file=requirements.txt requirements.in
125125

126-
.PHONY: update-requirements
127-
update-requirements: ## Update dependencies in requirements.txt
126+
.PHONY: update-deps
127+
update-deps: ## Update dependencies in requirements.txt
128128
$(call UPDATE_REQS)
129129

130130
requirements.txt: requirements.in

VERSION.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.3.2a1

requirements.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
wheel>=0.26
22
build
3+
importlib-metadata
34
jinja2
5+
packaging
46
pip-tools
57
Pygments # needed for the docs
68
pytest>=3

requirements.txt

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,17 @@ idna==2.10
4949
# via requests
5050
imagesize==1.2.0
5151
# via sphinx
52-
importlib-metadata==3.10.0
52+
importlib-metadata==3.6.0
5353
# via
54+
# -r requirements.in
55+
# build
5456
# keyring
57+
# pep517
58+
# pluggy
59+
# pytest
60+
# tox
5561
# twine
62+
# virtualenv
5663
iniconfig==1.1.1
5764
# via pytest
5865
isort==5.8.0
@@ -71,6 +78,7 @@ mccabe==0.6.1
7178
# via pylint
7279
packaging==20.9
7380
# via
81+
# -r requirements.in
7482
# bleach
7583
# build
7684
# pytest
@@ -153,10 +161,14 @@ toml==0.10.2
153161
# tox
154162
tox==3.23.0
155163
# via -r requirements.in
156-
tqdm==4.59.0
164+
tqdm==4.60.0
157165
# via twine
158166
twine==3.4.1
159167
# via -r requirements.in
168+
typed-ast==1.4.2
169+
# via astroid
170+
typing-extensions==3.7.4.3
171+
# via importlib-metadata
160172
urllib3==1.26.4
161173
# via requests
162174
virtualenv==20.4.3
@@ -168,7 +180,9 @@ wheel==0.36.2
168180
wrapt==1.12.1
169181
# via astroid
170182
zipp==3.4.1
171-
# via importlib-metadata
183+
# via
184+
# importlib-metadata
185+
# pep517
172186

173187
# The following packages are considered to be unsafe in a requirements file:
174188
# pip

setup.cfg

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ long_description = file: README.rst
1818
long_description_content_type = text/x-rst
1919
keywords = crcengine crc cyclic redundancy check checksum code-generation Castagnoli CRC32 CRC16-CCITT
2020
url = https://github.com/GardenTools/crcengine
21-
version = attr: crcengine.version.__version__
21+
version = file: VERSION.txt
2222
project_urls =
2323
Changelog = https://github.com/GardenTools/CrcEngine/blob/master/CHANGES.rst
2424
Documentation = https://crcengine.readthedocs.io/en/latest/
@@ -37,6 +37,7 @@ package_dir =
3737
packages =
3838
crcengine
3939
install_requires =
40+
importlib-metadata>=3.6
4041
jinja2>=2.7
4142

4243
[options.entry_points]

src/crcengine/__init__.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
# You should have received a copy of the GNU General Public License
1919
# along with crcengine. If not, see <https://www.gnu.org/licenses/>.
2020

21+
import importlib_metadata
22+
23+
__version__ = importlib_metadata.version('crcengine')
2124

2225
from .algorithms import (
2326
AlgorithmNotFoundError,
@@ -36,5 +39,5 @@
3639
get_bits_max_value,
3740
new,
3841
)
39-
from .codegen import generate_code, generate_test
40-
from .version import __version__
42+
from crcengine.codegen import generate_code, generate_test
43+

src/crcengine/codegen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
from .algorithms import get_algorithm_params
3333
from .calc import create_lsb_table, create_msb_table
34-
from .version import __version__ as crcengine_version
34+
from crcengine import __version__ as crcengine_version
3535

3636
# Generated file information
3737
_GenFile = namedtuple("GenFile", ["template", "output"])

tests/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ def pytest_configure(config):
1616
def pytest_collection_modifyitems(config, items):
1717
# If a test has the needs_ceedling marker and no-ceedling has been specified
1818
# mark it as a skipped test
19-
print("beep")
2019
if config.getoption("--no-ceedling"):
2120
print("no ceedling")
2221
skip_ceedling = pytest.mark.skip(reason="--no-ceedling specified")

tests/test_crcengine.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Unit tests for the crcengine module"""
1+
"""Unit tests for the calc module"""
22
# This file is part of crcengine.
33
#
44
# crcengine is free software: you can redistribute it an d /or modify
@@ -210,3 +210,4 @@ def test_custom_algorithm():
210210
assert "mycrc8" not in crcengine.algorithms_available()
211211
with pytest.raises(crcengine.AlgorithmNotFoundError):
212212
crcengine.get_algorithm_params("mycrc8")
213+

0 commit comments

Comments
 (0)