* IPv{4,6,Any}{Network,Interface} types added, unittests and docs updated
* HISTORY.rst minor update
* Remove strict argument from IP network types
* IP Networks validators and type hints fixed
* tweak history
* Update sphinx from 1.8.3 to 1.8.4
* Update flake8 from 3.7.4 to 3.7.7
* Update isort from 4.3.4 to 4.3.9
* Update mypy from 0.660 to 0.670
* Update pyflakes from 2.1.0 to 2.1.1
* Update pytest from 4.2.0 to 4.3.0
* Update pytest-mock from 1.10.0 to 1.10.1
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
* add type hints, fix#372
* fix tests and BaseModel inference
* fix#280
* fix dataclasses and docs
* more typing
* adding hints to fields.py
* type **EVERTHING*
* fix for 3.6
* small speed ups and some typ checks
* correct model.copy
* update history
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>
fix#279
* Support typing.Callable validation.
* Add myself to HISTORY.
* Prove it works with just Callable.
* Document callable validator behavior.
* Support differences in typing module between py36 and py37.
* Remove callable filed from JSON schema with warning.
* Update pydantic/schema.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Update tests/test_callable.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Update pydantic/validators.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Update tests/test_callable.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Move callables to the exotic types.
* Move Callable type choice to the import time.
* Move is_callable_type to the utils module.
* Raise warning at skip except.
* Update pydantic/schema.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Update docs/index.rst
Co-Authored-By: proofit404 <proofit404@gmail.com>
* Update pydantic/schema.py
Co-Authored-By: proofit404 <proofit404@gmail.com>
* uprev
* Update index.rst (#370)
* Update history.rst
* Make the example a little more concise.
* Use callable import from the utils.
* Remove blank line.
* Remove duplication comments.
* fix history
* support postponed annotations in python 3.7
* support for full ForwardRef
* tweak update_forward_refs
* better ForwardRef resolution
* remove debug, fix linting
* fix comments
* docs and history
* Add support for passing Configs to Dataclasses
* formatting and fixes
* move tests into dataclasses_config.py
* use inherit_config in create_model
fix#276
* Add section "Based on Pydantic" with FastAPI
* Update History
* Update Third-Party libraries section, based on the style of AIOHTTP
* Remove release History details
* Add additional parameters to Schema for validation and annotation (#311)
* Add tests for validation declared via Schema class in defaults
* Add validations to field from declarations in Schema
* Add annotations in generated JSON Schema from validations via Schema
* Augment tests for schema generation
* Simplify validations from Schema in fields, from coverage hints
* Update schema test to use the spec plural "examples"
* Add docs and simple example of the additional parameters for Schema
* Update history
* Fix number of PR in HISTORY
* Refactor check for numeric types, remove break to make coverage happy
* Fix typo in docs, I confused gt with maximum
* Finish docstring for Schema (I had forgotten about it)
* Implement code review requests and lenient_issubclass with tests
* Move Schema to its now file to extract from fields.py but avoid circular imports
* Control coverage
* Schema fixes (#318)
* rearrange code
* cleanup get_annotation_from_schema
* fix typo
* rename _schema to schema
* Update pygments from 2.2.0 to 2.3.0
* Update sphinx from 1.8.1 to 1.8.2
* Update coverage from 4.5.1 to 4.5.2
* Update pytest from 3.9.3 to 4.0.1
* Update pytest-sugar from 0.9.1 to 0.9.2
* feat: add support for case insensitive env names
Closes#277
* feedback: just alias os.environ
* doc: update history
* doc: mention case_insensitive option
* refactor: feedback if-else expression assignment
* fix: formatting
* chore: encode black configuration in file to support IDEs
* docs: fix example
* feedback: no suppport for IDEs in this PR
* feedback: style
* Update schema tests to conform to JSON Schema spec
* Add JSON Schema tests for all supported types
including datetime and all supported Pydantic.types
* Add JSON Schema conforming schema sub module
* Update BaseModel to use schema module for JSON Schema generation
and update/simplify internal Schema methods
* Remove Schema code from Field class, replaced with JSON Schema module
* Add submodules to test model name generation for JSON Schemas
* Refactor/rewrite schema module to generate definions and refs
* Update and augment JSON Schema tests to include definitions and refs
and generation of a single JSON Schema with definitions from multiple (unrelated) models
* Add ref_prefix functionality to JSON Schema generation functions
* Test custom ref_prefix in JSON Schema generation
* Remove un-used BaseModel method, now refactored to schema module
* Update formating of test_schema
* Fix long lines in test_schema
* Fix imported but unused in fields
* Fix imported but unused in main.py
* Ignore imported but unused for testing modulec
* Refactor schema module for complexity
* Add conflicting name model to raise coverage
* Add conflicting model to test other flow and raise coverage
* Ignore complexity as destructuring more would make it more complex
and more difficult to understand, similar to .fields.validate
* Fix import sorting
* Update formatting with black, with CI settings
* Fix test for schemas with email validation
* Check if field is class before checking if is subclass
* Improve schema error when using unsuported types
* Add additional tests for corner cases, raise coverage to 100%
* Rename BaseModel.schema_json to schema_str (EAFP Python style)
* Add more tests to utils.display_as_type to increase the coverage for enums
* Remove unused catched error in schema tests
* Fix formatting with black
* Update docs schema example
* Add schema examples for top-level schema with multiple models
* Update docs, section Schema, with new JSON Schema generation details
* Update docs, history, with new features
* Update fields, remove unnecessary schema code for enums
* Update docs, fix links and typos in Schema section
* Trigger CI, as Python 3.7-dev seems to have random CI errors
* Revert Model.schema_str to Model.schema_json as requested
* Remove unnecessary assert in schema module as requested
* Remove annotations in internal functions, as requested
* Refactor get_flat_models_from_fields and reuse
* Use set short assignment syntax in schema module
* Remove unwanted assertion
* Make get_long_model_name a single line f-string
* Update model_name_map, add docstring and remove first return value
* Simplify dict operation in get_model_name_map as requested
* Make more concise model_name_map computation
* Remove bool from field check in schema as is subclass of int
* Make ref_prefix default to None and use global default
* Fix formatting for schema.py
* Refactor field_singleton_schema to use data structures
* Move main functions to top of schema, and add docstrings for them
* Implement __all__, move and order parts of schema
* Remove schema testing sub-package code as requested
* Generate schema testing subpackage in code
* Update schema tests with several related fields to use parametrized pytest
* Fix formatting and imports I missed after rebase
* Fix new formatting errors from CI
* Re-trigger Travis CI, Python 3.7-dev random error again, no re-run click in Travis for non owners
* Trigger annotation error with non-forward references
* Add docstrings for submodel schema
* tweaks and rewrite schema mapping table in python
* support complex defaults
* use str not int as dict keys
* Fix links to JSON Schema and OpenAPI
* Update sphinx from 1.7.8 to 1.8.1
* Update mypy from 0.620 to 0.630
* Update pytest-cov from 2.5.1 to 2.6.0
* Update pytest-isort from 0.2.0 to 0.2.1
Using `model.copy(deep=True)` will deep copy a module instance.
Making a deep copy is useful for models that have lists of dicts or
any other non-simple data structure to not accidentally modify data
between instances.
`model.copy()` behaviour is unchanged and will do a shallow copy of
the model instance.
fix#249
* Update sphinx from 1.7.5 to 1.7.6
* Update mypy from 0.610 to 0.620
* Update pycodestyle from 2.3.1 to 2.4.0
* Update pytest from 3.6.2 to 3.7.0
* uprev pytest
* reset pycodestyle
* Update sphinxcontrib-websupport from 1.0.1 to 1.1.0
* Update mypy from 0.600 to 0.610
* Update pycodestyle from 2.3.1 to 2.4.0
* Update pytest from 3.6.0 to 3.6.2
* revert pycodestyle agaaaain