Traits User Manual
Previous: 2.2 Trait Metadata Table of Contents Next: 2.2.2 Recognized Metadata Attributes
Traits User Manual
1 Introduction
1.1 What Are Traits?
1.2 Background
2 Defining Traits: Initialization and Validation
2.1 Predefined Traits
2.1.1 Predefined Traits for Simple Types
2.1.2 Other Predefined Traits
2.2 Trait Metadata
2.2.1 Internal Metadata Attributes
2.2.2 Recognized Metadata Attributes
2.2.3 Accessing Metadata Attributes
3 Trait Notification
3.1 Dynamic Notification
3.1.1 Example of a Dynamic Notification Handler
3.1.2 The name Parameter
3.1.3 Notification Handler Signatures
3.1.4 Dynamic Handler Special Cases
3.2 Static Notification
3.2.1 Handler Decorator
3.2.2 Specially-named Notification Handlers
3.2.3 Attribute-specific Handler Signatures
3.2.4 General Static Handler Signatures
3.3 Trait Events
3.4 Undefined Object
4 Deferring Trait Definitions
4.1 DelegatesTo
4.2 PrototypedFrom
4.3 Keyword Parameters
4.3.1 Prefix Keyword
4.3.2 Listenable Keyword
4.4 Notification with Deferring
5 Custom Traits
5.1 Trait Subclassing
5.1.1 Defining a Trait Type
5.1.2 Defining a Trait Property
5.1.3 Other TraitType Members
5.2 The Trait() Factory Function
5.2.1 Trait () Parameters
5.2.2 Mapped Traits
5.3 Trait Handlers
5.3.1 TraitPrefixList
5.3.2 TraitPrefixMap
5.4 Custom Trait Handlers
5.4.1 Example Custom Trait Handler
6 Advanced Topics
6.1 Initialization and Validation Revisited
6.1.1 Dynamic Initialization
6.1.2 Overriding Default Values in a Subclass
6.1.3 Reusing Trait Definitions
6.1.4 Trait Attribute Definition Strategies
6.1.5 Type-Checked Methods
6.2 Interfaces
6.2.1 Defining an Interface
6.2.2 Implementing an Interface
6.2.3 Using Interfaces
6.3 Adaptation
6.3.1 Defining Adapters
6.3.2 Using Adapters
6.3.3 Controlling Adaptation
6.4 Property Traits
6.4.1 Property Factory Function
6.4.2 Caching a Property Value
6.5 Persistence
6.5.1 Pickling HasTraits Objects
6.5.2 Predefined Transient Traits
6.5.3 Overriding __getstate__()
6.5.4 Unpickling HasTraits Objects
6.5.5 Overriding __setstate__()
6.6 Useful Methods on HasTraits
6.6.1 add_trait()
6.6.2 clone_traits()
6.6.3 set()
6.6.4 add_class_trait()
6.7 Performance Considerations of Traits

2.2.1        Internal Metadata Attributes

The following metadata attributes are used internally by the Traits package, and can be queried:

·    array: Indicates whether the trait is an array.

·    default: Returns the default value for the trait, if known; otherwise it returns Undefined.

·    default_kind: Returns a string describing the type of value returned by the default attribute for the trait. The possible values are:

·    value: The default attribute returns the actual default value.

·    list: A copy of the list default value.

·    dict: A copy of the dictionary default value.

·    self: The default value is the object the trait is bound to; the default attribute returns Undefined.

·    factory: The default value is created by calling a factory; the default attribute returns Undefined.

·    method: The default value is created by calling a method on the object the trait is bound to; the default attribute returns Undefined.

·    delegate: The name of the attribute on this object that references the object that this object delegates to.

·    inner_traits: Returns a tuple containing the “inner” traits for the trait. For most traits, this is empty, but for List and Dict traits, it contains the traits that define the items in the list or the keys and values in the dictionary.

·    parent: The trait from which this one is derived.

·    prefix: A prefix or substitution applied to the delegate attribute. See Section 4, “Deferring Trait” for details.

·    trait_type: Returns the type of the trait, which is typically a handler derived from TraitType.

·    type: One of the following, depending on the nature of the trait:

·    constant

·    delegate

·    event

·    property

·    trait

Previous: 2.2 Trait Metadata Table of Contents Next: 2.2.2 Recognized Metadata Attributes
Traits User Manual