Skip to content

Releases: smarie/python-valid8

5.1.2 - Bugfix with custom error formatting

29 Jan 11:32
Compare
Choose a tag to compare

Fixed issue: custom help messages in ValidationError using several variables were not rendering to string correctly and instead were displaying Error while formatting the help message. Fixes #58

See documentation page for details.

5.1.1 - packaging improvements

24 Apr 16:55
Compare
Choose a tag to compare
  • packaging improvements: set the "universal wheel" flag to 1, and cleaned up the setup.py. In particular removed dependency to six for setup. Fixes #57

See documentation page for details.

5.1.0 - PEP561 compliance

22 Jan 10:54
Compare
Choose a tag to compare
  • Package was made PEP561 compatible. Fixed #55

  • Improved type hints for decorators so that they do not make the decorated item loose its type hints. Fixed #56

  • Removed usage of @with_signature in favour of stub file in the entry_points_annotations.py. Fixed #50

See documentation page for details.

5.0.6 - Minor improvements

17 Dec 17:25
Compare
Choose a tag to compare

Improved getfullargspec so as to cover more builtins in python 3.

See documentation page for details.

5.0.5 - bugfix - support for numpy True

02 Dec 22:47
Compare
Choose a tag to compare

Numpy True can be used (again) as a success condition in validation functions. Fixed #53

See documentation page for details.

5.0.4 - `pyproject.toml`

18 Nov 11:28
Compare
Choose a tag to compare

Added pyproject.toml.

See documentation page for details.

5.0.3 - bug fixes

03 Oct 14:52
Compare
Choose a tag to compare

Fixed bug with mini-lambda < 2.2. Fixed #48.

Fixed bug in is_in when the reference object was a non-set container. Fixed #47.

See documentation page for details.

5.0.2 - Bug fix

24 Sep 16:12
Compare
Choose a tag to compare

Fixed regression with non-able detection. Fixed #46.

See documentation page for details.

5.0.1 - More betterness!

24 Sep 15:38
Compare
Choose a tag to compare

Better syntax for *validation_func:

  • you can provide a tuple (<callable>, <help_msg>, <failure_type>) to define a single failure raiser (before only (<callable>, <help_msg>) or (<callable>, <failure_type>) were supported). Fixes #33

  • you can provide a dict-like to define several validation functions, where the key and values can contain <callable>, <help_msg>, <failure_type>. For example {<help_msg>: (<callable>, <failure_type>)} is supported. Fixes #40.

  • nested lists are however not supported anymore

  • the <callable> can now either have signature f(v), f(*args), f(*args, **ctx) or f(v, **ctx), where **ctx can be used to receive contextual information. Fixes #39

validation_lib should be imported explicitly

  • symbols from valid8.validation_lib are not imported automatically at package root anymore. You need to import them from valid8.validation_lib. This speeds up the library's import especially when you do not use the built-in functions. So instead of from valid8 import is_even you should now do from valid8.validation_lib import is_even (or from valid8 import validation_lib as vlib + vlib.is_even). Fixed #35.

Major exceptions refactoring

  • the main validation function in a Validator is now always a failure raiser, even if a single callable was provided. This major design choice made many simplifications possible in particular the string representation of exceptions (below). Fixes #44

  • The string representation of ValidationError and ValidationFailure was greatly improved. In particular ValidationError does not display the name and outcome of the validation function anymore (since it is always a failure, see above), and ValidationFailure now has a "compact" string representation option in a new to_str() method, used in composition messages to simplify the result. Composition failures are also represented in a more compact way.

  • failure_raiser moved to base submodule with its associated type hints ValidationCallable and ValidationCallableOrLambda. It now only accepts a single validation function argument ; this is more intuitive and separates concerns with the other higher-level functions. If you used it with several inputs in the past, you can use and_(...) instead, it will be strictly equivalent to the old behaviour.

  • new @as_failure_raiser decorator to create a failure raiser by decorating an existing validation function. Fixes #36.

  • WrappingFailure does not exist anymore, it was merged with Failure class for architecture simplification. So there are two main exception classes in valid8 now: ValidationError and ValidationFailure. When the validation callable does not raise an instance of ValidationFailure itself, the Invalid subclass is used. Fixes #41

Misc

  • assert_subclass_of now exposed at root level (for consistency with assert_instance_of, to be used in the context manager entry point)

  • Added __version__ attribute to comply with PEP396, following https://smarie.github.io/python-getversion/#package-versioning-best-practices. Fixes #38.

  • result_is_success is now inlined and does not use a set expression anymore. Fixed #37

  • Improved all examples of Failure in the validation lib to show how a better practice where the help_msg stays at class level but can be overridden failure instance by failure instance.

  • Removed length_between open_left/right arguments as it does not make sense, to continue fixing #29

  • new subpackage utils where all util submodules now live

  • New submodule common_syntax where all the logic to handle the *validation_func input syntax resides

  • some type hints renamed for clarity:

    • before: ValidationFuncs / ValidationFunc / CallableType / Callable
    • now: OneOrSeveralVFDefinitions / ValidationFuncDefinition / ValidationCallableOrLamba / ValidationCallable.
    • ValidationFuncs still exists as a short alias for OneOrSeveralVFDefinitions.
  • fixed a few type hints too: tuples with unlimited length were not declared correctly. Now using the ellipsis Tuple[<type>, ...].

See documentation page for details.

4.2.1 - Minor error message fix

09 Sep 13:06
Compare
Choose a tag to compare

Error messages improvements: removed the brackets in Wrong value: [...] for the Failure details. Fixed #32.

See documentation page for details.