Traits User Manual
Previous: 2.2.1 Internal Metadata Attributes Table of Contents Next: 2.2.3 Accessing 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.2        Recognized Metadata Attributes

The following metadata attributes are not predefined, but are recognized by HasTraits objects:

·    desc: A string describing the intended meaning of the trait. It is used in exception messages and fly-over help in user interface trait editors.

·    editor: Specifies an instance of a subclass of TraitEditor to use when creating a user interface editor for the trait. Refer to the Traits UI User Guide for more information on trait editors.

·    label: A string providing a human-readable name for the trait. It is used to label trait attribute values in user interface trait editors.

·    rich_compare: A Boolean indicating whether the basis for considering a trait attribute value to have changed is a “rich” comparison (True, the default), or simple object identity (False). This attribute can be useful in cases where a detailed comparison of two objects is very expensive, or where you do not care if the details of an object change, as long as the same object is used.

·    trait_value: A Boolean indicating whether the trait attribute accepts values that are instances of TraitValue. The default is False. The TraitValue class provides a mechanism for dynamically modifying trait definitions. See the Traits API Reference for details on TraitValue. If trait_value is True, then setting the trait attribute to TraitValue(), with no arguments, resets the attribute to it original default value.

·    transient: A Boolean indicating whether the trait value is persisted when the object containing it is persisted. The default value for most predefined traits is True. You can set it to False for traits whose values you know you do not want to persist. Do not set it to False on traits where it is set internally to True, as doing so is likely to create unintended consequences. See Section 6.5, “Persistence” for more information.

Other metadata attributes may be recognized by specific predefined traits.

Previous: 2.2.1 Internal Metadata Attributes Table of Contents Next: 2.2.3 Accessing Metadata Attributes
Traits User Manual