Skip to content

setters

Commonly used hooks for on_setattr.

NO_OP = object() module-attribute

Sentinel for disabling class-wide on_setattr hooks for certain attributes.

Does not work in pipe or within lists.

.. versionadded:: 20.1.0

convert(instance, attrib, new_value)

Run attrib's converter -- if it has one -- on new_value and return the result.

.. versionadded:: 20.1.0

Source code in client/ayon_fusion/vendor/attr/setters.py
56
57
58
59
60
61
62
63
64
65
66
67
def convert(instance, attrib, new_value):
    """
    Run *attrib*'s converter -- if it has one --  on *new_value* and return the
    result.

    .. versionadded:: 20.1.0
    """
    c = attrib.converter
    if c:
        return c(new_value)

    return new_value

frozen(_, __, ___)

Prevent an attribute to be modified.

.. versionadded:: 20.1.0

Source code in client/ayon_fusion/vendor/attr/setters.py
29
30
31
32
33
34
35
def frozen(_, __, ___):
    """
    Prevent an attribute to be modified.

    .. versionadded:: 20.1.0
    """
    raise FrozenAttributeError()

pipe(*setters)

Run all setters and return the return value of the last one.

.. versionadded:: 20.1.0

Source code in client/ayon_fusion/vendor/attr/setters.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def pipe(*setters):
    """
    Run all *setters* and return the return value of the last one.

    .. versionadded:: 20.1.0
    """

    def wrapped_pipe(instance, attrib, new_value):
        rv = new_value

        for setter in setters:
            rv = setter(instance, attrib, rv)

        return rv

    return wrapped_pipe

validate(instance, attrib, new_value)

Run attrib's validator on new_value if it has one.

.. versionadded:: 20.1.0

Source code in client/ayon_fusion/vendor/attr/setters.py
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def validate(instance, attrib, new_value):
    """
    Run *attrib*'s validator on *new_value* if it has one.

    .. versionadded:: 20.1.0
    """
    if _config._run_validators is False:
        return new_value

    v = attrib.validator
    if not v:
        return new_value

    v(instance, attrib, new_value)

    return new_value