* Rename skip-defaults, and add ability to exclude actual defaults
* Add __defaults__ and deprecation warnings
* Add note about `skip_defaults` to docs
* Incorporate feedback
* Add tests and changes
* Fix reference to .json()
* Fix#867 by accepting and passing on **kwargs in ModelMetaclass.__new__
pydantic.main.MetaModel.__new__ should include **kwargs at the end of
the method definition and pass them on to the super call at the end in
order to allow the special method __init_subclass__ to be defined with
custom parameters on extended BaseModel classes.
* MetaModel -> ModelMetaclass
* shrink change notes
* rename and reformat change description
* rename Schema to Field
* add Schema function with deprecation warning
* mypy tests and other tweaks
* tweaks and cleanup
* Update pydantic/fields.py
Co-Authored-By: Sebastián Ramírez <tiangolo@gmail.com>
* Add support for Type[T] typehints when arbitrary_types_allowe==True.
* Add documentation.
* Let black do its magic.
* Ignore mypy warning - see here: https://github.com/python/mypy/issues/3060
* Prettify docs.
* Change Changelog.
* Refactor and simplify check for Type[T].
* Black again. ^^ - Really need pre-commit hooks.
* Update pydantic/validators.py
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Rename arbitrary_class to class.
* Black.
* Add type hints.
* Make private function public.
* Add support for bare Type.
* Black again.
* Update docs.
* CO_ct not meant for export.
* Fix get_class for Python3.6
* Update error message of ClassError.
* Use relative import.
* Incorporate typing feedback (both versions are fine with mypy).
* Move from issubclass to lenient_issubclass.
* correct docs
* Fix alias_generator and field config conflict (see #645)
* HISTORY.rst update: fix alias_generator and field config conflict
* Merge HISTORY.rst with master
* support custom root types
* update HISTORY.rst for costom root types
* fix invalid arguments case
* remove the keyword argument of "__root__" in __init__
add a keyword argument of "__root__" in parse_obj
fix documents
create a method for cheking valid field name
* fix parse_obj
* Update docs/index.rst
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Apply suggestions from code review
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* add type cheking for custom root type
* Update docs/index.rst
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Update index.rst
* Update sphinx from 2.0.1 to 2.1.2
* Update typing-extensions from 3.7.2 to 3.7.4
* Update cython from 0.29.9 to 0.29.11
* Update isort from 4.3.20 to 4.3.21
* Update mypy from 0.701 to 0.711
* Update pytest from 4.6.0 to 5.0.0
* pytest and mypy fixes
* prevent deprication warnings
* Added alias_provider
* Update HISTORY.rst (+ add alias_provider support #622 by @MrMrRobat)
* Rename alias_provider —> alias_generator
Move docs to config section, reformat example
Separate test_alias_generator
* Update docs/index.rst
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Update docs/index.rst
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Update docs/index.rst
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Fix conflict between dictionary field config in Config.fields and Config.alias_generator
Add one more condition for applying alias_generator
Co-Authored-By: Samuel Colvin <samcolvin@gmail.com>
* Add test for using alias_generator with field schema
fix#561
* Add support for Literal annotation
* Updated requirements.txt
* incorporating feedback
* skip typing_extensions tests if not installed
* missed a spot
* address feedback
* Make work with python 3.6
* Work for *both* 3.6 and 3.7
* incorporate feedback
* fixed naming and quotes
* Trying to fix LGTM bot issue
* Fix __fields_set__ not using alias field names (#517)
fix#517
* Update HISTORY.rst
* Fix single quotes
* Don't need to check allow_population_by_alias
* Calculate fields_set in validate_model instead
* Fix formatting
* Add breaking change to history
* Minor fixed to validate_mode
* Minor fixes to tests
* Add comments for names_used and fields_set in validate_model
* feat: implement const keyword in Schema
Fix#434.
* make fields marked `const` optional
* move `const` out of the `Field`
* check that `schema` is not `None` instead of using `getattr`
* tweak constant error
* Support specialized ClassVars, e. g. ClassVar[int] now works in a model, fix#435
* Use apostrophes and pass the test also on python 3.6, where ClassVar[int] is a ClassVar, not a _GenericAlias. Note that the == operator gives False in this case, so we must really compare the classes directly.
* Another attempt at the ClassVar check.
* Ran make format.
* Make mypy happy.
* add HISTORY
fix#378
* Tracking for setting attributes
* Fixes accidental leak of fields
* Allows defaults fields to be recursively set
* Docs and history for skip_defaults
* Mypy fix on calculate keys
* Update pydantic/main.py
Co-Authored-By: dgasmith <dgasmith@icloud.com>
* Update pydantic/main.py
Co-Authored-By: dgasmith <dgasmith@icloud.com>
* Update HISTORY.rst
Co-Authored-By: dgasmith <dgasmith@icloud.com>
* Cleanup pass based off review
* Simplifies constructors based on feedback
* Makes mypy happy with exlicit KeysView
* SetOrKeys and faster key search
* Formats files once more
* add tests for dict, pickle and construct
* fixes for dict, pickle and construct
* correct field_set for extra.ignore
* Fixes format
deprecated `ignore_extra` and `allow_extra` Config fields in favor of `extra`, fix#352
* refaactored extra types to use a single enum
* slightly simplified
* added tests
* fixed most stuff
* docs and some simplifications
* better assert
* changed enum and fixed logic
* trying to capture deprecation warning
* make format
* fixing tests and moving exta logic to __new__
* set_extra tests
* fox benchmarks
* formatting
* updated history
* docs
* added a negative tests
* reverted format changes
* format
* matched casing
* renamed values
* more fixes
* forgot values change
* another one
* weird stuff
* linting issue
* Update pydantic/main.py
Co-Authored-By: liiight <4374581+liiight@users.noreply.github.com>
* Raise a NameError if a field name shadows a BaseModel attribute fix#242
* Move the test and also check the names of non-annotation attributes
* Fix for flake8
* Fix import order
* Move validate_field_name to utils
* Linting
* Update history
* Make dump/load symmetric for aliased fields
* Only populate model fields by alias if enabled
* Document Config.allow_population_by_alias
* Update history
* Fix doc formatting
* Fix doc errors
* Get rid of `track` in errors
* Move `display_as_type` func into utils module
* Get rid of error as `namedtuple`
* Renamed `Error.index` to `Error.loc`
* New way to get error type
* New way to get error message
* New errors format
* Renamed `flatten_errors` property to `flat_errors`
* `__slots__` for `Error` and `ValidationError`
* `loc` as `tuple`
* Tests
* Review fixes
* `flatten_errors` as generator
* Perform validation on assignment to attribute
* Add config variable "validate_assignment" defaulting to False.
* Add unit test.
* Add non-empty second parameter to fields.validate
* Improved tests per maintainer's suggestions.
* Improved tests.
* Add documentation in index.rst
* working on parsers
* starting parse tests
* proper tests for parse
* adding parse docs
* tweaks and history
* add test for datetime direct, fix tests
* tweak docs