传递 BaseModel class 或 Null 的参数 - 其他一切都不起作用
Pass argument that is BaseModel class or Null - everything else shouldn't work
我必须向该方法传递一个参数,但这不是必需的。如果给出,则仅应作为 BaseModel class 接受。知道怎么做吗?
方法定义:
def create_upr(args: Args, extra_args: ExtraArgs):
class的定义:
class ExtraArgs(BaseModel):
polynomials: List[PolynomialInput]
one_cutoffs: List[OneCutoffInput]
two_cutoffs: List[TwoCutoffsInput]
three_cutoffs: List[ThreeCutoffsInput]
grouping_parameters: Dict[Set[str]] #grouping values in parameters to group by
class Args(BaseModel):
gwp: float
cover_start_date: datetime.date
cover_end_date: datetime.date
calculation_date: datetime.date
calculation_method: CalculationMethod
嗨
你需要verify/check如果给定的参数是BaseModel的一个实例,你可以使用isinstance方法。
然后您可以引发错误,例如 return 使用该函数的特定值
你的函数有一个例子:
def create_upr(args: Args, extra_args: ExtraArgs):
if extra_args and not isinstance(extra_args, ExtraArgs):
raise TypeError("extra_args must be of type ExtraArgs")
我必须向该方法传递一个参数,但这不是必需的。如果给出,则仅应作为 BaseModel class 接受。知道怎么做吗?
方法定义:
def create_upr(args: Args, extra_args: ExtraArgs):
class的定义:
class ExtraArgs(BaseModel):
polynomials: List[PolynomialInput]
one_cutoffs: List[OneCutoffInput]
two_cutoffs: List[TwoCutoffsInput]
three_cutoffs: List[ThreeCutoffsInput]
grouping_parameters: Dict[Set[str]] #grouping values in parameters to group by
class Args(BaseModel):
gwp: float
cover_start_date: datetime.date
cover_end_date: datetime.date
calculation_date: datetime.date
calculation_method: CalculationMethod
嗨
你需要verify/check如果给定的参数是BaseModel的一个实例,你可以使用isinstance方法。
然后您可以引发错误,例如 return 使用该函数的特定值
你的函数有一个例子:
def create_upr(args: Args, extra_args: ExtraArgs):
if extra_args and not isinstance(extra_args, ExtraArgs):
raise TypeError("extra_args must be of type ExtraArgs")