mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
0f948618ba
* Add right __init__ signature generation * Add params overlay support for custom __init__, enhance tests * Change fake_ini creation to solve AttributeError in cython AttributeError: attribute '__code__' of 'cython_function_or_method' objects is not writable Possible there's other attrs that cannot be set in cython, but can't check myself yet * Cython compatibility, add __signature__, ignore non-identifiers fields Moved tests to separate file Moved __init__ creation to utils * Remove # pragma: no cover Co-Authored-By: Samuel Colvin <samcolvin@gmail.com> * Fixed adding signature to doc, some compatibility fixes * Changed None to tuple() for py3.8 compatibility * Finally (hope so) fix issues with closure. Add new docstring each time * coverage for UndefinedType * Checking signature more simple and obvious way * Changed doc caption to simple message, used Undefined, merge conflicts * Compatibility with py3.6 * Add changes/ file * Ah, that space... Reformatted and ready to go! * Update pydantic/main.py Co-Authored-By: Samuel Colvin <samcolvin@gmail.com> * Update pydantic/main.py Co-Authored-By: Samuel Colvin <samcolvin@gmail.com> * Fix signature for properties declared as fields * Sort imports * Add comments * Generate BaseModel signature instead of __init__ signature * Fixed imports * Minor improvements from review * Add docs for model signature * Delete unused imports * Fix formatting in tests * Remove inspect imports from top level * Update docs/examples/models_signature.py Co-Authored-By: Samuel Colvin <samcolvin@gmail.com> * Add missing import * Remove notes from doc * change hypothesis-auto mention to hypothesis * Use None as slice end instead of len() * tweak generate_model_signature * improve docs * Revert af3dd4d, add fields to custom init only if var_kw declared Co-authored-by: Samuel Colvin <samcolvin@gmail.com>
14 lines
289 B
Python
14 lines
289 B
Python
import inspect
|
|
|
|
from pydantic import BaseModel
|
|
|
|
class MyModel(BaseModel):
|
|
id: int
|
|
info: str = 'Foo'
|
|
|
|
def __init__(self, id: int = 1, *, bar: str, **data) -> None:
|
|
"""My custom init!"""
|
|
super().__init__(id=id, bar=bar, **data)
|
|
|
|
print(inspect.signature(MyModel))
|