Skip to content

Commit 7eeaa83

Browse files
committed
Support loading version from a file
1 parent c70cc12 commit 7eeaa83

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

docs/setuptools.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -2421,7 +2421,7 @@ Metadata
24212421
Key Aliases Type
24222422
============================== ================= =====
24232423
name str
2424-
version attr:, str
2424+
version attr:, file:, str
24252425
url home-page str
24262426
download_url download-url str
24272427
project_urls dict

setuptools/config.py

+5
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,11 @@ def _parse_version(self, value):
427427
:rtype: str
428428
429429
"""
430+
version = self._parse_file(value)
431+
432+
if version != value:
433+
return version.strip()
434+
430435
version = self._parse_attr(value)
431436

432437
if callable(version):

setuptools/tests/test_config.py

+12
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,18 @@ def test_version(self, tmpdir):
268268
with get_dist(tmpdir) as dist:
269269
assert dist.metadata.version == '2016.11.26'
270270

271+
def test_version_file(self, tmpdir):
272+
273+
_, config = fake_env(
274+
tmpdir,
275+
'[metadata]\n'
276+
'version = file: fake_package/version.txt\n'
277+
)
278+
tmpdir.join('fake_package', 'version.txt').write('1.2.3\n')
279+
280+
with get_dist(tmpdir) as dist:
281+
assert dist.metadata.version == '1.2.3'
282+
271283
def test_unknown_meta_item(self, tmpdir):
272284

273285
fake_env(

0 commit comments

Comments
 (0)