schrodinger.application.job_monitor.job_monitor_table module

class schrodinger.application.job_monitor.job_monitor_table.JobTableSpec(*args, _param_type=<object object>, **kwargs)

Bases: schrodinger.ui.qt.mapperwidgets.plptable.TableSpec

Columns go: Indicator Icon | # | Job Name | Progress | Last Updated | “Next” Icon

indicator = <schrodinger.ui.qt.mapperwidgets.plptable.FieldColumn object>
relative_id = <schrodinger.ui.qt.mapperwidgets.plptable.FieldColumn object>
jobname = <schrodinger.ui.qt.mapperwidgets.plptable.ParamColumn object>
progress = <schrodinger.ui.qt.mapperwidgets.plptable.ParamColumn object>
updated = <schrodinger.ui.qt.mapperwidgets.plptable.ParamColumn object>
arrow = <schrodinger.ui.qt.mapperwidgets.plptable.ParamColumn object>
arrow_tooltip_display(job_model)
updated_tooltip_display(job_model)
indicator_icon(job_model)
jobname_display(job_model)
jobname_tooltip_display(job_model)
current_progress_display(job_model)
download_icon_tooltip(job_model)
updated_display(job_model)
font_role(job_model)

All columns are italic when a job is no longer active

updated_font(job_model)

Updated column is always italic

jobname_text_alignment(job_model)
text_alignment_role(job_model)
foreground_role(job_model)

All columns are italic when a job is no longer active (until the job files are downloaded) and in gray color while the active jobs are in black color.

updated_foreground(job_model)
updated_sort_role(job_model)

Sort ‘Last Updated’ column based on UTC epoch time when the job was last updated.

sort_role(field)
columnsChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

columnsReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

class schrodinger.application.job_monitor.job_monitor_table.JobTableWidget(*args, **kwargs)

Bases: schrodinger.ui.qt.mapperwidgets.plptable.PLPTableWidget

Variables

deleteJobRecordRequested (QtCore.pyqtSignal) – Signal emitted when ‘Delete Job Record’ right-click menu-item is clicked. Emitted with a list of job ids.

stopRequested

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

cancelRequested

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

collectDiagnosticsRequested

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

deleteJobRecordRequested

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

__init__(*args, **kwargs)
Parameters
  • spec (TableSpec) – Table specification. Will be ignored if autospec is True.

  • autospec (bool) – Whether to automatically generate the table specification from the PLP item fields.

  • plp (parameters.ParamListParam) – ParamListParam containing data. It is more common to set the plp using mappers.

  • view (QtWidgets.QTableView) – Custom table view instance. If None, an instance of table_helper.SampleDataTableView will be created.

saveSelection()
restoreSelection()

Restore previously saved selection of jobs in the table.

initLayOut()

Create a vertical layout for the widget (widget_layout) and populate it with two vertical sub-layouts: main_layout and bottom_layout.

If the user has specified the ui data member, insert the resultant ui_widget into main_layout.

If the widget already has a layout defined, this method will produce a warning (but not a traceback). main_layout and bottom_layout will be inserted into the existing widget layout, which will not be the same as widget_layout. It is therefore recommended that this mixin is used only with widgets that do not already have a layout.

Suggested subclass use: create, initialize, and populate layouts.

onContextMenuRequested(pos)
refresh()

Trigger a repaint of the table, letting the “last updated” column recalculate how long it’s been since the job model was updated

class schrodinger.application.job_monitor.job_monitor_table.HorizontalHeader

Bases: PyQt6.QtWidgets.QHeaderView

__init__()
mouseReleaseEvent(ev)

Do not make first and last columns sortable

class schrodinger.application.job_monitor.job_monitor_table.TableProxy

Bases: PyQt6.QtCore.QIdentityProxyModel

headerData(section, orientation, role)

Job name column header should be left aligned

See Qt documentation for additional method documentation.

class schrodinger.application.job_monitor.job_monitor_table.JobTableDelegate(view)

Bases: schrodinger.ui.qt.delegates.MouseTrackingDelegateMixin, PyQt6.QtWidgets.QStyledItemDelegate

paint(painter, option, index)

Don’t paint focus around table cells (its just a dotted line around the cell you clicked on)

class schrodinger.application.job_monitor.job_monitor_table.JobDetailsArrowDelegate(*args, **kwargs)

Bases: schrodinger.application.job_monitor.job_monitor_table.JobTableDelegate

A delegate that paints an arrow when hovering over a row, signifying that there is a job details pane awaiting a click

Variables

clicked (QtCore.pyqtSignal) – a signal emitted when the arrow delegate is left-clicked. Emitted with the index of the cell that is clicked.

clicked

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

__init__(*args, **kwargs)
Parameters

view (QtWidgets.QTableView) – The view that this delegate will be added to. Note that mouse tracking will be enabled in the view

paint(painter, option, index)

Don’t paint focus around table cells (its just a dotted line around the cell you clicked on)

editorEvent(event, model, option, index)

Handle mouse clicks: Emit the clicked signal when the left button of mouse on the cell is released.

class schrodinger.application.job_monitor.job_monitor_table.JobProgressDelegate(view)

Bases: schrodinger.application.job_monitor.job_monitor_table.JobTableDelegate

A delegate that paints a progress bar if the job is running and has set a max progress, otherwise just paints the status. Also paints the download status indicator for the completed jobs.

paint(painter, option, index)

Don’t paint focus around table cells (its just a dotted line around the cell you clicked on)

class schrodinger.application.job_monitor.job_monitor_table.SubJobTableWidget(*args, **kwargs)

Bases: schrodinger.application.job_monitor.job_monitor_table.JobTableWidget

schrodinger.application.job_monitor.job_monitor_table.get_updated_time_display(updated_time)

Return the updated timestamp for the last updated field of job.

Parameters

updated_time (float) – UTC epoch time when the job was last updated

Return type

str

schrodinger.application.job_monitor.job_monitor_table.get_updated_time_tooltip(updated_time)

Return the updated timestamp for the tooltip of last updated field of job.

Parameters

updated_time (float) – UTC epoch time when the job was last updated

Return type

str

schrodinger.application.job_monitor.job_monitor_table.get_icon_path_for_status(status, requested_status=RequestedStatus.NONE)

” Return the requisite icon’s path according to the status.

Parameters

requested_status (RequestedStatus) – Requested status job is in.