Handle dataframe base vars (#878)

This commit is contained in:
Nikhil Rao 2023-04-25 23:50:43 -07:00 committed by GitHub
parent 1a8e0b8058
commit 15485f0716
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -704,6 +704,9 @@ class BaseVar(Var, Base):
Returns:
The default value of the var.
Raises:
ImportError: If the var is a dataframe and pandas is not installed.
"""
type_ = (
self.type_.__origin__ if types.is_generic_alias(self.type_) else self.type_
@ -720,6 +723,15 @@ class BaseVar(Var, Base):
return {}
if issubclass(type_, tuple):
return ()
if types.is_dataframe(type_):
try:
import pandas as pd
return pd.DataFrame()
except ImportError as e:
raise ImportError(
"Please install pandas to use dataframes in your app."
) from e
return set() if issubclass(type_, set) else None
def get_setter_name(self, include_state: bool = True) -> str: