Source code for traits.constants
# (C) Copyright 2005-2022 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
from enum import IntEnum
import traits.ctraits
[docs]class TraitKind(IntEnum):
""" These determine the getters and setters used by the cTrait instance.
"""
#: A standard trait (validates and notifies).
trait = 0
#: A standard Python attribute (no validation or notification).
#: This sets values into the object dict, so is not suitable for use with
#: standard Python descriptors - generally you want ``generic``.
python = 1
#: An event trait (can't read value, only assign value).
event = 2
#: A delegated trait.
delegate = 3
#: A trait property.
property = 4
#: A trait that can neither be assigned or read.
disallow = 5
#: A trait that can be assigned once, and after that only read (no
#: validation or notification).
read_only = 6
#: A trait whose value is constant (can only be read).
constant = 7
#: A standard Python attribute or descriptor (no validation or
#: notification).
generic = 8
[docs]class ValidateTrait(IntEnum):
""" These are indices into the ctraits.c validate_handlers array. """
#: A type check.
type = 0
#: An instance check.
instance = 1
#: A self-type check.
self_type = 2
#: An integer range check (unused).
int_range = 3
#: A floating-point range check.
float_range = 4
#: An enumerated item check.
enum = 5
#: A mapped item check.
map = 6
#: A complex fast validator check with multiple fast validators.
complex = 7
#: A slow validator (only used in complex validators).
slow = 8
#: A tuple type check.
tuple = 9
#: A prefix map item check.
prefix_map = 10
#: A coercable type check.
coerce = 11
#: A castable type check.
cast = 12
#: A function check.
function = 13
#: A Python-based validator.
python = 14
#: An adaptable object check.
adapt = 19
#: An integer check.
int = 20
#: A floating-point check.
float = 21
#: A callable check.
callable = 22
#: A complex number check.
complex_number = 23
[docs]class ComparisonMode(IntEnum):
""" Comparison mode.
Indicates when trait change notifications should be generated based upon
the result of comparing the old and new values of a trait assignment:
Enumeration members:
none
The values are not compared and a trait change notification is
generated on each assignment.
identity
A trait change notification is generated if the old and new values are
not the same object.
equality
A trait change notification is generated if the old and new values are
not the same object, and not equal using Python's standard equality
testing. This is the default.
"""
#: Do not compare values (always fire trait change)
none = 0
#: Compare values by object identity.
identity = 1
#: Compare values by equality.
equality = 2
# Backward compatibility for comparison mode constants.
#: Deprecated alias for ``ComparisonMode.none``.
NO_COMPARE = ComparisonMode.none
#: Deprecated alias for ``ComparisonMode.identity``.
OBJECT_IDENTITY_COMPARE = ComparisonMode.identity
#: Deprecated alias for ``ComparisonMode.equality``.
RICH_COMPARE = ComparisonMode.equality
[docs]class DefaultValue(IntEnum):
""" Default value types. """
#: The default value type has not been specified
unspecified = -1
#: The default_value of the trait is the default value.
constant = traits.ctraits._CONSTANT_DEFAULT_VALUE
#: The default_value of the trait is Missing.
missing = traits.ctraits._MISSING_DEFAULT_VALUE
#: The object containing the trait is the default value.
object = traits.ctraits._OBJECT_DEFAULT_VALUE
#: A new copy of the list specified by default_value is the default value.
list_copy = traits.ctraits._LIST_COPY_DEFAULT_VALUE
#: A new copy of the dict specified by default_value is the default value.
dict_copy = traits.ctraits._DICT_COPY_DEFAULT_VALUE
#: A new instance of TraitListObject constructed using the default_value
#: list is the default value.
trait_list_object = traits.ctraits._TRAIT_LIST_OBJECT_DEFAULT_VALUE
#: A new instance of TraitDictObject constructed using the default_value
#: dict is the default value.
trait_dict_object = traits.ctraits._TRAIT_DICT_OBJECT_DEFAULT_VALUE
#: The default_value is a tuple of the form: (*callable*, *args*, *kw*),
#: where *callable* is a callable, *args* is a tuple, and *kw* is either a
#: dictionary or None. The default value is the result obtained by invoking
#: ``callable(\*args, \*\*kw)``.
callable_and_args = traits.ctraits._CALLABLE_AND_ARGS_DEFAULT_VALUE
#: The default_value is a callable. The default value is the result
#: obtained by invoking *default_value*(*object*), where *object* is the
#: object containing the trait. If the trait has a validate() method, the
#: validate() method is also called to validate the result.
callable = traits.ctraits._CALLABLE_DEFAULT_VALUE
#: A new instance of TraitSetObject constructed using the default_value set
#: is the default value.
trait_set_object = traits.ctraits._TRAIT_SET_OBJECT_DEFAULT_VALUE
#: This trait doesn't permit a default value, and an attempt to retrieve
#: the default value using the default_value_for method will fail.
disallow = traits.ctraits._DISALLOW_DEFAULT_VALUE
#: Maximum legal value for default_value_type, for use in testing
#: and validation.
MAXIMUM_DEFAULT_VALUE_TYPE = traits.ctraits._MAXIMUM_DEFAULT_VALUE_TYPE
#: Mapping from 'ctrait' default value types to a string representation:
default_value_map = {
DefaultValue.constant: "value",
DefaultValue.missing: "value",
DefaultValue.object: "self",
DefaultValue.list_copy: "list",
DefaultValue.dict_copy: "dict",
DefaultValue.trait_list_object: "list",
DefaultValue.trait_dict_object: "dict",
DefaultValue.callable_and_args: "factory",
DefaultValue.callable: "method",
DefaultValue.trait_set_object: "set",
DefaultValue.disallow: "invalid",
}