From 5d2c5980f1589971d64be32ae805b2ceda7fc222 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Tue, 1 Feb 2022 14:52:00 -0700 Subject: [PATCH 1/2] Make `_df` a private attribute --- intake_esm/cat.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/intake_esm/cat.py b/intake_esm/cat.py index 42f4d11d..10c4f31e 100644 --- a/intake_esm/cat.py +++ b/intake_esm/cat.py @@ -93,9 +93,11 @@ class ESMCatalogModel(pydantic.BaseModel): catalog_file: pydantic.StrictStr = None description: pydantic.StrictStr = None title: pydantic.StrictStr = None - _df: typing.Optional[typing.Any] = pydantic.PrivateAttr() + _df: typing.Optional[pd.DataFrame] = None class Config: + arbitrary_types_allowed = True + underscore_attrs_are_private = True validate_all = True validate_assignment = True @@ -242,19 +244,15 @@ def columns_with_iterables(self) -> typing.Set[str]: ) return {column for column, check in has_iterables.items() if check} - @property - def has_multiple_variable_assets(self) -> bool: - """Return True if the catalog has multiple variable assets.""" - return self.aggregation_control.variable_column_name in self.columns_with_iterables - @property def df(self) -> pd.DataFrame: """Return the dataframe.""" return self._df - @df.setter - def df(self, value: pd.DataFrame) -> None: - self._df = value + @property + def has_multiple_variable_assets(self) -> bool: + """Return True if the catalog has multiple variable assets.""" + return self.aggregation_control.variable_column_name in self.columns_with_iterables def _cast_agg_columns_with_iterables(self) -> None: """Cast all agg_columns with iterables to tuple values so as From 7a9a7f573fc1b50fad443a24cb20466eaa312f30 Mon Sep 17 00:00:00 2001 From: Anderson Banihirwe Date: Tue, 1 Feb 2022 14:54:24 -0700 Subject: [PATCH 2/2] Reintroduce pydantic.PrivateAttr() --- intake_esm/cat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intake_esm/cat.py b/intake_esm/cat.py index 10c4f31e..5824ec35 100644 --- a/intake_esm/cat.py +++ b/intake_esm/cat.py @@ -93,7 +93,7 @@ class ESMCatalogModel(pydantic.BaseModel): catalog_file: pydantic.StrictStr = None description: pydantic.StrictStr = None title: pydantic.StrictStr = None - _df: typing.Optional[pd.DataFrame] = None + _df: typing.Optional[pd.DataFrame] = pydantic.PrivateAttr() class Config: arbitrary_types_allowed = True