Samuel Colvin
b5fdc0db1e
dataclass inheritance, fix #293 ( #299 )
2018-11-15 12:28:03 +00:00
Samuel Colvin
ef140056fa
cast datetime to date in parse_date, ( #298 )
...
* cast datetime to date in parse_date, fix #295
* tweak, update history
2018-11-15 12:21:15 +00:00
pyup.io bot
9d74ff9394
Scheduled monthly dependency update for November ( #289 )
...
* Update mypy from 0.630 to 0.641
* Update pytest from 3.8.1 to 3.9.3
2018-11-15 12:01:18 +00:00
Samuel Colvin
64ada930fc
aliases, fix #275 , replace #282 ( #286 )
2018-11-15 12:01:05 +00:00
Samuel Colvin
15850a43c5
moving to black ( #287 )
...
* moving to black
* put back flake8
* remove isort option
* putting back isort
* uprev pycodestyle
* remove black from docs/examples
* tweak parse.py
2018-11-15 11:30:07 +00:00
pyup.io bot
cdcf611f41
Scheduled monthly dependency update for October ( #271 )
...
* 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
2018-10-02 17:34:46 +01:00
Samuel Colvin
f3a278bb8d
Dataclasses ( #269 )
...
* pydantic.dataclasses.dataclass decorator
* add dataclasses to requirnment.txt
* reimplement dataclasses
* fix linting, fix coverage
* docs
2018-10-01 09:48:28 +01:00
Nicholas Hyatt
10414a7a04
use type() in int validator ( #264 )
...
* use type() in int validator to avoid returning a bool since bool is and instance of int
* add note to HISTORY.rst
* add tests & add username and PR # to HISTORY.rst
* use not ininstance(v, bool) to allow int subclassing
2018-09-21 10:37:16 +01:00
Stefan Gangefors
c32ce342c9
Add support for deep copying of models ( #261 )
...
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
2018-09-10 11:35:58 -04:00
pyup.io bot
9f874a7e97
Scheduled monthly dependency update for September ( #256 )
...
* Update sphinx from 1.7.6 to 1.7.8
* Update attrs from 18.1.0 to 18.2.0
* Update pytest from 3.7.2 to 3.7.4
2018-09-10 05:46:05 -04:00
Samuel Colvin
f46dc0c56f
timedelta json encoding ( #247 )
...
* timedelta json encoding, altnative to #220
* history and tests
* fix comments and tests
* docs for json_encoders
* tests plain timedelta object parsing
* uprev
* tweak docs
2018-08-25 17:06:32 +01:00
pyup.io bot
f32ecf2258
Scheduled monthly dependency update for August ( #240 )
...
* 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
2018-08-20 12:03:54 +01:00
Nikita Grishko
aad175a25f
add `UrlStr and urlstr` types #236 ( #246 )
...
fix #236
* add ``UrlStr`` and ``urlstr`` types #236
* review fixes
2018-08-20 10:14:46 +01:00
Alban Diquet
8885503ccb
Raise a NameError if a field name shadows a BaseModel attribute ( #243 )
...
* 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
2018-08-05 17:48:40 +01:00
Nikita Grishko
d293773370
fix schema generation for fields defined using `typing.Any` #237 ( #238 )
...
* fix schema generation for fields defined using ``typing.Any`` #237
* review fixes
2018-07-31 20:32:00 +02:00
Samuel Colvin
e0d8d960f3
improving schema ( #232 )
...
* improving schema, fix #213
* tweask and history
2018-07-31 10:55:02 +02:00
Samuel Colvin
1dc294015d
cleaning up _populate_sub_fields, support tuples ( #227 )
...
* cleaning up _populate_sub_fields
* support tuples, fix #12
* fix, history and docs
* rename _create_sub_type
2018-07-10 18:45:15 +01:00
Evghenii Goncearov
c31b8d6719
Json type ( #214 )
...
* Json type
* Sort imports
* one more unsorted import
* Changed the way Json type is defined
* Fix Function is too complex (C901) warning
* Fixed remarks
* Fix additional remarks
* Additional test
fix #195
2018-07-10 15:38:28 +01:00
Nikita Grishko
489a1d32b1
add `by_alias argument in .dict() and .json()` model methods ( #222 )
...
* add ``by_alias`` argument in ``.dict()`` and ``.json()`` model methods #205
* review fixes
fix #205
2018-07-07 15:06:55 +01:00
Samuel Colvin
f6643d60f9
add validate_model ( #224 )
...
* add validate_model, fix #221
* errors None from validate_model if ok
2018-07-05 14:42:40 +01:00
Samuel Colvin
c0413c8896
list, set, tuple validation ( #225 )
...
* list, set, tuple validation, fix #202
* update HISTORY.rst
2018-07-04 16:32:42 +01:00
Nikita Grishko
c002c490ae
add `NewType` support #115 ( #223 )
...
* add ``NewType`` support #115
* updated history
fix #115
2018-07-04 16:11:55 +01:00
pyup.io bot
9f83ca48b9
Scheduled monthly dependency update for July ( #217 )
...
* 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
2018-07-02 12:12:01 +01:00
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