From a6a9506453e3e22c31fb6be695d51c5f95eefb72 Mon Sep 17 00:00:00 2001 From: Shannon Shen <22512825+lolipopshock@users.noreply.github.com> Date: Mon, 21 Feb 2022 22:10:51 -0500 Subject: [PATCH] more robust handling of list like objects values --- src/notion_df/values.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/notion_df/values.py b/src/notion_df/values.py index d53ce4c..0755358 100644 --- a/src/notion_df/values.py +++ b/src/notion_df/values.py @@ -19,7 +19,10 @@ FileObject, FormulaObject ) -from notion_df.utils import flatten_dict +from notion_df.utils import ( + flatten_dict, + is_list_like +) class BasePropertyValues(BaseModel): @@ -106,7 +109,7 @@ def value(self) -> List[str]: @classmethod def from_value(cls, values: Union[List[str], str]): - if isinstance(values, list): + if is_list_like(values): return cls( multi_select=[SelectOption.from_value(value) for value in values] ) @@ -143,7 +146,7 @@ def value(self) -> List[str]: @classmethod def from_value(cls, values: Union[List[str], str]): - if isinstance(values, list): + if is_list_like(values): return cls(relation=[RelationObject.from_value(value) for value in values]) else: return cls(relation=[RelationObject.from_value(values)]) @@ -158,7 +161,7 @@ def value(self) -> List[str]: @classmethod def from_value(cls, values: Union[List[str], str]): - if isinstance(values, list): + if is_list_like(values): return cls(people=[UserObject.from_value(value) for value in values]) else: return cls(people=[UserObject.from_value(values)])