mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
add a __call__ stub to PyObject for mypy (#1849)
Co-authored-by: Brian Maissy <brian@medigate.io>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
Add a `__call__` stub to `PyObject` so that mypy will know that it is callable
|
||||
@@ -317,6 +317,11 @@ class PyObject:
|
||||
except ImportError as e:
|
||||
raise errors.PyObjectError(error_message=str(e))
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
||||
def __call__(self, *args: Any, **kwargs: Any) -> Any:
|
||||
...
|
||||
|
||||
|
||||
class ConstrainedNumberMeta(type):
|
||||
def __new__(cls, name: str, bases: Any, dct: Dict[str, Any]) -> 'ConstrainedInt': # type: ignore
|
||||
|
||||
@@ -5,10 +5,10 @@ Do a little skipping about with types to demonstrate its usage.
|
||||
"""
|
||||
import json
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from datetime import date, datetime
|
||||
from typing import Any, Dict, Generic, List, Optional, TypeVar
|
||||
|
||||
from pydantic import BaseModel, NoneStr, StrictBool, root_validator, validate_arguments, validator
|
||||
from pydantic import BaseModel, NoneStr, PyObject, StrictBool, root_validator, validate_arguments, validator
|
||||
from pydantic.fields import Field
|
||||
from pydantic.generics import GenericModel
|
||||
|
||||
@@ -127,3 +127,13 @@ def foo(a: int, *, c: str = 'x') -> str:
|
||||
|
||||
foo(1, c='thing')
|
||||
foo(1)
|
||||
|
||||
|
||||
class MyConf(BaseModel):
|
||||
str_pyobject: PyObject = Field('datetime.date')
|
||||
callable_pyobject: PyObject = Field(date)
|
||||
|
||||
|
||||
conf = MyConf()
|
||||
var1: date = conf.str_pyobject(2020, 12, 20)
|
||||
var2: date = conf.callable_pyobject(2111, 1, 1)
|
||||
|
||||
Reference in New Issue
Block a user