Preconditions

Base precondition

class hammurabi.preconditions.base.Precondition(name: Optional[str] = None, param: Optional[Any] = None)[source]

This class which describes the bare minimum and helper functions for Preconditions. A precondition defines what and how should be checked/validated before executing a Rule. Since preconditions are special rules, all the functions available what can be used for hammurabi.rules.base.AbstractRule.

As said, preconditions are special from different angles. While this is not true for Rules, Preconditions will always have a name, hence giving a name to a Precondition is not necessary. In case no name given to a precondition, the name will be the name of the class and ” precondition” suffix.

Example usage:

>>> import logging
>>> from typing import Optional
>>> from pathlib import Path
>>> from hammurabi import Precondition
>>>
>>> class IsFileExists(Precondition):
>>>     def __init__(self, path: Optional[Path] = None, **kwargs):
>>>         super().__init__(None, path, **kwargs)
>>>
>>>     def task(self) -> bool:
>>>         return self.param and self.param.exists()
Parameters
  • name (Optional[str]) – Name of the rule which will be used for printing

  • param (Any) – Input parameter of the rule will be used as self.param