19
19
from poetry .semver import parse_constraint
20
20
21
21
from ..utils .helpers import normalize_file_permissions
22
+ from ..utils .data_file_include import DataFileInclude
22
23
from ..utils .package_include import PackageInclude
23
24
from ..utils .tags import get_abbr_impl
24
25
from ..utils .tags import get_abi_tag
25
26
from ..utils .tags import get_impl_ver
26
27
from ..utils .tags import get_platform
27
28
from .builder import Builder
28
29
30
+ from poetry .utils ._compat import Path
29
31
30
32
wheel_file_template = """\
31
33
Wheel-Version: 1.0
@@ -137,6 +139,14 @@ def _copy_module(self, wheel):
137
139
138
140
if isinstance (include , PackageInclude ) and include .source :
139
141
rel_file = file .relative_to (include .base )
142
+ elif isinstance (include , DataFileInclude ):
143
+ rel_file = Path (
144
+ self .wheel_meta_dir_name (
145
+ self ._package .name , self ._meta .version , "data"
146
+ ),
147
+ include .data_file_path_prefix ,
148
+ file .name ,
149
+ )
140
150
else :
141
151
rel_file = file .relative_to (self ._path )
142
152
@@ -192,7 +202,7 @@ def find_excluded_files(self): # type: () -> Set
192
202
193
203
@property
194
204
def dist_info (self ): # type: () -> str
195
- return self .dist_info_name (self ._package .name , self ._meta .version )
205
+ return self .wheel_meta_dir_name (self ._package .name , self ._meta .version )
196
206
197
207
@property
198
208
def wheel_filename (self ): # type: () -> str
@@ -207,11 +217,13 @@ def supports_python2(self):
207
217
parse_constraint (">=2.0.0 <3.0.0" )
208
218
)
209
219
210
- def dist_info_name (self , distribution , version ): # type: (...) -> str
220
+ def wheel_meta_dir_name (
221
+ self , distribution , version , suffix = "dist-info"
222
+ ): # type: (...) -> str
211
223
escaped_name = re .sub (r"[^\w\d.]+" , "_" , distribution , flags = re .UNICODE )
212
224
escaped_version = re .sub (r"[^\w\d.]+" , "_" , version , flags = re .UNICODE )
213
225
214
- return "{}-{}.dist-info " .format (escaped_name , escaped_version )
226
+ return "{}-{}.{} " .format (escaped_name , escaped_version , suffix )
215
227
216
228
@property
217
229
def tag (self ):
0 commit comments