传递 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方法。

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")