Commit Graph

39 Commits

Author SHA1 Message Date
Evghenii Goncearov 73015d2a72 Allow arbitrary types in model (#209)
* Allow arbitrary types in model

* Replaced ConfigError with RuntimeError

* Corrections of the ArbitraryTypeError exception class
2018-07-02 12:08:43 +01:00
Samuel Colvin 37364a05b9 implement JSON serialisation (#210)
* implement JSON serialisation, fix #133

* documenting JSON serialisation

* fix coverage
2018-06-28 18:21:45 +01:00
Samuel Colvin dd8d013e10 Schemas (#190)
* starting field and model schemas

* field.schema()

* sub-models working

* move default in Schema and tests

* adding schema

* tweak docs
2018-06-28 13:06:24 +01:00
Samuel Colvin f0f9de5f96 improve docs on error handling (#198)
* improve docs on error handling

* change ValidationError signature

* cleanup

* rename _raw_errors > raw_errors

* improve _display_error_type_and_ctx
2018-06-11 13:06:50 +01:00
Samuel Colvin 2687fae6e9 copy defaults to values, fix #154 (#192) 2018-06-06 16:36:40 +01:00
Samuel Colvin 31f5f9c267 Cleanup 183 (#187)
* fix coverage

* use change_exception

* simplifying get_exc_type

* improve to_snake_case

* improve change_exception

* remove to_snake_case completely

* correct comment
2018-06-02 18:08:07 +01:00
Nikita Grishko 4f4e22ef47 Error context and message (#183)
* POC of error context and message

* Move type errors to the `errors.py` module; Change errors interface a bit

* Rename `.as_dict()` to `.dict()`

* Fix `PydanticErrorMixin` constructor

* Rename `exceptions.py` to `error_wrappers.py`

* Do not include nullable `ctx`

* Fix tests

* Added `int_validator`; Added `IntegerError`

* Added `float_validator`; Added `FloatError`

* Get rid of `__mro__` in prior of `exc.code`

* Removed `min_number_size` and `max_number_size` from config (#174)

* Added `NumberMinSizeError` and `NumberMaxSizeError`

* Added `NoneIsNotAllowedError`

* Added `EnumError`

* Added `path_validator`; Added `PathError`

* Added `DictError`

* Added `ListError`

* Added `TupleError`

* Added `SetError`

* Added `datetime` related errors

* Added `bytes` and `str` related errors

* Added `SequenceError`

* Improved code coverage

* Display error context in string representation of validation error

* Redefine error message templates using config

* Review fixes

* Updated changelog
2018-05-31 14:35:38 +01:00
Ben Demaree 62d39d90a7 Make model dump/load symmetric for aliased fields (#160)
* 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
2018-05-24 16:46:03 +01:00
Nikita Grishko 31683f8dc4 Errors format (#179)
* 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
2018-05-23 14:50:04 +01:00
Samuel Colvin 7a77d06058 add use_enum_values to config (#127)
* add `use_enum_values` to config

* docs and history
2018-02-06 18:23:41 +00:00
Samuel Colvin e3444ba7c2 remove .values() from model 2018-02-06 14:40:13 +00:00
Samuel Colvin 91f962e533 replace values() with dict() (#99)
* replace values(), with dict(), fix #98

* add history and test
2017-11-07 13:28:42 +00:00
petroswork fe8031703b Perform validation on assignment to attribute (#94)
* 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
2017-10-31 20:04:40 +00:00
Samuel Colvin b10566841e Less verbose errors (#90)
* make errors less verbose, fix #71

* remove track too if null

* update docs

* better dict error, fix #74

* add history
2017-10-23 20:06:48 +01:00
Samuel Colvin 5efa54d80d annotation only fields first 2017-07-08 19:01:38 +01:00
Samuel Colvin 044fd42f4f parser methods (#58), fix #39
* 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
2017-07-08 18:39:24 +01:00
Samuel Colvin 378c96888e simplifying errors 2017-07-08 18:22:57 +01:00
Samuel Colvin 98d5657406 use unicode ellipsis in truncate 2017-07-08 15:00:35 +01:00
Samuel Colvin 6923e5e677 models allowing immutability (#44)
* working on models allowing immutability, ref #38

* up complexity

* use noqa c901

* fixing fields with new processor

* allow_mutation config and tests

* uprev, history and docs

* fix typos
2017-06-13 09:52:47 +01:00
Samuel Colvin ff3fa95eb0 convert values to a function, fix #28 (#43) 2017-06-07 22:40:09 +01:00
Samuel Colvin 691b947576 add pretty print for models (#42) 2017-06-07 20:34:13 +01:00
Samuel Colvin c81ec9aeec add support for annotation only fields (#41)
* add support for annotation only fields, fix #34

* adding tests with mypy

* adding docs for mypy usage

* adding mypy failure test

* adding alias tests

* tweak mypy tests
2017-06-07 19:56:46 +01:00
Samuel Colvin ea88afb212 allow aliases 2017-05-31 13:41:53 +01:00
Samuel Colvin 9ecae91dad allow Any, fix #21 2017-05-31 12:07:29 +01:00
Samuel Colvin 94402d0627 allow set validation, fix #17 2017-05-31 11:59:41 +01:00
Samuel Colvin 1eca45ae11 implementing allow_extra (#26)
* implementing allow_extra

* tests for allow_extra
2017-05-31 11:19:25 +01:00
Samuel Colvin 35add310cc improve error display 2017-05-10 12:43:29 +01:00
Samuel Colvin ddb8e96401 allow tuples, also infer types for falsy, fix #11 2017-05-10 11:17:07 +01:00
Samuel Colvin 24b9fdcd86 removing 'validator' from exception message 2017-05-08 17:43:39 +01:00
Samuel Colvin d6edca642a allow None as value in None fields 2017-05-08 12:34:20 +01:00
Samuel Colvin 017d3f03be BaseModel equality 2017-05-08 11:59:49 +01:00
Samuel Colvin 3673c11d53 improving coverage 2017-05-08 11:54:43 +01:00
Samuel Colvin 63197fc34b cleaning up error display, enabling list parsing 2017-05-06 14:10:40 +01:00
Samuel Colvin 0214be13a5 proper support for unions 2017-05-06 00:10:48 +01:00
Samuel Colvin 7950e7f909 enum support and better type check 2017-05-05 21:10:49 +01:00
Samuel Colvin e2d4460429 add 'allow_extra' checks 2017-05-05 20:26:14 +01:00
Samuel Colvin 7254ddc5e6 improve test coverage 2017-05-05 18:05:42 +01:00
Samuel Colvin c333ba755c best support resolution of 2017-05-05 15:13:15 +01:00
Samuel Colvin 2cc7531378 adding dsn tests 2017-05-05 14:22:15 +01:00