Skip to content

Commit 34e4086

Browse files
authored
feat: enforce requirement for at least one dependency attribute in Dependency class (#5472)
* feat: enforce requirement for at least one dependency attribute in Dependency class Signed-off-by: Frost Ming <me@frostming.com> * fix: simplify argument parsing in set_build_args function Signed-off-by: Frost Ming <me@frostming.com> --------- Signed-off-by: Frost Ming <me@frostming.com>
1 parent fae85d2 commit 34e4086

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/_bentoml_sdk/service/dependency.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class Dependency(t.Generic[T]):
3535
url: str | None = None
3636
_resolved: t.Any = attrs.field(default=None, init=False)
3737

38+
def __attrs_post_init__(self) -> None:
39+
if self.on is None and self.url is None and self.deployment is None:
40+
raise ValueError("Must specify at least one of on, deployment or url")
41+
3842
@t.overload
3943
def get(self: Dependency[None]) -> RemoteProxy[t.Any]: ...
4044

src/bentoml_cli/utils.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -495,13 +495,12 @@ def set_build_args(ctx: Context, param: Parameter, value: str | tuple[str]) -> N
495495
value = (value,)
496496
arguments: dict[str, str] = {}
497497
for item in value:
498-
for part in item.split(","):
499-
key, has_equal, val = part.partition("=")
500-
if not has_equal:
501-
raise click.BadParameter(
502-
f"Invalid argument format: {part}. Must be in the form of key=value"
503-
)
504-
arguments[key] = val
498+
key, has_equal, val = item.partition("=")
499+
if not has_equal:
500+
raise click.BadParameter(
501+
f"Invalid argument format: {item}. Must be in the form of key=value"
502+
)
503+
arguments[key] = val
505504

506505
set_arguments(arguments, override=False)
507506

0 commit comments

Comments
 (0)