25
25
_data_dir = _root / "flashinfer" / "data"
26
26
27
27
28
- def write_if_different (path : Path , content : str ) -> None :
29
- if path .exists () and path .read_text () == content :
30
- return
31
- path .parent .mkdir (parents = True , exist_ok = True )
32
- path .write_text (content )
33
-
34
-
35
28
def get_version ():
36
29
package_version = (_root / "version.txt" ).read_text ().strip ()
37
30
dev_suffix = os .environ .get ("FLASHINFER_DEV_RELEASE_SUFFIX" , "" )
@@ -40,10 +33,19 @@ def get_version():
40
33
return package_version
41
34
42
35
43
- def generate_build_meta () -> None :
44
- build_meta_str = f"__version__ = { get_version ()!r} \n "
45
- build_meta_str += f"__git_version__ = { get_git_version (cwd = _root )!r} \n "
46
- write_if_different (_root / "flashinfer" / "_build_meta.py" , build_meta_str )
36
+ # Create _build_meta.py at import time so setuptools can read the version
37
+ build_meta_file = _root / "flashinfer" / "_build_meta.py"
38
+ with open (build_meta_file , "w" ) as f :
39
+ f .write ('"""Build metadata for flashinfer package."""\n ' )
40
+ f .write (f'__version__ = "{ get_version ()} "\n ' )
41
+ f .write (f'__git_version__ = "{ get_git_version (cwd = _root )} "\n ' )
42
+
43
+
44
+ def write_if_different (path : Path , content : str ) -> None :
45
+ if path .exists () and path .read_text () == content :
46
+ return
47
+ path .parent .mkdir (parents = True , exist_ok = True )
48
+ path .write_text (content )
47
49
48
50
49
51
def _create_data_dir ():
@@ -82,19 +84,16 @@ def _prepare_for_sdist():
82
84
83
85
84
86
def get_requires_for_build_wheel (config_settings = None ):
85
- generate_build_meta ()
86
87
_prepare_for_wheel ()
87
88
return []
88
89
89
90
90
91
def get_requires_for_build_sdist (config_settings = None ):
91
- generate_build_meta ()
92
92
_prepare_for_sdist ()
93
93
return []
94
94
95
95
96
96
def get_requires_for_build_editable (config_settings = None ):
97
- generate_build_meta ()
98
97
_prepare_for_editable ()
99
98
return []
100
99
0 commit comments