1111import sys
1212from pathlib import Path
1313
14+ # Replaces required to fix the default values set by 'tx add remote' command.
15+ # Add or remove
16+ TEXT_TO_REPLACE = {
17+ "2_" :"2." ,
18+ "3_" :"3." ,
19+ "glossary_" :"glossary" ,
20+ "collections_" :"collections." ,
21+ "compression_" :"compression." ,
22+ "concurrent_" :"concurrent." ,
23+ "curses_" :"curses." ,
24+ "email_" :"email." ,
25+ "html_" :"html." ,
26+ "http_" :"http." ,
27+ "importlib_resources_" :"importlib.resources." ,
28+ "importlib_" :"importlib." ,
29+ "logging_" :"logging." ,
30+ "multiprocessing_" :"multiprocessing." ,
31+ "os_" :"os." ,
32+ "string_" :"string." ,
33+ "sys_monitoring" :"sys.monitoring" ,
34+ "tkinter_" :"tkinter." ,
35+ "unittest_" :"unittest." ,
36+ "urllib_" :"urllib." ,
37+ "xml_dom_" :"xml.dom." ,
38+ "xml_etree_" :"xml.etree." ,
39+ "xmlrpc_" :"xmlrpc." ,
40+ "xml_sax_" :"xml.sax." ,
41+ "xml_" :"xml."
42+ }
43+
44+ def parse_args ():
45+ parser = argparse .ArgumentParser (description = __doc__ )
46+ parser .add_argument (
47+ "--root-path" ,
48+ "-p" ,
49+ default = Path ("." ),
50+ help = "Path to the translation files, and also the .tx/config (defaults to current directory)"
51+ )
52+ parser .add_argument (
53+ "tx_project" ,
54+ help = "Slug of the Transifex project to query resources from"
55+ )
56+ return parser .parse_args ()
57+
58+
1459def reset_tx_config (txconfig :Path ):
1560"""Create or reset the .tx/config file with basic header."""
1661txconfig .parent .mkdir (exist_ok = True )
@@ -37,34 +82,6 @@ def patch_config(txconfig: Path):
3782content = txconfig .read_text (encoding = "utf-8" ).splitlines ()
3883new_lines = []
3984
40- text_to_replace = {
41- "2_" :"2." ,
42- "3_" :"3." ,
43- "glossary_" :"glossary" ,
44- "collections_" :"collections." ,
45- "compression_" :"compression." ,
46- "concurrent_" :"concurrent." ,
47- "curses_" :"curses." ,
48- "email_" :"email." ,
49- "html_" :"html." ,
50- "http_" :"http." ,
51- "importlib_resources_" :"importlib.resources." ,
52- "importlib_" :"importlib." ,
53- "logging_" :"logging." ,
54- "multiprocessing_" :"multiprocessing." ,
55- "os_" :"os." ,
56- "string_" :"string." ,
57- "sys_monitoring" :"sys.monitoring" ,
58- "tkinter_" :"tkinter." ,
59- "unittest_" :"unittest." ,
60- "urllib_" :"urllib." ,
61- "xml_dom_" :"xml.dom." ,
62- "xml_etree_" :"xml.etree." ,
63- "xmlrpc_" :"xmlrpc." ,
64- "xml_sax_" :"xml.sax." ,
65- "xml_" :"xml."
66- }
67-
6885for line in content :
6986if line .startswith (("source_file" ,"source_lang" )):
7087continue
@@ -73,7 +90,7 @@ def patch_config(txconfig: Path):
7390line = line .replace ("<lang>/" ,"" )
7491line = line .replace ("--" ,"/" )
7592
76- for pattern ,replacement in text_to_replace .items ():
93+ for pattern ,replacement in TEXT_TO_REPLACE .items ():
7794if pattern in line :
7895line = line .replace (pattern ,replacement )
7996break
@@ -85,30 +102,14 @@ def patch_config(txconfig: Path):
85102txconfig .write_text (text + "\n " ,encoding = "utf-8" )
86103print ("Updated .tx/config with character substitutions" )
87104
88-
89- def parse_args ():
90- parser = argparse .ArgumentParser (description = __doc__ )
91- parser .add_argument (
92- "--root-path" ,
93- "-p" ,
94- default = Path ("." ),
95- help = "Path to the translation files, and also the .tx/config"
96- )
97- parser .add_argument (
98- "tx_project" ,
99- help = "Name of the Transifex project to query resources from (e.g. python-newest or python-313)"
100- )
101- return parser .parse_args ()
102-
103-
104105def main ():
105106args = parse_args ()
106- TX_CONFIG = Path (".tx/config" )
107+ config_path = Path (".tx/config" )
107108if args .root_path :
108- TX_CONFIG = args .root_path / TX_CONFIG
109- reset_tx_config (TX_CONFIG )
110- populate_resources_from_remote (TX_CONFIG ,args .tx_project )
111- patch_config (TX_CONFIG )
109+ config_path = args .root_path / config_path
110+ reset_tx_config (config_path )
111+ populate_resources_from_remote (config_path ,args .tx_project )
112+ patch_config (config_path )
112113
113114
114115if __name__ == "__main__" :