Skip to content

Commit 9facfe6

Browse files
authored
[bug fix] fix subtle bug from #2463 (#2513)
When doing something like : ``` from metaflow import project .... mymutableflow.add_decorator( project, deco_kwargs={"name":"abc"}) ``` Metaflow breaks with the error : ``` File ".../metaflow/flowspec.py", line 312, in _process_config_decorators deco.pre_mutate(mutable_flow) File "mydeco.py", line 67, in pre_mutate mutable_flow.add_decorator( File ".../metaflow/user_decorators/mutable_flow.py", line 409, in add_decorator _add_flow_decorator( File ".../metaflow/user_decorators/mutable_flow.py", line 353, in _add_flow_decorator d for d in self._flow_cls._flow_decorators if d.name == flow_deco.name ^^^^^^ AttributeError: 'str' object has no attribute 'name' ``` This is because we dont handle the _flow_cls._flow_decorators in the right way (as a dict instead of list)
1 parent a32f4b1 commit 9facfe6

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

metaflow/user_decorators/mutable_flow.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,10 @@ def _do_add():
347347
"Mutable flow adding flow decorator '%s'" % deco_type
348348
)
349349

350+
# self._flow_cls._flow_decorators is a dictionary of form :
351+
# <deco_name> : [deco_instance, deco_instance, ...]
350352
existing_deco = [
351-
d for d in self._flow_cls._flow_decorators if d.name == flow_deco.name
353+
d for d in self._flow_cls._flow_decorators if d == flow_deco.name
352354
]
353355

354356
if flow_deco.allow_multiple or not existing_deco:

0 commit comments

Comments
 (0)