diff --git a/metaflow/includefile.py b/metaflow/includefile.py index 33f4529bec..569f028e43 100644 --- a/metaflow/includefile.py +++ b/metaflow/includefile.py @@ -227,6 +227,10 @@ def __init__(self, is_text, encoding): self._encoding = encoding def convert(self, value, param, ctx): + if callable(value): + # Already a correct type + return value + value = os.path.expanduser(value) ok, file_type, err = LocalFile.is_file_handled(value) if not ok: diff --git a/metaflow/parameters.py b/metaflow/parameters.py index f07590e453..9ee37809ef 100644 --- a/metaflow/parameters.py +++ b/metaflow/parameters.py @@ -36,6 +36,9 @@ class JSONTypeClass(click.ParamType): name = 'JSON' def convert(self, value, param, ctx): + if not isinstance(value, strtype): + # Already a correct type + return value try: return json.loads(value) except: