From a133c03d0fde74ceb8aa7e098caef936288da179 Mon Sep 17 00:00:00 2001 From: Sumit Maheshwari Date: Tue, 26 Jul 2022 16:26:00 +0530 Subject: [PATCH 1/3] Add __repr__ to ParamsDict class --- airflow/models/param.py | 3 +++ tests/models/test_param.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/airflow/models/param.py b/airflow/models/param.py index fcbe7a0f931c6..3ced5fc7baf2e 100644 --- a/airflow/models/param.py +++ b/airflow/models/param.py @@ -147,6 +147,9 @@ def __delitem__(self, v: str) -> None: def __iter__(self): return iter(self.__dict) + def __repr__(self): + return f'{self.dump()}' + def __setitem__(self, key: str, value: Any) -> None: """ Override for dictionary's ``setitem`` method. This method make sure that all values are of diff --git a/tests/models/test_param.py b/tests/models/test_param.py index 3529f0360cdcf..bbd430d773609 100644 --- a/tests/models/test_param.py +++ b/tests/models/test_param.py @@ -193,6 +193,10 @@ def test_update(self): with pytest.raises(ParamValidationError, match=r'Invalid input for param key: 1 is not'): pd.update({'key': 1}) + def test_repr(self): + pd = ParamsDict({'key': Param('value', type='string')}) + assert repr(pd) == "{'key': 'value'}" + class TestDagParamRuntime: VALUE = 42 From 2ee6aa2ce50489e55d9d9bccc95e3175fbb3571b Mon Sep 17 00:00:00 2001 From: Sumit Maheshwari Date: Tue, 26 Jul 2022 21:31:24 +0530 Subject: [PATCH 2/3] review comment --- airflow/models/param.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airflow/models/param.py b/airflow/models/param.py index 3ced5fc7baf2e..689023657ac2f 100644 --- a/airflow/models/param.py +++ b/airflow/models/param.py @@ -148,8 +148,8 @@ def __iter__(self): return iter(self.__dict) def __repr__(self): - return f'{self.dump()}' - + return repr(self.dump()) + def __setitem__(self, key: str, value: Any) -> None: """ Override for dictionary's ``setitem`` method. This method make sure that all values are of From bb8f47ecd4f10f40a9db59a717bfaa286aa54b7e Mon Sep 17 00:00:00 2001 From: Sumit Maheshwari Date: Tue, 26 Jul 2022 22:45:19 +0530 Subject: [PATCH 3/3] lint fixes --- airflow/models/param.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airflow/models/param.py b/airflow/models/param.py index 689023657ac2f..1179dd9fd6d0c 100644 --- a/airflow/models/param.py +++ b/airflow/models/param.py @@ -149,7 +149,7 @@ def __iter__(self): def __repr__(self): return repr(self.dump()) - + def __setitem__(self, key: str, value: Any) -> None: """ Override for dictionary's ``setitem`` method. This method make sure that all values are of