@@ -49,6 +49,8 @@ def generate_components(
4949 rimports = "" ,
5050 rsuggests = "" ,
5151 jlprefix = None ,
52+ metadata = None ,
53+ quiet = False ,
5254):
5355
5456 project_shortname = project_shortname .replace ("-" , "_" ).rstrip ("/\\ " )
@@ -61,36 +63,37 @@ def generate_components(
6163
6264 os .environ ["NODE_PATH" ] = "node_modules"
6365
64- cmd = shlex .split (
65- 'node {} "{}" "{}" {}' .format (
66- extract_path , ignore , reserved_patterns , components_source
67- ),
68- posix = not is_windows ,
69- )
70-
7166 shutil .copyfile (
7267 "package.json" , os .path .join (project_shortname , package_info_filename )
7368 )
7469
75- proc = subprocess .Popen (
76- cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = is_windows
77- )
78- out , err = proc .communicate ()
79- status = proc .poll ()
80-
81- if err :
82- print (err .decode (), file = sys .stderr )
83-
84- if not out :
85- print (
86- "Error generating metadata in {} (status={})" .format (
87- project_shortname , status
70+ if not metadata :
71+ cmd = shlex .split (
72+ 'node {} "{}" "{}" {}' .format (
73+ extract_path , ignore , reserved_patterns , components_source
8874 ),
89- file = sys .stderr ,
75+ posix = not is_windows ,
76+ )
77+
78+ proc = subprocess .Popen (
79+ cmd , stdout = subprocess .PIPE , stderr = subprocess .PIPE , shell = is_windows
9080 )
91- sys .exit (1 )
81+ out , err = proc .communicate ()
82+ status = proc .poll ()
83+
84+ if err :
85+ print (err .decode (), file = sys .stderr )
86+
87+ if not out :
88+ print (
89+ "Error generating metadata in {} (status={})" .format (
90+ project_shortname , status
91+ ),
92+ file = sys .stderr ,
93+ )
94+ sys .exit (1 )
9295
93- metadata = safe_json_loads (out .decode ("utf-8" ))
96+ metadata = safe_json_loads (out .decode ("utf-8" ))
9497
9598 generator_methods = [generate_class_file ]
9699
@@ -148,7 +151,7 @@ def safe_json_loads(s):
148151 return byteify (jsondata_unicode )
149152
150153
151- def cli ():
154+ def component_build_arg_parser ():
152155 parser = argparse .ArgumentParser (
153156 prog = "dash-generate-components" ,
154157 formatter_class = _CombinedFormatter ,
@@ -199,8 +202,11 @@ def cli():
199202 help = "Specify a prefix for Dash for R component names, write "
200203 "components to R dir, create R package." ,
201204 )
205+ return parser
206+
202207
203- args = parser .parse_args ()
208+ def cli ():
209+ args = component_build_arg_parser ().parse_args ()
204210 generate_components (
205211 args .components_source ,
206212 args .project_shortname ,
0 commit comments