17
17
from poetry .semver import parse_constraint
18
18
19
19
from ..utils .helpers import normalize_file_permissions
20
+ from ..utils .data_file_include import DataFileInclude
20
21
from ..utils .package_include import PackageInclude
21
22
from ..utils .tags import get_abbr_impl
22
23
from ..utils .tags import get_abi_tag
23
24
from ..utils .tags import get_impl_ver
24
25
from ..utils .tags import get_platform
25
26
from .builder import Builder
26
27
28
+ from poetry .utils ._compat import Path
27
29
28
30
wheel_file_template = """\
29
31
Wheel-Version: 1.0
@@ -136,6 +138,14 @@ def _copy_module(self, wheel):
136
138
137
139
if isinstance (include , PackageInclude ) and include .source :
138
140
rel_file = file .relative_to (include .base )
141
+ elif isinstance (include , DataFileInclude ):
142
+ rel_file = Path (
143
+ self .wheel_meta_dir_name (
144
+ self ._package .name , self ._meta .version , "data"
145
+ ),
146
+ include .data_file_path_prefix ,
147
+ file .name ,
148
+ )
139
149
else :
140
150
rel_file = file .relative_to (self ._path )
141
151
@@ -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