Source code for traits.observation._list_change_event
# (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!
""" Event object for representing mutations to a list.
"""
# ListChangeEvent is exposed in the public API
[docs]class ListChangeEvent:
""" Event object to represent mutations to a list.
The interface of this object is provisional as of version 6.1.
Attributes
----------
object : traits.trait_list_object.TraitList
The list being mutated.
index : int or slice
The index used for the mutation.
added : list
Values added to the list.
removed : list
Values removed from the list.
"""
def __init__(self, *, object, index, removed, added):
self.object = object
self.added = added
self.removed = removed
self.index = index
def __repr__(self):
return (
f"{self.__class__.__name__}("
f"object={self.object!r}, "
f"index={self.index!r}, "
f"removed={self.removed!r}, "
f"added={self.added!r})"
)
def list_event_factory(trait_list, index, removed, added):
""" Adapt the call signature of TraitList.notify to create an event.
Parameters
----------
trait_list : traits.trait_list_object.TraitList
TraitList object being mutated.
index : int or slice
The indices being modified by the operation.
removed : list
The items removed from the list.
added : list
The items added to the list.
Returns
-------
ListChangeEvent
"""
return ListChangeEvent(
object=trait_list, index=index, removed=removed, added=added,
)