Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Answered
Hey Guys, I'Ve Got This Weird Issue In My Pipeline! Any Ideas Of What I Could'Ve Missed? My Parameter Becomes

Hey guys, I've got this weird issue in my pipeline! Any ideas of what I could've missed? My parameter becomes None when I pass it to my component 😕
` @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'>
best_model = get_best_model(task_ids=task_ids)
...

if name == 'main':
PipelineDecorator.run_locally()

pipeline_entry(
    task_ids=[
        'a8f9a023a7404400a27aff44a945cff1',
        'c63f6606ef76475cb9549ad71aaeaff6',
        'a40d6eca53a347dd9b383afa65560960',
    ]
) `
  
  
Posted 2 years ago
Votes Newest

Answers 11


Hi SmugSnake6 , can you please elaborate on what exactly is happening and what you were expecting to happen?

  
  
Posted 2 years ago

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

  
  
Posted 2 years ago

Weeell it seems to work with version 1.7.0 and not with 1.7.1

  
  
Posted 2 years ago

1.7.1

  
  
Posted 2 years ago

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',
    ]
) `
  
  
Posted 2 years ago

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',
) `
  
  
Posted 2 years ago

SmugSnake6 what's the clearml version you are using ?

  
  
Posted 2 years ago

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)

  
  
Posted 2 years ago

Okay, thanks

  
  
Posted 2 years ago

This will fix it, the issue is the "no default value" that breaks the casting
@PipelineDecorator.component(cache=False) def step_one(my_arg=""):

  
  
Posted 2 years ago

Hmm let me check I think you are correct here

  
  
Posted 2 years ago
1K Views
11 Answers
2 years ago
one year ago
Tags