Folder¶
- class wwt_data_formats.folder.Folder(**kwargs: Any)[source]¶
Bases:
LockedXmlTraits
,UrlContainer
A grouping of WWT content assets.
Children can be: places (aka “Items”), imagesets, linesets, tours, folders, or IThumbnail objects (to be explored).
Attributes Summary
A boolean (True, False) trait.
An instance of a Python list.
A contextmanager for running a block with our cross validation lock set to True.
A trait for unicode strings.
The ID number of the WWT Community that this content came from.
The ID number of this content item on the WWT Communities system.
A trait for unicode strings.
TBD.
A trait whose value must be an instance of a specified class.
A boolean (True, False) trait.
A trait for unicode strings.
A trait for unicode strings.
Use a Enum class as model for the data type description.
The URL at which the full contents of this folder can be downloaded in WTML format.
Methods Summary
add_traits
(**traits)Dynamically add trait attributes to the HasTraits instance.
apply_to_xml
(elem)Serialize the data of this object to an existing XML tree
class_own_trait_events
(name)Get a dict of all event handlers defined on this class, not a parent.
class_own_traits
(**metadata)Get a dict of all the traitlets defined on this class, not a parent.
class_trait_names
(**metadata)Get a list of all the names of this class' traits.
class_traits
(**metadata)Get a
dict
of all the traits of this class.from_file
(path[, encoding])Deserialize an instance of this class from an XML file on local disk.
from_text
(text)Deserialize an instance of this class from XML-formatted text.
from_url
(url[, session])Deserialize an instance of this class from XML downloaded from the specified URL.
from_xml
(elem)Deserialize an instance of this class from XML.
has_trait
(name)Returns True if the object has a trait with the specified name.
Context manager for bundling trait change notifications and cross validation.
Generate a sequence of the imagesets defined in this folder, without recursion into any child folders.
mutate_urls
(mutator)Visit all URLs inside this container and potentially mutate them.
notify_change
(change)Notify observers of a change event
observe
(handler[, names, type])Setup a handler to be called when a trait changes.
on_trait_change
([handler, name, remove])DEPRECATED: Setup a handler to be called when a trait changes.
set_trait
(name, value)Forcibly sets trait attribute, including read-only attributes.
setup_instance
(**kwargs)This is called before self.__init__ is called.
to_xml
()Serialize this object to XML.
to_xml_string
([indent])Serialize this object to XML text.
trait_defaults
(*names, **metadata)Return a trait's default value or a dictionary of them
trait_events
([name])Get a
dict
of all the event handlers of this class.trait_has_value
(name)Returns True if the specified trait has a value.
trait_metadata
(traitname, key[, default])Get metadata values for trait by key.
trait_names
(**metadata)Get a list of all the names of this class' traits.
trait_values
(**metadata)A
dict
of trait names and their values.traits
(**metadata)Get a
dict
of all the traits of this class.unobserve
(handler[, names, type])Remove a trait change handler.
unobserve_all
([name])Remove trait change handlers of any type for the specified name.
walk
([download])write_xml
(dest_stream[, dest_wants_bytes, ...])Serialize this object to XML, writing the data to a stream.
Attributes Documentation
- browseable¶
A boolean (True, False) trait.
- children¶
An instance of a Python list.
- cross_validation_lock¶
A contextmanager for running a block with our cross validation lock set to True.
At the end of the block, the lock’s value is restored to its value prior to entering the block.
- group¶
A trait for unicode strings.
- msr_community_id¶
The ID number of the WWT Community that this content came from.
- msr_component_id¶
The ID number of this content item on the WWT Communities system.
- name¶
A trait for unicode strings.
- permission¶
TBD.
- rmeta¶
A trait whose value must be an instance of a specified class.
The value can also be an instance of a subclass of the specified class.
Subclasses can declare default classes by overriding the klass attribute
- searchable¶
A boolean (True, False) trait.
- sub_type¶
A trait for unicode strings.
- thumbnail¶
A trait for unicode strings.
- type¶
Use a Enum class as model for the data type description. Note that if no default-value is provided, the first enum-value is used as default-value.
# -- SINCE: Python 3.4 (or install backport: pip install enum34) import enum from traitlets import HasTraits, UseEnum class Color(enum.Enum): red = 1 # -- IMPLICIT: default_value blue = 2 green = 3 class MyEntity(HasTraits): color = UseEnum(Color, default_value=Color.blue) entity = MyEntity(color=Color.red) entity.color = Color.green # USE: Enum-value (preferred) entity.color = "green" # USE: name (as string) entity.color = "Color.green" # USE: scoped-name (as string) entity.color = 3 # USE: number (as int) assert entity.color is Color.green
- url¶
The URL at which the full contents of this folder can be downloaded in WTML format.
Methods Documentation
- add_traits(**traits)¶
Dynamically add trait attributes to the HasTraits instance.
- apply_to_xml(elem)¶
Serialize the data of this object to an existing XML tree
- Parameters:
- elem
xml.etree.ElementTree.Element
An XML subtree that will be filled in with data values associated with this instance.
- elem
- Returns:
- self
Notes
This method makes it possible to work with input data that may have additional contents not defined in the WWT specification – by modifying the existing tree, we can preserve those data.
- classmethod class_own_trait_events(name)¶
Get a dict of all event handlers defined on this class, not a parent.
Works like
event_handlers
, except for excluding traits from parents.
- classmethod class_own_traits(**metadata)¶
Get a dict of all the traitlets defined on this class, not a parent.
Works like
class_traits
, except for excluding traits from parents.
- classmethod class_trait_names(**metadata)¶
Get a list of all the names of this class’ traits.
This method is just like the
trait_names()
method, but is unbound.
- classmethod class_traits(**metadata)¶
Get a
dict
of all the traits of this class. The dictionary is keyed on the name and the values are the TraitType objects.This method is just like the
traits()
method, but is unbound.The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
The metadata kwargs allow functions to be passed in which filter traits based on metadata values. The functions should take a single value as an argument and return a boolean. If any function returns False, then the trait is not included in the output. If a metadata key doesn’t exist, None will be passed to the function.
- classmethod from_file(path, encoding='utf-8-sig')¶
Deserialize an instance of this class from an XML file on local disk.
- Parameters:
- pathstring
The path of the XML file.
- encodingoptional string, default “utf-8-sig”
The encoding of the file text. The default value is basically UTF-8 but will ignore Windows Byte Order Markers (BOMs) if present.
- Returns:
- An instance of the class, initialized with data from the XML.
- classmethod from_text(text)¶
Deserialize an instance of this class from XML-formatted text.
- Parameters:
- textstring
The XML text.
- Returns:
- An instance of the class, initialized with data from the XML.
- classmethod from_url(url, session=None, **kwargs)¶
Deserialize an instance of this class from XML downloaded from the specified URL.
- Parameters:
- urlstring
The URL from which to download the XML.
- session
requests
session or None (the default) The HTTP communications session to use.
- kwargs
Extra arguments to pass to
requests.get
.
- Returns:
- An instance of the class, initialized with data from the XML.
- classmethod from_xml(elem)¶
Deserialize an instance of this class from XML.
- Parameters:
- elemxml.etree.ElementTree.Element
An XML element serializing the object.
- Returns:
- An instance of the class, initialized with data from the XML.
- has_trait(name)¶
Returns True if the object has a trait with the specified name.
- hold_trait_notifications()¶
Context manager for bundling trait change notifications and cross validation.
Use this when doing multiple trait assignments (init, config), to avoid race conditions in trait notifiers requesting other trait values. All trait notifications will fire after all values have been assigned.
- immediate_imagesets()[source]¶
Generate a sequence of the imagesets defined in this folder, without recursion into any child folders.
- Returns:
- A generator of tuples of
(child_index, item_type, imageset)
, described below.
- A generator of tuples of
Notes
In the generated tuples,
child_index
is the index number of the item within the folder’schildren
array andimageset
is theImageSet
object contained within the folder. Ifitem_type
isNone
, that indicates that the imageset corresponds to an imageset child that is defined directly in the folder contents. It may also be a string indicating that the imageset is defined by a different kind of potential folder child. Allowed values are"place_imageset"
,"place_foreground"
, or"place_background"
, for different imagesets that may be contained within aPlace
item in the folder.Examples
Consider a folder that has two children: an imageset, and a place. The place in turn defines both a
foreground_image_set
and abackground_image_set
. The generator returned by this function will yield three values:(0, None, <ImageSet>)
,(1, "place_foreground", <ImageSet>)
, and(1, "place_background", <ImageSet>)
.
- mutate_urls(mutator)[source]¶
Visit all URLs inside this container and potentially mutate them.
- Parameters:
- mutatorcallable(str) -> str
A function taking a URL string and returning a URL string.
Notes
For each URL inside the container, the URL is updated with the mutator’s return value:
this.some_url = mutator(this.some_url)
If you just want to visit all of the URLs inside this container, you can write a mutator the returns its input unmodified.
Implementors should not call the mutator if the URL is an optional parameter that is
None
(or otherwise unset).
- notify_change(change)¶
Notify observers of a change event
- observe(handler, names=traitlets.All, type='change')¶
Setup a handler to be called when a trait changes.
This is used to setup dynamic notifications of trait changes.
- Parameters:
- handlercallable
A callable that is called when a trait changes. Its signature should be
handler(change)
, wherechange
is a dictionary. The change dictionary at least holds a ‘type’ key. *type
: the type of notification. Other keys may be passed depending on the value of ‘type’. In the case where type is ‘change’, we also have the following keys: *owner
: the HasTraits instance *old
: the old value of the modified trait attribute *new
: the new value of the modified trait attribute *name
: the name of the modified trait attribute.- nameslist, str, All
If names is All, the handler will apply to all traits. If a list of str, handler will apply to all names in the list. If a str, the handler will apply just to that name.
- typestr, All (default: ‘change’)
The type of notification to filter by. If equal to All, then all notifications are passed to the observe handler.
- on_trait_change(handler=None, name=None, remove=False)¶
DEPRECATED: Setup a handler to be called when a trait changes.
This is used to setup dynamic notifications of trait changes.
Static handlers can be created by creating methods on a HasTraits subclass with the naming convention ‘_[traitname]_changed’. Thus, to create static handler for the trait ‘a’, create the method _a_changed(self, name, old, new) (fewer arguments can be used, see below).
If
remove
is True andhandler
is not specified, all change handlers for the specified name are uninstalled.- Parameters:
- handlercallable, None
A callable that is called when a trait changes. Its signature can be handler(), handler(name), handler(name, new), handler(name, old, new), or handler(name, old, new, self).
- namelist, str, None
If None, the handler will apply to all traits. If a list of str, handler will apply to all names in the list. If a str, the handler will apply just to that name.
- removebool
If False (the default), then install the handler. If True then unintall it.
- set_trait(name, value)¶
Forcibly sets trait attribute, including read-only attributes.
- setup_instance(**kwargs)¶
This is called before self.__init__ is called.
- to_xml()¶
Serialize this object to XML.
- Returns:
- elem
xml.etree.ElementTree.Element
An XML element serializing the object.
- elem
- to_xml_string(indent=True)¶
Serialize this object to XML text.
- Parameters:
- indentoptional bool, default True
Whether the returned XML text will have user-friendly indentation or not.
- Returns:
- xml_textstring
A textual serialization of the object as XML.
- trait_defaults(*names, **metadata)¶
Return a trait’s default value or a dictionary of them
Notes
Dynamically generated default values may depend on the current state of the object.
- classmethod trait_events(name=None)¶
Get a
dict
of all the event handlers of this class.- Parameters:
- namestr (default: None)
The name of a trait of this class. If name is
None
then all the event handlers of this class will be returned instead.
- Returns:
- The event handlers associated with a trait name, or all event handlers.
- trait_has_value(name)¶
Returns True if the specified trait has a value.
This will return false even if
getattr
would return a dynamically generated default value. These default values will be recognized as existing only after they have been generated.Example
class MyClass(HasTraits): i = Int() mc = MyClass() assert not mc.trait_has_value("i") mc.i # generates a default value assert mc.trait_has_value("i")
- trait_metadata(traitname, key, default=None)¶
Get metadata values for trait by key.
- trait_names(**metadata)¶
Get a list of all the names of this class’ traits.
- trait_values(**metadata)¶
A
dict
of trait names and their values.The metadata kwargs allow functions to be passed in which filter traits based on metadata values. The functions should take a single value as an argument and return a boolean. If any function returns False, then the trait is not included in the output. If a metadata key doesn’t exist, None will be passed to the function.
- Returns:
- A
dict
of trait names and their values.
- A
Notes
Trait values are retrieved via
getattr
, any exceptions raised by traits or the operations they may trigger will result in the absence of a trait value in the resultdict
.
- traits(**metadata)¶
Get a
dict
of all the traits of this class. The dictionary is keyed on the name and the values are the TraitType objects.The TraitTypes returned don’t know anything about the values that the various HasTrait’s instances are holding.
The metadata kwargs allow functions to be passed in which filter traits based on metadata values. The functions should take a single value as an argument and return a boolean. If any function returns False, then the trait is not included in the output. If a metadata key doesn’t exist, None will be passed to the function.
- unobserve(handler, names=traitlets.All, type='change')¶
Remove a trait change handler.
This is used to unregister handlers to trait change notifications.
- Parameters:
- handlercallable
The callable called when a trait attribute changes.
- nameslist, str, All (default: All)
The names of the traits for which the specified handler should be uninstalled. If names is All, the specified handler is uninstalled from the list of notifiers corresponding to all changes.
- typestr or All (default: ‘change’)
The type of notification to filter by. If All, the specified handler is uninstalled from the list of notifiers corresponding to all types.
- unobserve_all(name=traitlets.All)¶
Remove trait change handlers of any type for the specified name. If name is not specified, removes all trait notifiers.
- write_xml(dest_stream, dest_wants_bytes=False, indent=True)¶
Serialize this object to XML, writing the data to a stream.
- Parameters:
- dest_streamwriteable file-like object or None
The destination to which the XML data will be written. If None, standard output is used.
- dest_wants_bytesoptional bool, default False
Whether the destination stream expects to be fed bytes data rather than Unicode. If so, the XML text is encoded into UTF-8 before being written.
- indentbool, default True
Whether the returned XML text will have user-friendly indentation or not.
- Returns:
- None