Source code for wield.declarative
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: © 2021 Massachusetts Institute of Technology.
# SPDX-FileCopyrightText: © 2021 Lee McCuller <mcculler@caltech.edu>
# NOTICE: authors should document their contributions in concisely in NOTICE
# with details inline in source files, comments, and docstrings.
"""
"""
from .properties import (
HasDeclaritiveAttributes,
mproperty,
dproperty,
mproperty_fns,
dproperty_fns,
mproperty_plain,
dproperty_plain,
mfunction,
PropertyTransforming,
PropertyAttributeError,
group_dproperty,
group_mproperty,
mproperty_adv,
dproperty_adv,
mproperty_adv_group,
dproperty_adv_group,
)
# a test of the documentation
from .properties import dproperty as dproperty_renamed
from os.path import split
from .callbacks import (
callbackmethod,
Callback,
RelayBool,
RelayBoolAny,
RelayBoolAll,
RelayBoolNotAny,
RelayBoolNotAll,
RelayBoolNot,
RelayValue,
RelayValueRejected,
RelayValueCoerced,
min_max_validator,
min_max_validator_int,
)
from .overridable_object import (
OverridableObject,
)
from .metaclass import (
AutodecorateMeta,
Autodecorate,
AttrExpandingObject,
GetSetAttrExpandingObject,
)
from .utilities.unique import (
NOARG,
unique_generator,
)
from ._version import (
version,
__version__,
)
[docs]
def first_non_none(*args):
for a in args:
if a is not None:
return a
return None
FNN = first_non_none
PropertyAttributeError.__module__ == __name__