comparison _postprocess-sdist.py @ 285:39a19c008708

Now dynamically the version attribute from setup.cfg
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 23 Feb 2025 21:40:37 +0100
parents b65d25882e44
children 9518944ed42e
comparison
equal deleted inserted replaced
284:b65d25882e44 285:39a19c008708
3 3
4 """ 4 """
5 5
6 from __future__ import print_function, absolute_import 6 from __future__ import print_function, absolute_import
7 7
8 import ast
9 try: 8 try:
10 from configparser import ConfigParser 9 from configparser import ConfigParser
11 except ImportError: 10 except ImportError:
12 from ConfigParser import SafeConfigParser as ConfigParser 11 from ConfigParser import SafeConfigParser as ConfigParser
12 import importlib
13 import io 13 import io
14 import os 14 import os
15 import tarfile 15 import tarfile
16
17 import cutils
18 import cutils.util.walk
19 16
20 17
21 def main(): 18 def main():
22 with io.open("setup.cfg", "rt", encoding="utf-8") as cfgfile: 19 with io.open("setup.cfg", "rt", encoding="utf-8") as cfgfile:
23 cp = ConfigParser() 20 cp = ConfigParser()
26 else: 23 else:
27 cp.readfp(cfgfile, "setup.cfg") 24 cp.readfp(cfgfile, "setup.cfg")
28 project_name = cp.get("metadata", "name") 25 project_name = cp.get("metadata", "name")
29 project_version = cp.get("metadata", "version") 26 project_version = cp.get("metadata", "version")
30 if project_version.startswith("attr:"): 27 if project_version.startswith("attr:"):
31 assert project_version == "attr: cutils.__version__" 28 vermodname, dummy, vermodattr = (project_version[5:]
32 project_version = ast.literal_eval(repr(cutils.__version__)) 29 .strip()
30 .rpartition('.'))
31 assert dummy is not None and vermodattr is not None
32 vermod = importlib.import_module(vermodname)
33 project_version = getattr(vermod, vermodattr)
34 else:
35 assert False
33 # 36 #
34 # Compressed tar files cannot be modified by Python: make sure the 37 # Compressed tar files cannot be modified by Python: make sure the
35 # originally generated archive is uncompressed. 38 # originally generated archive is uncompressed.
36 # 39 #
37 assert cp.get("sdist", "formats") == "tar" 40 assert cp.get("sdist", "formats") == "tar"