Skip to content

Commit 77c15c5

Browse files
committed
allow component generator to be run in separate metadata and back-end steps
1 parent 8503dfa commit 77c15c5

File tree

1 file changed

+31
-25
lines changed

1 file changed

+31
-25
lines changed

dash/development/component_generator.py

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)