Mercurial > hgrepos > Python > apps > py-cutils
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" |
