carpet_concentrations.attrs_utils

Tools for helping with attrs, particularly validators

add_attrs_context

add_attrs_context(original)[source]

Decorate function with a try...except to add the attrs context

This means that the information about what attribute was being set and what value it was passed is also shown to the user

Parameters

original – Function to decorate

Returns

Decorated function

Notes

Only works with Python 3.11 and above. For other Python versions, the raw error is simply shown instead

make_attrs_validator_compatible_single_input

make_attrs_validator_compatible_single_input(func_to_wrap)[source]

Create a function that is compatible with validation via attrs.field()

This assumes that the function you’re wrapping only takes a single input.

Parameters

func_to_wrap – Function to wrap

Returns

Wrapped function, which can be used as a validator with attrs.field()

make_attrs_validator_compatible_value_instance_input

make_attrs_validator_compatible_value_instance_input(func_to_wrap)[source]

Create a function that is compatible with validation via attrs.field()

This assumes that the function you’re wrapping takes the instance and the values as inputs.

Parameters

func_to_wrap – Function to wrap

Returns

Wrapped function, which can be used as a validator with attrs.field()