Skip to content

Latest commit

 

History

History
85 lines (51 loc) · 3.73 KB

CHANGELOG.md

File metadata and controls

85 lines (51 loc) · 3.73 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.9.0] - December, 2024

Features

  • Add a new configuration setting for rule execution: rule_activation_mode (#38).

Maintenance

  • Compatibility with Python 3.13.
  • Use true Pydantic V2 (or Pydantic V1) models (DeprecationWarning added about Pydantic V1).

Important

Arta + Pydantic V1 + Python 3.13 is not supported because Pydantic V1 is not supported for Python > 3.12 (issue 9663).

Documentation

  • New pages:
    • Use your business objects
    • Rule activation mode

Breaking changes

  • Because of using StringConstraints (w/ Pydantic V2) rather than constr(), we can't use plain YES or NO (YAML booleans) as rule ids anymore. Use "YES" or "NO" instead in your YAML file.

[0.8.1] - September, 2024

Fixes

  • Simple condition: an error occurs (#31) when the field is of type camelCase or PascalCase (e.g., input.streetNumber, input.StreetNumber).

Documentation

[0.8.0] - July, 2024

Features

  • Add a new parameter config_dict in the RulesEngine's constructor. It can be used when you have already loaded the YAML configuration in a dictionary and want to use it straightforward.
  • Add a new parameter ignored_rules in the apply_rules() method. It can be used to easily disable a rule by its id.
  • Split a rule set in two (or more) files (keep the rules organized by their file names [alphabetically sorted]).

Fixes

  • Simple condition: an error occurs when the right operand is a uppercase string (e.g., input.text=="LABEL").

Refactoring

  • Function sanitize_regex() is converted to an instance method get_sanitized_id() of BaseCondition class.

[0.7.1] - June, 2024

Features

Fixes

  • You can now use whitespaces in a string within a simple condition (e.g., input.text=="super hero") (#23).

[0.7.0b*] - April, 2024

Beta release

Features

  • Configure your rules in a YAML file or use a straightforward python dictionary.
  • Use "standard conditions" (YAML defined conditions) for flexibility.
  • Use "simple conditions" (one-liner conditions) for simplicity (beta feature).
  • Implement your own "custom conditions" (python classes) for adaptability.
  • Define your own parameter's parsing strategy (raise, ignore, default value).
  • Use many rule sets as you need.