1- """
2- Please keep this file Python 2.7 compatible.
3- See https://tox.readthedocs.io/en/rewrite/development.html#code-style-guide
4- """
5-
61from __future__ import annotations
72
83import os
4+ import re
95import sys
106import tarfile
117from pathlib import Path
128from textwrap import dedent
139from zipfile import ZipFile
1410
15- name = "demo_pkg_inline"
16- pkg_name = name .replace ("_" , "-" )
17-
11+ name = "demo-pkg-inline" if os .environ .get ("WITH_DASH" ) else "demo_pkg_inline"
12+ name_in_artifact = re .sub (r"[^\w\d.]+" , "_" , name , flags = re .UNICODE ) # per PEP-427
1813version = "1.0.0"
19- dist_info = f"{ name } -{ version } .dist-info"
20- logic = f"{ name } /__init__.py"
21- plugin = f"{ name } /example_plugin.py"
14+ dist_info = f"{ name_in_artifact } -{ version } .dist-info"
15+ module = name_in_artifact
16+ logic = f"{ module } /__init__.py"
17+ plugin = f"{ module } /example_plugin.py"
2218entry_points = f"{ dist_info } /entry_points.txt"
2319metadata = f"{ dist_info } /METADATA"
2420wheel = f"{ dist_info } /WHEEL"
@@ -42,37 +38,33 @@ def tox_register_tox_env(register: ToxEnvRegister) -> None:
4238 register.add_run_env(ExampleVirtualEnvRunner)
4339 """ ,
4440}
41+
4542metadata_files = {
4643 entry_points : f"""
4744 [tox]
48- example = { name } .example_plugin""" ,
49- metadata : """
45+ example = { module } .example_plugin""" ,
46+ metadata : f """
5047 Metadata-Version: 2.1
51- Name: {}
52- Version: {}
48+ Name: { name }
49+ Version: { version }
5350 Summary: UNKNOWN
5451 Home-page: UNKNOWN
5552 Author: UNKNOWN
5653 Author-email: UNKNOWN
5754 License: UNKNOWN
58- {}
5955 Platform: UNKNOWN
6056
6157 UNKNOWN
62- """ .format (
63- pkg_name ,
64- version ,
65- "\n " .join (os .environ .get ("METADATA_EXTRA" , "" ).split ("\n " )),
66- ),
58+ """ ,
6759 wheel : f"""
6860 Wheel-Version: 1.0
6961 Generator: { name } -{ version }
7062 Root-Is-Purelib: true
7163 Tag: py{ sys .version_info [0 ]} -none-any
7264 """ ,
73- f"{ dist_info } /top_level.txt" : name ,
65+ f"{ dist_info } /top_level.txt" : module ,
7466 record : f"""
75- { name } /__init__.py,,
67+ { module } /__init__.py,,
7668 { dist_info } /METADATA,,
7769 { dist_info } /WHEEL,,
7870 { dist_info } /top_level.txt,,
@@ -86,18 +78,17 @@ def build_wheel(
8678 config_settings : dict [str , str ] | None = None , # noqa: ARG001
8779 metadata_directory : str | None = None ,
8880) -> str :
89- base_name = f"{ name } -{ version } -py{ sys .version_info [0 ]} -none-any.whl"
81+ base_name = f"{ name_in_artifact } -{ version } -py{ sys .version_info [0 ]} -none-any.whl"
9082 path = Path (wheel_directory ) / base_name
9183 with ZipFile (str (path ), "w" ) as zip_file_handler :
9284 for arc_name , data in content .items (): # pragma: no branch
9385 zip_file_handler .writestr (arc_name , dedent (data ).strip ())
9486 if metadata_directory is not None :
9587 for sub_directory , _ , filenames in os .walk (metadata_directory ):
9688 for filename in filenames :
97- zip_file_handler .write (
98- str (Path (metadata_directory ) / sub_directory / filename ),
99- str (Path (sub_directory ) / filename ),
100- )
89+ src = str (Path (metadata_directory ) / sub_directory / filename )
90+ dest = str (Path (sub_directory ) / filename )
91+ zip_file_handler .write (src , dest )
10192 else :
10293 for arc_name , data in metadata_files .items ():
10394 zip_file_handler .writestr (arc_name , dedent (data ).strip ())
@@ -118,7 +109,7 @@ def build_editable(
118109
119110
120111def build_sdist (sdist_directory : str , config_settings : dict [str , str ] | None = None ) -> str : # noqa: ARG001
121- result = f"{ name } -{ version } .tar.gz" # pragma: win32 cover
112+ result = f"{ name_in_artifact } -{ version } .tar.gz" # pragma: win32 cover
122113 with tarfile .open (str (Path (sdist_directory ) / result ), "w:gz" ) as tar : # pragma: win32 cover
123114 root = Path (__file__ ).parent # pragma: win32 cover
124115 tar .add (str (root / "build.py" ), "build.py" ) # pragma: win32 cover
0 commit comments