BaseGUI#

class abtem.visualize.widgets.BaseGUI(**kwargs: Any)[source]#

Bases: HBox

__init__(sliders, canvas, *args)[source]#

Public constructor

Methods

__init__(sliders, canvas, *args)

Public constructor

add_class(className)

Adds a class to the top level element of the widget.

add_traits(**traits)

Dynamically add trait attributes to the Widget.

attach_visualization(visualization)

blur()

Blur the widget.

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.

close()

Close method.

close_all()

focus()

Focus on the widget.

get_manager_state([drop_defaults, widgets])

Returns the full state for a widget manager for embedding

get_state([key, drop_defaults])

Gets the widget state, or a piece of it.

get_view_spec()

handle_comm_opened(comm, msg)

Static method, called when a widget is constructed.

handle_control_comm_opened(comm, msg)

Class method, called when the comm-open message on the "jupyter.widget.control" comm channel is received

has_trait(name)

Returns True if the object has a trait with the specified name.

hold_sync()

Hold syncing any state until the outermost context manager exits

hold_trait_notifications()

Context manager for bundling trait change notifications and cross validation.

notify_change(change)

Called when a property has changed.

observe(handler[, names, type])

Setup a handler to be called when a trait changes.

on_msg(callback[, remove])

(Un)Register a custom msg receive callback.

on_trait_change([handler, name, remove])

DEPRECATED: Setup a handler to be called when a trait changes.

on_widget_constructed(callback)

Registers a callback to be called when a widget is constructed.

open()

Open a comm to the frontend if one isn't already open.

remove_class(className)

Removes a class from the top level element of the widget.

send(content[, buffers])

Sends a custom msg to the widget model in the front-end.

send_state([key])

Sends the widget state, or a piece of it, to the front-end, if it exists.

set_state(sync_data)

Called when a state is received from the front-end.

set_trait(name, value)

Forcibly sets trait attribute, including read-only attributes.

setup_instance(**kwargs)

This is called before self.__init__ is called.

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.

Attributes

autoscale_button

box_style

Use a predefined styling for the box.

children

List of widget children

comm

A trait which allows any value.

common_scale_button

cross_validation_lock

A contextmanager for running a block with our cross validation lock set to True.

keys

The traits which are synced.

layout

An instance trait which coerces a dict to an instance.

log

A trait whose value must be an instance of a specified class.

model_id

Gets the model id of this widget.

powerscale_slider

scale_button

sliders

tabbable

Is widget tabbable?

tooltip

A tooltip caption.

widget_types

widgets

add_class(className)#

Adds a class to the top level element of the widget.

Doesn’t add the class if it already exists.

add_traits(**traits)#

Dynamically add trait attributes to the Widget.

blur()#

Blur the widget.

box_style#

Use a predefined styling for the box.

children#

List of widget children

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.

Return type:

dict[str, EventHandler]

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.

Return type:

dict[str, TraitType[Any, Any]]

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.

Return type:

list[str]

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.

Return type:

dict[str, TraitType[Any, Any]]

close()#

Close method.

Closes the underlying comm. When the comm is closed, all of the widget views are automatically removed from the front-end.

property cross_validation_lock: Any#

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.

focus()#

Focus on the widget.

static get_manager_state(drop_defaults=False, widgets=None)#

Returns the full state for a widget manager for embedding

Parameters:
  • drop_defaults – when True, it will not include default value

  • widgets – list with widgets to include in the state (or all widgets when None)

Returns:

get_state(key=None, drop_defaults=False)#

Gets the widget state, or a piece of it.

Parameters:

key (unicode or iterable (optional)) – A single property’s name or iterable of property names to get.

Returns:

  • state (dict of states)

  • metadata (dict) – metadata for each field: {key: metadata}

static handle_comm_opened(comm, msg)#

Static method, called when a widget is constructed.

classmethod handle_control_comm_opened(comm, msg)#

Class method, called when the comm-open message on the “jupyter.widget.control” comm channel is received

has_trait(name)#

Returns True if the object has a trait with the specified name.

Return type:

bool

hold_sync()#

Hold syncing any state until the outermost context manager exits

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.

Return type:

Any

keys#

The traits which are synced.

property model_id#

Gets the model id of this widget.

If a Comm doesn’t exist yet, a Comm will be created automagically.

notify_change(change)#

Called when a property has changed.

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:
  • handler (callable) – A callable that is called when a trait changes. Its signature should be handler(change), where change 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.

  • names (list, 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.

  • type (str, All (default: 'change')) – The type of notification to filter by. If equal to All, then all notifications are passed to the observe handler.

Return type:

None

on_msg(callback, remove=False)#

(Un)Register a custom msg receive callback.

Parameters:
  • callback (callable) –

    callback will be passed three arguments when a message arrives:

    callback(widget, content, buffers)
    

  • remove (bool) – True if the callback should be unregistered.

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 and handler is not specified, all change handlers for the specified name are uninstalled.

Parameters:
  • handler (callable, 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).

  • name (list, 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.

  • remove (bool) – If False (the default), then install the handler. If True then unintall it.

Return type:

None

static on_widget_constructed(callback)#

Registers a callback to be called when a widget is constructed.

The callback must have the following signature: callback(widget)

open()#

Open a comm to the frontend if one isn’t already open.

remove_class(className)#

Removes a class from the top level element of the widget.

Doesn’t remove the class if it doesn’t exist.

send(content, buffers=None)#

Sends a custom msg to the widget model in the front-end.

Parameters:
  • content (dict) – Content of the message to send.

  • buffers (list of binary buffers) – Binary buffers to send with message

send_state(key=None)#

Sends the widget state, or a piece of it, to the front-end, if it exists.

Parameters:

key (unicode, or iterable (optional)) – A single property’s name or iterable of property names to sync with the front-end.

set_state(sync_data)#

Called when a state is received from the front-end.

set_trait(name, value)#

Forcibly sets trait attribute, including read-only attributes.

Return type:

None

setup_instance(**kwargs)#

This is called before self.__init__ is called.

Return type:

None

tabbable#

Is widget tabbable?

tooltip#

A tooltip caption.

trait_defaults(*names, **metadata)#

Return a trait’s default value or a dictionary of them

Return type:

dict[str, t.Any] | Sentinel

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:

name (str (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.

Return type:

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")
Return type:

bool

trait_metadata(traitname, key, default=None)#

Get metadata values for trait by key.

Return type:

Any

trait_names(**metadata)#

Get a list of all the names of this class’ traits.

Return type:

list[str]

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.

Return type:

A dict of trait names and their values.

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 result dict.

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.

Return type:

dict[str, TraitType[Any, Any]]

unobserve(handler, names=traitlets.All, type='change')#

Remove a trait change handler.

This is used to unregister handlers to trait change notifications.

Parameters:
  • handler (callable) – The callable called when a trait attribute changes.

  • names (list, 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.

  • type (str 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.

Return type:

None

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.

Return type:

None