diff --git a/metaflow/includefile.py b/metaflow/includefile.py index 3237017bb3c..33f4529bec8 100644 --- a/metaflow/includefile.py +++ b/metaflow/includefile.py @@ -292,6 +292,8 @@ def __init__( type=FilePathClass(is_text, encoding), **kwargs) def load_parameter(self, val): + if val is None: + return val ok, file_type, err = LocalFile.is_file_handled(val) if not ok: raise MetaflowException("Parameter '%s' could not be loaded: %s" % (self.name, err)) diff --git a/test/core/tests/basic_include.py b/test/core/tests/basic_include.py index b505343cf58..fa9f0404b1d 100644 --- a/test/core/tests/basic_include.py +++ b/test/core/tests/basic_include.py @@ -7,7 +7,8 @@ class BasicIncludeTest(MetaflowTest): 'myfile_txt': {'default': "'./reg.txt'"}, 'myfile_utf8': {'default': "'./utf8.txt'", 'encoding': "'utf8'"}, 'myfile_binary': {'default': "'./utf8.txt'", 'is_text': False}, - 'myfile_overriden': {'default': "'./reg.txt'"} + 'myfile_overriden': {'default': "'./reg.txt'"}, + 'absent_file': {'required': False} } HEADER = """ import codecs @@ -30,6 +31,8 @@ def step_all(self): u"UTF Text File \u5e74".encode(encoding='utf8'), self.myfile_binary) assert_equals("Override Text File", self.myfile_overriden) + # Check that an absent file does not make things crash + assert_equals(None, self.absent_file) try: # Include files should be immutable self.myfile_txt = 5