PathAttribute

class dtaianomaly.type_validation.PathAttribute(must_exist: bool = True)[source]

Validator for paths.

A valid path can be either a string or a pathlib.Path object, and the path must exist in the file system.

Parameters:
must_existbool, default=True

Whether the path must exist.

Examples

>>> from pathlib import Path
>>> from dtaianomaly.type_validation import PathAttribute
>>> a_path = PathAttribute()
>>> a_path.raise_error_if_invalid(".", "my_attribute", "MyClass")  # No error
>>> a_path.raise_error_if_invalid(Path("."), "my_attribute", "MyClass")  # No error
>>> a_path.raise_error_if_invalid(123, "my_attribute", "MyClass")
Traceback (most recent call last):
    ...
TypeError: Attribute 'my_attribute' in class 'MyClass' must be of type str or pathlib.Path, but received '123' of type <class 'int'>!
>>> a_path.raise_error_if_invalid("nonexistent_file.txt", "my_attribute", "MyClass")
Traceback (most recent call last):
    ...
ValueError: Attribute 'my_attribute' in class 'MyClass' must be an existing path, but received 'nonexistent_file.txt'!
raise_error_if_invalid(value, name: str, class_name: str) None

Raise an error if the given value is invalid.

Check if the type and the exact value are permitted, according to the rules of this attribute validation. If either the type or the value is invalid, an error is raised accordingly. Otherwise, nothing happens.

Parameters:
valueany

The value to verify.

namestr

The name of the attribute that is being checked. Used for generating clear error messages, if needed.

class_namestr

The name of the class to which the attribute belongs. Used for generating clear error messages, if needed.

Raises:
TypeError

If the type of the given value is invalid according to the rules of this BaseAttributeValidation.

ValueError

If the value of the given value is invalid according to the rules of this BaseAttributeValidation.