- Update error message for incorrect choices field #572 (begor)
- Avoid some deprecation warnings when using Python 3 #576 (jesuslosada)
- Fix EnumType enums with value=0 not working with use_values=True #594 (nikhilgupta345)
- Fix syntax warning over comparison of literals using is. #611 (tirkarthi)
- Add help text generation capability to Models #543 (MartinHowarth)
- Update documentation #578 (BobDu) #604 (BryanChan777) #605 (timgates42) #608 (dasubermanmind)
- Add test coverage for model validation inside Dict/List #588 (borgstrom)
- Added German translation #614 (hkage)
[BREAKING CHANGE]
- Drop Python 2.6 support #517 (rooterkyberian)
Other changes:
- Add TimedeltaType #540 (gabisurita)
- Allow to create Model fields dynamically #512 (lkraider)
- Allow ModelOptions to have extra parameters #449 (rmb938) #506 (ekampf)
- Accept callables as serialize roles #508 (lkraider) (jaysonsantos)
- Simplify PolyModelType.find_model for readability #537 (kstrauser)
- Enable PolyModelType recursive validation #535 (javiertejero)
- Documentation fixes #509 (Tuoris) #514 (tommyzli) #518 (rooterkyberian) #546 (harveyslash)
- Fix Model.init validation when partial is True #531 (lkraider)
- Minor number types refactor and mocking fixes #519 (rooterkyberian) #520 (rooterkyberian)
- Add ability to import models as strings #496 (jaysonsantos)
- Add EnumType #504 (ekamil)
- Dynamic models: Possible memory issues because of _subclasses #502 (mjrk)
- Add type hints to constructors of field type classes #488 (KonishchevDmitry)
- Regression: Do not call field validator if field has not been set #499 (cmonfort)
- Add possibility to translate strings and add initial pt_BR translations #495 (jaysonsantos) (lkraider)
- Support for raising DataError inside custom validate_fieldname methods. #441 (alexhayes)
- Add specialized SchematicsDeprecationWarning. (lkraider)
- DateTimeType to_native method should handle type errors gracefully. #491 (e271828-)
- Allow fields names to override the mapping-interface methods. #489 (toumorokoshi) (lkraider)
- [BREAKING CHANGE]
- Version 2.0 introduces many API changes, and it is not fully backwards-compatible with 1.x code.
- Add syntax highlighting to README examples #486 (gabisurita)
- Encode Unsafe data state in Model #484 (lkraider)
- Add MACAddressType #482 (aleksej-paschenko)
- Enhancing and addressing some issues around exceptions: #477 (toumorokoshi)
- Allow primitive and native types to be inspected #431 (chadrik)
- Atoms iterator performance improvement #476 (vovanbo)
- Fixes 453: Recursive import_loop with ListType #475 (lkraider)
- Schema API #466 (lkraider)
- Tweak code example to avoid sql injection #462 (Ian-Foote)
- Convert readthedocs links for their .org -> .io migration for hosted projects #454 (adamchainz)
- Support all non-string Iterables as choices (dev branch) #436 (di)
- When testing if a values is None or Undefined, use 'is'. #425 (chadrik)
- Restore v1 to_native behavior; simplify converter code #412 (bintoro)
- Change conversion rules for booleans #407 (bintoro)
- Test for Model.__init__ context passing to types #399 (sheilatron)
- Code normalization for Python 3 + general cleanup #391 (bintoro)
- Add support for arbitrary field metadata. #390 (chadrik)
- Introduce MixedType #380 (bintoro)
- Performance optimizations #378 (bintoro)
- Validation refactoring + exception redesign #374 (bintoro)
- Fix typo: serilaizataion --> serialization #373 (jeffwidman)
- Add support for undefined values #372 (bintoro)
- Serializable improvements #371 (bintoro)
- Unify import/export interface across all types #368 (bintoro)
- Correctly decode bytestrings in Python 3 #365 (bintoro)
- Fix NumberType.to_native() #364 (bintoro)
- Make sure field.validate() uses a native type #363 (bintoro)
- Don't validate ListType items twice #362 (bintoro)
- Collect field validators as bound methods #361 (bintoro)
- Propagate environment during recursive import/export/validation #359 (bintoro)
- DateTimeType & TimestampType major rewrite #358 (bintoro)
- Always export empty compound objects as {} / [] #351 (bintoro)
- export_loop cleanup #350 (bintoro)
- Fix FieldDescriptor.__delete__ to not touch model #349 (bintoro)
- Add validation method for latitude and longitude ranges in GeoPointType #347 (wraziens)
- Fix longitude values for GeoPointType mock and add tests #344 (wraziens)
- Add support for self-referential ModelType fields #335 (bintoro)
- avoid unnecessary code path through try/except #327 (scavpy)
- Get mock object for ModelType and ListType #306 (kaiix)
- [Maintenance] (#501) Dynamic models: Possible memory issues because of _subclasses
- [Bug] (#478) Fix dangerous performance issue with ModelConversionError in nested models
- [Bug] (befa202) Fix Unicode issue with DecimalType
- [Documentation] (41157a1) Documentation overhaul
- [Bug] (860d717) Fix import that was negatively affecting performance
- [Feature] (93b554f) Add DataObject to datastructures.py
- [Bug] (#236) Set None on a field that's a compound type should honour that semantics
- [Maintenance] (#348) Update requirements
- [Maintenance] (#346) Combining Requirements
- [Maintenance] (#342) Remove to_primitive() method from compound types
- [Bug] (#339) Basic number validation
- [Bug] (#336) Don't evaluate serializable when accessed through class
- [Bug] (#321) Do not compile regex
- [Maintenance] (#319) Remove mock from install_requires
- [Feature] (#303) fix ListType, validate_items adds to errors list just field name without...
- [Feature] (#304) Include Partial Data when Raising ModelConversionError
- [Feature] (#305) Updated domain verifications to fit to RFC/working standards
- [Feature] (#308) Grennady ordered validation
- [Feature] (#309) improves date_time_type error message for custom formats
- [Feature] (#310) accept optional 'Z' suffix for UTC date_time_type format
- [Feature] (#311) Remove commented lines from models.py
- [Feature] (#230) Message normalization
- [Example] (#286) Add schematics usage with Django
- [Feature] (#292) increase domain length to 10 for .holiday, .vacations
- [Feature] (#297) Support for fields order in serialized format
- [Feature] (#300) increase domain length to 32
- [Feature] (#284) Add missing requirement for six
- [Feature] (#283) Update error msgs to print out invalid values in base.py
- [Feature] (#281) Update Model.__eq__
- [Feature] (#267) Type choices should be list or tuple
- [Bug] (#280) Fix the circular import issue.
- [Feature] (#184 / 03b2fd9) Support for polymorphic model fields
- [Bug] (#233) Set field.owner_model recursively and honor ListType.field.serialize_when_none
- [Bug](#252) Fixed project URL
- [Feature] (#259) Give export loop to serializable when type has one
- [Feature] (#262) Make copies of inherited meta attributes when setting up a Model
- [Documentation] (#276) Improve the documentation of get_mock_object
- [Documentation] (#239) Fix typo with wording suggestion
- [Documentation] (#244) fix wrong reference in docs
- [Documentation] (#246) Using the correct function name in the docstring
- [Documentation] (#245) Making the docstring match actual parameter names
- [Feature] (#241) Py3k support
- [Feature] (#191) Updated import_data to avoid overwriting existing data. deserialize_mapping can now support partial and nested models.
- [Documentation] (#192) Document the creation of custom types
- [Feature] (#193) Add primitive types accepting values of any simple or compound primitive JSON type.
- [Bug] (#194) Change standard coerce_key function to unicode
- [Tests] (#196) Test fixes and cleanup
- [Feature] (#197) Giving context to serialization
- [Bug] (#198) Fixed typo in variable name in DateTimeType
- [Feature] (#200) Added the option to turn of strict conversion when creating a Model from a dict
- [Feature] (#212) Support exporting ModelType fields with subclassed model instances
- [Feature] (#214) Create mock objects using a class's fields as a template
- [Bug] (#215) PEP 8 FTW
- [Feature] (#216) Datastructures cleanup
- [Feature] (#217) Models cleanup pt 1
- [Feature] (#218) Models cleanup pt 2
- [Feature] (#219) Mongo cleanup
- [Feature] (#220) Temporal cleanup
- [Feature] (#221) Base cleanup
- [Feature] (#224) Exceptions cleanup
- [Feature] (#225) Validate cleanup
- [Feature] (#226) Serializable cleanup
- [Feature] (#227) Transforms cleanup
- [Feature] (#228) Compound cleanup
- [Feature] (#229) UUID cleanup
- [Feature] (#231) Booleans as numbers
- [Feature] (#178) Added deserialize_from flag to BaseType for alternate field names on import
- [Bug] (#186) Compoundtype support in ListTypes
- [Bug] (#181) Removed that stupid print statement!
- [Feature] (#182) Default roles system
- [Documentation] (#190) Typos
- [Bug] (#177) Removed __iter__ from ModelMeta
- [Documentation] (#188) Typos
- [Documentation] More improvements
- [Feature] (#147) Complete conversion over to py.test
- [Bug] (#176) Fixed bug preventing clean override of options class
- [Bug] (#174) Python 2.6 support
- [Documentation] New History file!
- [Documentation] Major improvements to documentation
- [Feature] Renamed
check_value
tovalidate_range
- [Feature] Changed
serialize
toto_native
- [Bug] (#155) NumberType number range validation bugfix