Skip to content

Releases: izxxr/oblate

v1.2.1

14 Feb 16:12
Compare
Choose a tag to compare

The version 1.2.1 has been released for Oblate, that came with one major bug fix that caused the oblate.fields package to be missing when installing the library.

There are no other changes for this release but more features are planned and will be coming soon. Stay tuned!

https://oblate.readthedocs.io

v1.2.0

07 Nov 17:28
Compare
Choose a tag to compare

The version 1.2.0 is live on PyPi!

It has been two months since the last release because I had a lot to do and couldn't find time for Oblate but hopefully over the course of next few weeks, this library will see more release with more important features.

This release comes with a small change set. Some important features such as read only schemas and fields, data preprocessing and most notably, separated support for validating standard Python types (previously, it was only possible through the TypeExpr field). Apart from that, this release also fixes a critical bug that caused SyntaxError on Python versions below 3.11. Some other minor improvements have been implemented.

See the full changelog here: https://oblate.readthedocs.io/en/main/changelog.html#v1-2-0

Stay tuned for more in near future!

v1.1.0

13 Sep 14:28
Compare
Choose a tag to compare

Overview

This release mainly focuses on the introduction of type validation features. Oblate now provides type validation of basic type expressions from the Python's typing module. These type expressions are implemented into various data structures and other fields that have been added alongside validating raw value using a given type expression.

The new feature set for this release is relatively larger compared to general improvements and bug fixes. The next minor release will focus on these aspects.

New features

  • Add fields.List for accepting list structure.
  • Add fields.Set for accepting set structures.
  • Add fields.Dict and fields.TypedDict for handling dictionaries.
  • Add fields.TypeExpr for validating types using simple type expressions.
  • Add fields.Any field as a no validation field.
  • Add fields.Literal field to accept pre-defined literal values.
  • Add fields.Union for basic union type validation.
  • Add validate.Range validator for validating integer ranges.
  • Add validate.Length validator for validating length of sized types.
  • Add validate.Regex validator for validating values using regular expression.
  • Add validate.Exclude validator for disallowing/excluding specific values.
  • Add validate.Or validator for OR'ing the result of multiple validators.
  • Add Schema.__schema_post_init__ method as a post initialization hook.
  • Add ErrorContext.metadata for storing extra error information.
  • Add GlobalConfig.warn_unsupported_types to control behaviour on using unsupported types.
  • Add Field.name and Field.schema properties.
  • Add init_kwargs parameter in fields.Object to support passing initialization arguments.

Improvements

  • :fields.Object field now supports passing Schema instances directly instead of raw data.
  • fields.Field.format_error no longer requires super call and default error messages are resolved automatically.

v1.0.0

03 Sep 12:02
Compare
Choose a tag to compare

The first stable release of Oblate.

This brings a complete rewrite of the library. This version is incompatible with previous ones. For an overview of changes, please see #3 pull request.

v0.2.0

18 Jul 09:39
Compare
Choose a tag to compare

New features

  • Add support for partial schemas
    • Add fields.Partial field.
    • Add Schema.is_partial helper method.
  • Add ValidationError.is_field_error helper to check whether exception relates to a field.
  • Add Schema.after_init_hook method that gets called when schema is finished initializing.
  • Add load_key and dump_key parameters to fields.Field to control the field names during serialization/deserialization of data.
  • Add ValidationError.state to allow storing state to an error that can later be accessed.
  • Add include and exclude parameters to Schema.dump.
  • Add raw parameter to Field.validate and Field.add_validator to validate raw value.

Improvements

  • ~fields.Object fields now support raw data serialization upon setting after initialization.
  • Schema and all fields now have __slots__ defined for performance sake.
  • User defined validators are now ran after field value_* methods by default. Such that, validators now take serialized value instead of raw one. For previous behaviour, raw parameter must be used.

Bug fixes

  • Fix Schema.dump returning empty dictionary.
  • Fix fields returning improper values when initializing multiple schemas.
  • Fix unable to set None on nullable fields after initialization.
  • Fix field getting the new value using the setter even when the validations fail.

Full Changelog: 0.1.0...0.2.0

v0.1.0

15 Jul 09:03
Compare
Choose a tag to compare
  • Initial release