示例#1
0
    def prepare_args_model(self, wrapped: FunctionType, field_definitions: FieldDefinitions) -> ModelType:
        args_model = pydantic.create_model(
            model_name=getattr(wrapped, '__qualname__', 'callable') + '_args_model',
            __config__=self.config,
            __validators__=self.validators,
            **field_definitions
        )

        args_model.__config__.extra = pydantic.Extra.forbid
        logging.debug(f'Created arguments model for {wrapped} with fields: {args_model.__fields__}')
        wrapped.__args_model__ = args_model  # type: ignore
        return args_model