|
4 | 4 | import hashlib |
5 | 5 | import os |
6 | 6 | import stat |
| 7 | +import sys |
7 | 8 | import tempfile |
8 | 9 | import zipfile |
9 | 10 | from io import StringIO |
@@ -178,15 +179,19 @@ def set_default_file_selection(self) -> None: |
178 | 179 | self.builder.normalize_file_name_component(self.builder.metadata.core.name), |
179 | 180 | ): |
180 | 181 | if os.path.isfile(os.path.join(self.root, project_name, '__init__.py')): |
181 | | - self.__packages.append(project_name) |
| 182 | + normalized_project_name = self.get_raw_fs_path_name(self.root, project_name) |
| 183 | + self.__packages.append(normalized_project_name) |
182 | 184 | break |
183 | 185 |
|
184 | 186 | if os.path.isfile(os.path.join(self.root, 'src', project_name, '__init__.py')): |
185 | | - self.__packages.append(f'src/{project_name}') |
| 187 | + normalized_project_name = self.get_raw_fs_path_name(os.path.join(self.root, 'src'), project_name) |
| 188 | + self.__packages.append(f'src/{normalized_project_name}') |
186 | 189 | break |
187 | 190 |
|
188 | | - if os.path.isfile(os.path.join(self.root, f'{project_name}.py')): |
189 | | - self.__only_include.append(f'{project_name}.py') |
| 191 | + module_file = f'{project_name}.py' |
| 192 | + if os.path.isfile(os.path.join(self.root, module_file)): |
| 193 | + normalized_project_name = self.get_raw_fs_path_name(self.root, module_file) |
| 194 | + self.__only_include.append(module_file) |
190 | 195 | break |
191 | 196 |
|
192 | 197 | from glob import glob |
@@ -344,6 +349,24 @@ def macos_max_compat(self) -> bool: |
344 | 349 |
|
345 | 350 | return self.__macos_max_compat |
346 | 351 |
|
| 352 | + if sys.platform in {'darwin', 'win32'}: |
| 353 | + |
| 354 | + @staticmethod |
| 355 | + def get_raw_fs_path_name(directory: str, name: str) -> str: |
| 356 | + normalized = name.casefold() |
| 357 | + entries = os.listdir(directory) |
| 358 | + for entry in entries: |
| 359 | + if entry.casefold() == normalized: |
| 360 | + return entry |
| 361 | + |
| 362 | + return name # no cov |
| 363 | + |
| 364 | + else: |
| 365 | + |
| 366 | + @staticmethod |
| 367 | + def get_raw_fs_path_name(directory: str, name: str) -> str: # noqa: ARG004 |
| 368 | + return name |
| 369 | + |
347 | 370 |
|
348 | 371 | class WheelBuilder(BuilderInterface): |
349 | 372 | """ |
|
0 commit comments