Pillow
39 строк · 1.2 Кб
1from __future__ import annotations
2
3import sys
4
5from setuptools.build_meta import * # noqa: F403
6from setuptools.build_meta import build_wheel
7
8backend_class = build_wheel.__self__.__class__
9
10
11class _CustomBuildMetaBackend(backend_class):
12def run_setup(self, setup_script="setup.py"):
13if self.config_settings:
14for key, values in self.config_settings.items():
15if not isinstance(values, list):
16values = [values]
17for value in values:
18sys.argv.append(f"--pillow-configuration={key}={value}")
19
20return super().run_setup(setup_script)
21
22def build_wheel(
23self, wheel_directory, config_settings=None, metadata_directory=None
24):
25self.config_settings = config_settings
26return super().build_wheel(wheel_directory, config_settings, metadata_directory)
27
28def build_editable(
29self, wheel_directory, config_settings=None, metadata_directory=None
30):
31self.config_settings = config_settings
32return super().build_editable(
33wheel_directory, config_settings, metadata_directory
34)
35
36
37_backend = _CustomBuildMetaBackend()
38build_wheel = _backend.build_wheel
39build_editable = _backend.build_editable
40