Skip to content

Commit f012328

Browse files
authored
Merge pull request #347 from latchbio/kenny/fix-typing-jit-import
add import + better message for par
2 parents 7baa479 + 9923078 commit f012328

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

latch_cli/snakemake/config/parser.py

+13-6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from latch_cli.snakemake.workflow import reindent
1010
from latch_cli.utils import identifier_from_str
1111

12+
from ..serialize_utils import best_effort_display_name
1213
from .utils import JSONValue, get_preamble, parse_type, parse_value, type_repr
1314

1415
T = TypeVar("T")
@@ -81,10 +82,11 @@ def generate_metadata(
8182

8283
is_file = typ in {LatchFile, LatchDir}
8384
param_typ = "SnakemakeFileParameter" if is_file else "SnakemakeParameter"
85+
8486
param_str = reindent(
8587
f"""\
8688
{repr(identifier_from_str(k))}: {param_typ}(
87-
display_name={repr(k)},
89+
display_name={repr(best_effort_display_name(k))},
8890
type={type_repr(typ)},
8991
__config____default__),""",
9092
0,
@@ -126,14 +128,19 @@ def generate_metadata(
126128
old_metadata_path.rename(metadata_path)
127129
elif old_metadata_path.exists() and metadata_path.exists():
128130
click.secho(
129-
"Warning: Found both `latch_metadata.py` and"
130-
" `latch_metadata/__init__.py` in current directory."
131-
" `latch_metadata.py` will be ignored.",
131+
(
132+
"Warning: Found both `latch_metadata.py` and"
133+
" `latch_metadata/__init__.py` in current directory."
134+
" `latch_metadata.py` will be ignored."
135+
),
132136
fg="yellow",
133137
)
134138

135139
if not metadata_path.exists() and click.confirm(
136-
"Could not find an `__init__.py` file in `latch_metadata`. Generate one?"
140+
"Could not find an `__init__.py` file in `latch_metadata`. This file"
141+
"defines the metadata object that configures your interface and "
142+
"uses parameters imported from `parameters.py`"
143+
"Generate one?"
137144
):
138145
metadata_path.write_text(
139146
reindent(
@@ -182,7 +189,7 @@ def generate_metadata(
182189
# Import these into your `__init__.py` file:
183190
#
184191
# from .parameters import generated_parameters
185-
#
192+
186193
generated_parameters = {
187194
__params__
188195
}

latch_cli/snakemake/serialize.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,8 @@ def generate_jit_register_code(
426426
from functools import partial
427427
from pathlib import Path
428428
import shutil
429-
from typing import List, NamedTuple, Optional, TypedDict, Dict
429+
import typing
430+
from typing import NamedTuple, Optional, TypedDict, Dict
430431
import hashlib
431432
from urllib.parse import urljoin
432433
from dataclasses import is_dataclass, asdict

latch_cli/snakemake/serialize_utils.py

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
from typing import Dict, Union
23

34
from flytekit import LaunchPlan
@@ -210,3 +211,8 @@ def get_serializable_workflow(
210211
admin_wf = admin_workflow_models.WorkflowSpec(template=wf_t, sub_workflows=[])
211212
cache[entity] = admin_wf
212213
return admin_wf
214+
215+
216+
def best_effort_display_name(x: str):
217+
expr = re.compile(r"_+")
218+
return expr.sub(" ", x).title().strip()

0 commit comments

Comments
 (0)