RodTracker.backend.logger¶
TBD
- class Action[source]¶
Bases:
QListWidgetItemBase class for all Actions that are loggable by an
ActionLogger.- invert()[source]¶
Generates an inverted version of the
Action(for redoing), None if theActionis not invertible.
- property inverted¶
Returns a ‘plain’ inverted version of the action without any coupled actions.
- property parent_id: str¶
The ID of the object that is responsible for (reverting) this action.
- abstract undo(rods: Optional[Iterable[RodNumberWidget]])[source]¶
Triggers events to revert this action.
- class ActionLogger(parent_id, *args, **kwargs)[source]¶
Bases:
QObjectLogs actions performed on its associated GUI object.
Keeps track of actions performed on/by a GUI object that is associated with it. It provides a list of the performed actions to a
LoggerWidgetfor display in the GUI. It is also used to trigger reverting of these actions. Do NOT create instances of this class directly but let an instance of theLoggerWidgetclass do that, if the logged actions shall be displayed in the GUI.- Parameters
*args – Positional arguments for the
QObjectsuperclass.**kwargs – Keyword arguments for the
QObjectsuperclass.
- parent_id¶
ID of the GUI object from which actions are logged. It must be human readable as it is used for labelling the actions displayed in the GUI.
- Type
str
- logged_actions¶
A list of all actions performed/logged with this instance (saved and unsaved).
- Type
List[Action]
- unsaved_changes¶
A list of all actions performed/logged with this instance that are savable but currently unsaved.
- Type
List[Action]
- repeatable_changes¶
An ordered list of all currently redoable/repeatable actions that were logged with this instance.
- Type
List[Action]
- frame¶
Frame number that is currently relevant to the object this logger is associated with. Default is None.
- Type
int
- add_action(last_action: Action) None[source]¶
Registers the actions performed by its parent and propagates them for visual display in the GUI.
- Parameters
last_action (Action) –
- data_changed¶
Notifies, if this object logged/undid/redid something that changed the displayed data.
- Type
pyqtSignal(Action)
- discard_changes()[source]¶
Discards and reverts all unsaved changes made.
Hint
Emits
data_changed(potentially repeatedly)undo_action(potentially repeatedly)undone_action(potentially repeatedly)
- notify_unsaved¶
Notifies, if this objects attribute unsaved_changes changes from empty to being filled with one or more items (True) or from filled to being empty (False). The parent_id is added to the payload.
- Type
pyqtSignal(bool, str)
- redo_last(parent_id: str) None[source]¶
De-registers the last undone action recorded and triggers its undo-(actually redo-)process.
- Parameters
parent_id (str) –
- register_undone(undone_action: Action)[source]¶
Lets the logger know that an action was undone without using its undo method(s).
- Parameters
undone_action (Action) –
- request_saving¶
Requests the saving of any unsaved changes.
True -> permanent savingFalse -> temporary saving- Type
pyqtSignal(bool)
- undo_action¶
Requests the reverting of the Action that is given as the payload.
- Type
pyqtSignal(Action)
- class ChangeRodPositionAction(old_rod: RodNumberWidget, new_position: List[int], *args, **kwargs)[source]¶
Bases:
ActionClass to represent the change of a rod’s position as a loggable action.
- Parameters
old_rod (RodNumberWidget) – A copy of the rod whose position was changed, prior to the change.
new_postion (List[int]) – The newly set starting and ending points of the rod, i.e. [x1, y1, x2, y2].
*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- rod¶
A copy of the rod whose position was changed, prior to the change.
- Type
- new_pos¶
The newly set starting and ending points of the rod.
- Type
List[int]
- action¶
Default is “Rod position updated”.
- Type
str
- invert()[source]¶
Generates an inverted version of the
ChangeRodPositionAction(for redoing).- Returns
ChangeRodPositionAction
- to_save()[source]¶
Generates a data representation of this action for saving.
- Returns
dict – Available fields: (“rod_id”, “cam_id”, “frame”, “color”, “position”)
- undo(rods: Optional[List[RodNumberWidget]] = None) List[RodNumberWidget][source]¶
Triggers events to revert this action.
- Parameters
rods (List[RodNumberWidget]) – A list of
RodNumberWidgetin which should be the originally changed rod(s).- Returns
List[RodNumberWidget]
- Raises
Exception –
- class ChangedRodNumberAction(old_rod: RodNumberWidget, new_id: int, coupled_action: Optional[Action] = None, *args, **kwargs)[source]¶
Bases:
ActionClass to represent a change of the rod number as a loggable action.
- Parameters
rod (RodNumberWidget) – A copy of the rod whose number is changed.
new_id (int) – The new rod number of the changed rod.
coupled_action (Action, optional) – The instance of an
Actionthat is performed at the same time with this and must be reverted as well, if thisActionis reverted. For example when the numbers of two rods are exchanged. (Default is None)*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- rod¶
A copy of the rod whose number is changed.
- Type
- new_id¶
The new rod number of the changed rod.
- Type
int
- action¶
Description of what kind of action was performed. (Default is “Changed rod”)
- Type
str
- coupled_action¶
The instance of an
Actionthat is performed at the same time with this and must be reverted as well, if thisActionis reverted.- Type
Union[Action, None]
- invert()[source]¶
Generates an inverted version of the
ChangedRodNumberAction(for redoing).- Returns
ChangedRodNumberAction
- property inverted¶
Returns a ‘plain’ inverted version of the action without any coupled actions.
- to_save()[source]¶
Generates a data representation of this action for saving.
- Returns
dict – Available fields: (“rod_id”, “cam_id”, “frame”, “color”, “position”)
- undo(rods: List[RodNumberWidget]) List[RodNumberWidget][source]¶
Triggers events to revert this action.
- Parameters
rods (List[RodNumberWidget]) – A list of
RodNumberWidgetin which should be the originally changed rod(s).- Returns
List[RodNumberWidget]
- class CreateRodAction(new_rod: RodNumberWidget, coupled_action: Optional[Union[Action, ChangedRodNumberAction]] = None, *args, **kwargs)[source]¶
Bases:
ActionClass to represent the creation of a new rod as a loggable action.
- Parameters
new_rod (RodNumberWidget) – A copy of the rod which was created.
*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- rod¶
A copy of the rod which was created.
- Type
- action¶
Default is “Created new rod”.
- Type
str
- invert()[source]¶
Generates an inverted version of the
CreateRodAction(for redoing).- Returns
DeleteRodAction
- property inverted¶
Returns a ‘plain’ inverted version of the action without any coupled actions.
- to_save()[source]¶
Generates a data representation of this action for saving.
- Returns
dict – Available fields: (“rod_id”, “cam_id”, “frame”, “color”, “position”)
- undo(rods: Optional[List[RodNumberWidget]] = None) List[RodNumberWidget][source]¶
Triggers events to revert this action.
- Parameters
rods (List[RodNumberWidget]) – A list of
RodNumberWidgetin which should be the created rod.- Returns
List[RodNumberWidget]
- Raises
Exception –
- class DeleteRodAction(old_rod: RodNumberWidget, coupled_action: Optional[Union[Action, ChangedRodNumberAction]] = None, *args, **kwargs)[source]¶
Bases:
ActionClass to represent the deletion of a rod as a loggable action.
- Parameters
old_rod (RodNumberWidget) – A copy of the rod that is deleted.
coupled_action (Union[Action, ChangedRodNumberAction], optional) – The instance of an
Actionthat is performed at the same time with this and must be reverted as well, if thisActionis reverted. (Default is None)*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- rod¶
A copy of the rod whose position was changed, prior to the change.
- Type
- action¶
Description of what kind of action was performed. (Default is “Deleted rod”)
- Type
str
- coupled_action¶
The instance of an
Actionthat is performed at the same time with this and must be reverted as well, if thisActionis reverted.- Type
Union[Action, ChangeRodNumberAction, None]
- invert()[source]¶
Generates an inverted version of the
DeleteRodAction(for redoing).- Returns
ChangeRodPositionAction
- property inverted¶
Returns a ‘plain’ inverted version of the action without any coupled actions.
- to_save()[source]¶
Generates a data representation of this action for saving.
- Returns
dict – Available fields: (“rod_id”, “cam_id”, “frame”, “color”, “position”)
- undo(rods: Optional[List[RodNumberWidget]] = None)[source]¶
Triggers events to revert this action.
- Parameters
rods (List[RodNumberWidget]) – A list of
RodNumberWidgetin which should be the originally changed rod(s).- Returns
List[RodNumberWidget]
- class FileAction(path: Path, action: FileActions, file_num=None, cam_id=None, parent_id: Optional[str] = None, *args, **kwargs)[source]¶
Bases:
ActionClass to represent a loggable action that was performed on a file.
- Parameters
path (str) – Path to the file that this action describes.
action (FileActions) –
file_num (int, optional) – Number of the image file that was loaded. It will be displayed to the user, if it was set. (Default is None)
cam_id (str, optional) – The objects ID on which behalf this action was done. This is necessary for displaying it to the user. (Default is None)
parent_id (str, optional) – The ID of the object that is responsible for (reverting) this action. (Default is None)
*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- action¶
Description of what kind of action was performed.
- Type
- file¶
Path to the file that this action describes.
- Type
str
- file_num¶
Number of the image file that was loaded. It will be displayed to the user, if it was set.
- Type
Union[int, None]
- cam_id¶
The objects ID on which behalf this action was done. This is necessary for displaying it to the user.
- Type
str
- property parent_id¶
The ID of the object that is responsible for (reverting) this action.
- class FileActions(value)[source]¶
Bases:
EnumHelper class holding all valid kinds of
FileActions.- SAVE¶
String representing the base of a saving to file action.
- Type
str
- LOAD_IMAGES¶
String representing the base of a loaded images action.
- Type
str
- OPEN_IMAGE¶
Deprecated since version 0.1.0: Should not be used anymore, because it clutters the displayed log of performed actions.
- Type
str
- MODIFY¶
Deprecated since version 0.1.0: Should not used be anymore, because all changes are made in RAM. Use
SAVEinstead.- Type
str
- LOAD_RODS¶
String representing the base of a loaded rod position data action.
- Type
str
- exception NotInvertableError[source]¶
Bases:
ExceptionRaised when a not invertable action is attempted to be inverted.
- class NumberChangeActions(value)[source]¶
Bases:
EnumHelper class holding valid kinds of rod number changes.
- ALL¶
Indicates a switch of rod numbers in all cameras from the current frame to the last frame of the dataset.
- Type
int
- ALL_ONE_CAM¶
Indicates a switch of rod numbers in the currently displayed camera from the current frame to the last frame of the dataset.
- Type
int
- ONE_BOTH_CAMS¶
Indicates a switch of rod numbers in all cameras for the current frame only.
- Type
int
- CURRENT¶
Indicates a switch of rod numbers in the current camera only and the current frame only.
- Type
int
- class NumberExchange(mode: NumberChangeActions, previous_id: int, new_id: int, color: str, frame: int, cam_id: Optional[str] = None)[source]¶
Bases:
Action- undo(rods: List[RodNumberWidget])[source]¶
Triggers events to revert this action.
- class PermanentRemoveAction(rod_quantity: int, *args, **kwargs)[source]¶
Bases:
ActionAction to describe permanent deletion of a rod from a dataset.
- Parameters
rod_quantity (int) – Number of rods (rows) have been deleted.
*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- undo(rods: Optional[Iterable[RodNumberWidget]])[source]¶
Triggers events to revert this action.
- class PruneLength(old_rods: Union[RodNumberWidget, List[RodNumberWidget]], new_positions: List[List[int]], adjustment: float, *args, **kwargs)[source]¶
Bases:
ActionClass to represent the pruning of a rods length as a loggable action.
- Parameters
old_rod (RodNumberWidget) – A copy of the rod whose position was changed, prior to the change.
new_postion (List[int]) – The newly set starting and ending points of the rod, i.e. [x1, y1, x2, y2].
*args (iterable) – Positional arguments for the
QListWidgetItemsuperclass.**kwargs (dict) – Keyword arguments for the
QListWidgetItemsuperclass.
- rod¶
A copy of the rod whose position was changed, prior to the change.
- Type
- new_pos¶
The newly set starting and ending points of the rod.
- Type
[int]
- action¶
Default is “Rod length pruned: “.
- Type
str
- to_save()[source]¶
Generates a data representation of this action for saving.
- Returns
dict – Available fields: (“rod_id”, “cam_id”, “frame”, “color”, “position”)
- undo(rods: Optional[List[RodNumberWidget]] = None) List[RodNumberWidget][source]¶
Triggers events to revert this action.
- Parameters
rods (List[RodNumberWidget]) – A list of
RodNumberWidgetin which should be the originally changed rod(s).- Returns
List[RodNumberWidget]
- Raises
Exception –