Commit Graph

137 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
Nikita Grishko f8c1a350f4 add `FilePath and DirectoryPath` types #10 (#208)
* add ``FilePath`` and ``DirectoryPath`` types #10

* review fixes

* improve tests

* simplify errors
2018-06-28 11:04:00 +01:00
clip d2745065f5 fix typo (#207)
* fix typo

* fix test
2018-06-24 17:52:56 +01:00
Samuel Colvin 9338c413c7 remove msgpack (#201)
* remove msgpack

* update history
2018-06-18 12:20:10 +01:00
Nikita Grishko 4f19d2b94a Strict validation of list, set and tuple (#86) (#200)
* Strict validation of `list`, `set` and `tuple` (#86)

* review fixes
2018-06-13 19:11:01 +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
Jasper Schulz 3ef595556c Added le and ge bounds to constrained numerics. (#194)
* Added `le` and `ge` bounds to constrained numerics.

* Addressed comments.

* Addressed @Gr1N comments.

* Removed comment.
2018-06-08 10:32:26 +01:00
Samuel Colvin e57f8c4725 correct and complete #188 (#193) 2018-06-07 09:19:02 +01:00
Samuel Colvin 2687fae6e9 copy defaults to values, fix #154 (#192) 2018-06-06 16:36:40 +01:00
Samuel Colvin 9021d94e31 validator exception typo, fix #150 (#191) 2018-06-04 11:11:09 +01:00
Samuel Colvin 95aba150b2 gt, lt, (#188)
* gt, lt, fix #176

* change test names
2018-06-02 20:53:10 +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
pyup.io bot cbfbe6b11c Scheduled monthly dependency update for June (#186)
* Update sphinx from 1.7.4 to 1.7.5

* Update attrs from 17.4.0 to 18.1.0

* Update pycodestyle from 2.3.1 to 2.4.0

* Update pyflakes from 1.6.0 to 2.0.0

* Update pytest from 3.5.1 to 3.6.0

* Update pytest-isort from 0.1.0 to 0.2.0

* Update pytest-mock from 1.9.0 to 1.10.0

* revert pycodestyle, yawwwwn
2018-06-02 15:35:52 +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 3eec750640 allow custom get_field_config (#165)
* allow custom get_field_config, fix #159

* improving config inheritance
2018-05-10 12:12:37 +01:00
Nikita Grishko 99d7eafa61 add `Decimal, ConstrainedDecimal and condecimal` types #170 (#175) 2018-05-10 12:11:45 +01:00
pyup.io bot f4207281a0 Scheduled monthly dependency update for May (#168)
* Update sphinx from 1.7.2 to 1.7.4

* Update mypy from 0.580 to 0.590

* Update pycodestyle from 2.3.1 to 2.4.0

* Update pytest from 3.5.0 to 3.5.1

* Update pytest-mock from 1.7.1 to 1.9.0

* correct pycodestyle and mypy

* update history
2018-05-05 14:55:55 +01:00
Nikita Grishko 0ee1ffa52a fix type annotations for exotic types; re-use type validators in exotic types (#171) 2018-05-05 14:08:23 +01:00
Nikita Grishko b4d3a2d544 add `UUID1, UUID3, UUID4 and UUID5` types (#167) (#167) 2018-05-02 22:49:55 +01:00
Nikita Grishko dc07277017 add `ConstrainedFloat, confloat, PositiveFloat and NegativeFloat` types #166 (#166) 2018-04-28 18:40:28 +01:00
Nikita Grishko f88e5925b5 add strip_whitespace option for ConstrainedStr and constr (#163) 2018-04-25 02:29:25 +07:00
Samuel Colvin 4c4d4c1551 fix attrs requirement (#158) 2018-04-16 19:26:26 +01:00
pyup.io bot 5da36280ae Scheduled monthly dependency update for April (#146)
* Update msgpack-python from 0.5.5 to 0.5.6

* Update mypy from 0.560 to 0.580
2018-04-08 13:10:35 +01:00
YannLuo 778a33fac9 fix parse error of parse_date() and parse_datetime() when input is 0 (#144) 2018-03-26 11:48:53 +01:00
Samuel Colvin afb90b91e8 implement email validator (#142)
* implement email validator, replace #112

* coverage and cleanup

* update docs
2018-03-25 18:09:37 +01:00
Samuel Colvin a3a9b14531 validate attributes of parent models (#141)
* validate attributes of parent models, fix #137

* add history
2018-03-25 17:46:55 +01:00
Samuel Colvin a8096959e2 check for invalid validators (#140)
* check for invalid validators

* documentation and history
2018-03-25 16:41:48 +01:00
Samuel Colvin 76db984cc1 prepare for new version update history 2018-03-25 15:54:18 +01:00
pyup.io bot 27887c6e99 Scheduled monthly dependency update for March (#134)
* Update sphinx from 1.6.6 to 1.7.1

* Update msgpack-python from 0.5.1 to 0.5.5

* Update coverage from 4.4.2 to 4.5.1

* Update isort from 4.3.0 to 4.3.4

* Update pytest from 3.4.0 to 3.4.1

* Update pytest-mock from 1.6.3 to 1.7.1

* correcting runtime for netlify
2018-03-02 13:29:19 +00:00
Samuel Colvin 03838d9220 stop create_model modifying its base 2018-02-07 17:32:20 +00:00
Samuel Colvin 89201f08b0 add wildcard validators (#128)
* add wildcard validators

* update docs and history

* more tests

* history links
2018-02-06 19:32:30 +00: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 eeb5698e75 funky test with create_model 2018-02-06 17:01:55 +00:00
Samuel Colvin 2b8216ab72 remove use of ordered dict (#126)
* remove use of ordered dict

* add history
2018-02-06 15:45:17 +00:00
Samuel Colvin e3444ba7c2 remove .values() from model 2018-02-06 14:40:13 +00:00
Samuel Colvin c18b2bc4fc rename config -> __config__ on a model 2018-02-06 14:39:38 +00:00
Samuel Colvin f9cf6b42f4 Create model method (#125)
* adding create_model method

* adding  method

* docs and tweaks

* prevent config and base together

* tweak docs
2018-02-06 14:29:56 +00:00
Josep Cugat 06008146fe Subclass abcmeta (#123)
* Added compatibility with python's ABC

* Added documentation

* Added link
2018-02-06 13:56:45 +00:00
Samuel Colvin f0fda8c2a4 upgrade pytest-sugar 2018-02-06 13:50:49 +00:00
Samuel Colvin 423137cefe allow pything dates and times (#122)
* allow pything dates and times

* update history
2018-02-01 17:20:06 +00:00
pyup.io bot c17abac2f8 Scheduled monthly dependency update for February (#121)
* Update sphinx from 1.6.5 to 1.6.6

* Update msgpack-python from 0.4.8 to 0.5.1

* Update isort from 4.2.15 to 4.3.0

* Update pytest from 3.3.1 to 3.4.0
2018-02-01 17:05:55 +00:00
pyup.io bot 960a025110 Scheduled monthly dependency update for January (#111)
* Update mypy from 0.550 to 0.560

* Update pytest from 3.3.0 to 3.3.1
2018-01-03 14:29:53 +00:00
pyup.io bot d9acb85e69 Scheduled monthly dependency update for December (#108)
* Update coverage from 4.4.1 to 4.4.2

* Update mypy from 0.540 to 0.550

* Update pytest from 3.2.3 to 3.3.0
2017-12-08 10:28:23 +00:00
Samuel Colvin bc931ba790 safe check for complex models with env settings 2017-11-13 15:12:23 +00:00
Samuel Colvin 7050654062 better tests for validator checks 2017-11-08 15:39:44 +00:00
Samuel Colvin ed2b3f2afd errors for invalid validator use 2017-11-08 15:36:19 +00:00