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."""
1661 txconfig .parent .mkdir (exist_ok = True )
@@ -37,34 +82,6 @@ def patch_config(txconfig: Path):
3782 content = txconfig .read_text (encoding = "utf-8" ).splitlines ()
3883 new_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-
6885 for line in content :
6986 if line .startswith (("source_file" , "source_lang" )):
7087 continue
@@ -73,7 +90,7 @@ def patch_config(txconfig: Path):
7390 line = line .replace ("<lang>/" , "" )
7491 line = line .replace ("--" , "/" )
7592
76- for pattern , replacement in text_to_replace .items ():
93+ for pattern , replacement in TEXT_TO_REPLACE .items ():
7794 if pattern in line :
7895 line = line .replace (pattern , replacement )
7996 break
@@ -85,30 +102,14 @@ def patch_config(txconfig: Path):
85102 txconfig .write_text (text + "\n " , encoding = "utf-8" )
86103 print ("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 ():
105106 args = parse_args ()
106- TX_CONFIG = Path (".tx/config" )
107+ config_path = Path (".tx/config" )
107108 if 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__" :
0 commit comments