Yes sure CostlyOstrich36 , I'm just trying to pass some arguments from my __main__
to my pipeline_entry()
to my component get_best_model()
. But for some reason, I'm getting None
into get_best_model
instead of what I've given it in pipeline_entry
Hmm let me check I think you are correct here
Hmm there was a commit there that was "fixing" some stuff , apparently it also broke it
Let me see if we can push an RC (I know a few things are already waiting to be released)
Weeell it seems to work with version 1.7.0 and not with 1.7.1
SmugSnake6 what's the clearml version you are using ?
Hi SmugSnake6 , can you please elaborate on what exactly is happening and what you were expecting to happen?
This will fix it, the issue is the "no default value" that breaks the casting@PipelineDecorator.component(cache=False) def step_one(my_arg=""):
CostlyOstrich36 This looks like a bug? Here's a simpler version of it and what I'm getting:
` from clearml.automation.controller import PipelineDecorator
@PipelineDecorator.component(cache=False)
def step_one(my_arg):
print('step_one/my_arg:', my_arg) # step_one/my_arg: None
# I should not get None here! At least that's what I'm expecting
@PipelineDecorator.pipeline(name='custom pipeline logic', project='examples', version='0.0.5')
def executing_pipeline(my_arg):
print('my_arg:', my_arg) # my_arg: hello
step_one(my_arg)
if name == 'main':
PipelineDecorator.run_locally()
executing_pipeline(
my_arg='hello',
) `
But this works strangely:
` @PipelineDecorator.component(cache=False, execution_queue="default")
def get_param():
return 'hello'
@PipelineDecorator.component(cache=False, execution_queue="default")
def get_best_model(task_ids):
import ...
print('task_ids:', task_ids, type(task_ids)) # task_ids: None <class 'NoneType'>
...
@PipelineDecorator.pipeline(
name='...',
project='...',
version='0.1'
)
def pipeline_entry(task_ids: List[str], ...):
print(task_ids, type(task_ids)) # ['a8f9a023a7404400a27aff44a945cff1', 'c63f6606ef76475cb9549ad71aaeaff6', 'a40d6eca53a347dd9b383afa65560960'] <class 'list'>
param = get_param()
get_best_model(param)
...
if name == 'main':
PipelineDecorator.run_locally()
pipeline_entry(
task_ids=[
'a8f9a023a7404400a27aff44a945cff1',
'c63f6606ef76475cb9549ad71aaeaff6',
'a40d6eca53a347dd9b383afa65560960',
]
) `