1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
from __future__ import annotations
from typing import Any
import logging
import subprocess
from pathlib import Path
import setuptools.build_meta as _orig
logging.basicConfig(level='INFO', format='%(message)s')
ALLOWED_CONFIG_SETTINGS = {'target'}
def build_translations() -> None:
# Compile translation files and place them into "gajim/data/locale"
source_dir = Path.cwd()
translation_dir = source_dir / 'po'
locale_dir = source_dir / 'gajim' / 'data' / 'locale'
langs = sorted([lang.stem for lang in translation_dir.glob('*.po')])
for lang in langs:
po_file = source_dir / 'po' / f'{lang}.po'
mo_file = locale_dir / lang / 'LC_MESSAGES' / 'gajim.mo'
mo_file.parent.mkdir(parents=True, exist_ok=True)
logging.info('Compile %s >> %s', po_file, mo_file)
subprocess.run(['msgfmt',
str(po_file),
'-o',
str(mo_file)],
check=True)
def _check_config_settings(config_settings: dict[str, str]) -> None:
settings = set(config_settings.keys()) - ALLOWED_CONFIG_SETTINGS
if settings:
raise ValueError('Unknown config setting %s' % settings)
def get_requires_for_build_sdist(*args: Any, **kwargs: Any) -> list[str]:
return _orig.get_requires_for_build_sdist(*args, **kwargs)
def build_sdist(*args: Any, **kwargs: Any) -> str:
return _orig.build_sdist(*args, **kwargs)
def get_requires_for_build_wheel(*args: Any, **kwargs: Any) -> list[str]:
return _orig.get_requires_for_build_wheel(*args, **kwargs)
def prepare_metadata_for_build_wheel(*args: Any, **kwargs: Any) -> str:
return _orig.prepare_metadata_for_build_wheel(*args, **kwargs)
def build_wheel(wheel_directory: str,
config_settings: dict[str, str] | None = None,
metadata_directory: str | None = None
) -> str:
if config_settings is not None:
_check_config_settings(config_settings)
build_translations()
basename = _orig.build_wheel(
wheel_directory,
config_settings=config_settings,
metadata_directory=metadata_directory,
)
return basename
def build_editable(*args: Any, **kwargs: Any) -> str:
return build_wheel(*args, **kwargs)
def get_requires_for_build_editable(*args: Any, **kwargs: Any) -> list[str]:
return get_requires_for_build_wheel(*args, **kwargs)
def prepare_metadata_for_build_editable(*args: Any, **kwargs: Any) -> str:
return prepare_metadata_for_build_wheel(*args, **kwargs)
|