schrodinger.application.jaguar.gui.utils module¶
Utility functions and classes for the Jaguar GUIs
-
class
schrodinger.application.jaguar.gui.utils.
EnhancedComboBox
(parent=None, items=None, default_item='', default_index=0, command=None, nocall=False, layout=None, tip='', itemdict=None)¶ Bases:
schrodinger.ui.qt.swidgets.SComboBox
A combo box for use in the Jaguar GUI with several Pythonic enhancements
-
setCurrentMmJagData
(jag_input, keyword, setting_name)¶ Set the combo box selection based on the specified mmjag setting The combo box user data must match the mmjag keyword values. If no matching setting is found, a warning will be issued.
Parameters: - jag_input (
schrodinger.application.jaguar.input.JaguarInput
) – A JaguarInput object containing the settings to load - keyword (str) – The mmjag keyword to load
- setting_name (str) – The name of the setting that is being set. This name will only be used when issuing warnings.
- jag_input (
-
-
exception
schrodinger.application.jaguar.gui.utils.
JaguarSettingError
¶ Bases:
exceptions.Exception
An exception indicating that there was an error with the user-specified Jaguar settings
-
exception
schrodinger.application.jaguar.gui.utils.
JaguarSettingWarning
¶ Bases:
exceptions.UserWarning
A warning indicating that a user-specified Jaguar settings could not be loaded into the GUI
-
class
schrodinger.application.jaguar.gui.utils.
ProjTableLikeView
(parent=None)¶ Bases:
PyQt5.QtWidgets.QTableView
A table view that mimics the selecting and editing behaviors of the Project Table
-
commitDataToSelected
(editor, index, delegate)¶ Commit data to all selected cells in the column that is currently being edited.
Parameters: - editor (
PyQt5.QtWidgets.QWidget
) – The editor being used to enter data - index (
PyQt5.QtCore.QModelIndex
) – The index being edited - delegate (
PyQt5.QtWidgets.QAbstractItemDelegate
) – The delegate used to create the editor
- editor (
-
selectionCommand
(index, event=None)¶ Don’t update the current selection when using the keyboard to navigate or when clicking on a selected editable item.
Parameters: - index (
PyQt5.QtCore.QModelIndex
) – The newly selected index - event (
PyQt5.QtCore.QEvent
) – The event that triggered the index change
Returns: A flag describing how the selection should be updated
Return type: int
- index (
-
setItemDelegateForColumn
(column, delegate, connect_selected=False)¶ Set the delegate for the specified column. Note that this function adds the optional
connect_selected
argument not present in the QTableView function.Parameters: - column (int) – The column to set the delegate for
- delegate (
PyQt5.QtWidgets.QAbstractItemDelegate
) – The delegate to set - connect_selected (bool) – If True, the delegate’s commitDataToSelected signal will be connected
-
-
class
schrodinger.application.jaguar.gui.utils.
PropertiesTableWidget
(*args, **kwargs)¶ Bases:
PyQt5.QtWidgets.QTableWidget
A QTableWidget for the Properties table on the Properties tab
-
shrinkRowHeight
()¶ Shrink the row height to eliminate unnecessary vertical padding
-
sizeHint
()¶ Set the preferred size of the table so that all rows are visible.
-
-
class
schrodinger.application.jaguar.gui.utils.
Solvent
(name, keyvalue, dielectric, radius, weight, density)¶ Bases:
tuple
-
density
¶ Alias for field number 5
-
dielectric
¶ Alias for field number 2
-
keyvalue
¶ Alias for field number 1
-
name
¶ Alias for field number 0
-
radius
¶ Alias for field number 3
-
weight
¶ Alias for field number 4
-
-
class
schrodinger.application.jaguar.gui.utils.
SpinTreatment
¶ Bases:
enum.Enum
An enumeration of the possible spin treatment settings. Enum values correspond to mmjag settings.
-
Automatic
= 2¶
-
NA
= None¶
-
Restricted
= 0¶
-
Unrestricted
= 1¶
-
unrestrictedAvailable
()¶ Does the current spin treatment setting allow for an unrestricted waveform?
Returns: True for unrestricted or automatic spin treatments. False otherwise. Return type: bool
-
-
class
schrodinger.application.jaguar.gui.utils.
WorkspaceInclusionCheckBox
(parent=None)¶ Bases:
PyQt5.QtWidgets.QCheckBox
A checkbox that is skinned to look like the Project Table workspace inclusion checkbox. This checkbox is used in the Transition State and IRC tabs.
Note: This skinning could be done using a style sheet, but that requires separate images for checked + disabled and unchecked + disabled. By using a QIcon, these disabled images are generated automatically. -
paintEvent
(event)¶
-
-
schrodinger.application.jaguar.gui.utils.
atom_name_regex
= <_sre.SRE_Pattern object>¶ A regular expression that matches Jaguar atom names. Group 1 of the match is the element and group 2 is the number.
-
schrodinger.application.jaguar.gui.utils.
atom_name_sort_key
(atom_name)¶ Convert a Jaguar atom name into a key for use in sorting by number
Parameters: atom_name (str) – The atom name Returns: A tuple of (atom number, element) Return type: tuple
-
schrodinger.application.jaguar.gui.utils.
calculate_num_protons
(struc)¶ Calculate the number of protons in the specified structure
Parameters: struc ( schrodinger.structure.Structure
) – The structure to calculate protons inReturns: The number of protons Return type: int
-
schrodinger.application.jaguar.gui.utils.
catch_jag_errors
(func)¶ A decorator that will display any `JaguarSettingError`s in an error dialog.
Returns: If the decorated function raised a JaguarSettingError
, False will be returned. Otherwise, the return value of the decorated function will be returned.
-
schrodinger.application.jaguar.gui.utils.
count_num_strucs
(input_selector)¶ Count the number of structures currently specified in the input selector widget. Since Jaguar can’t accept more than three structures, this function will return 4 for all values >= 4.
Parameters: input_selector ( schrodinger.ui.qt.input_selector.InputSelector
) – The input selector widget
-
schrodinger.application.jaguar.gui.utils.
find_key_for_value
(mydict, value)¶ This function finds key corresponding to a given value in a dictionary. We assume here that values in a given dictionary are unique.
Parameters: - mydict (dict) – dictionary
- value – value in dictionary. It can be any hashable type.
Returns: key, which can be any type.
-
schrodinger.application.jaguar.gui.utils.
generate_job_name
(struc_name, task_name, theory, basis)¶ Generate an appropriate job name for a job with the specified settings. Any settings that are specified as None will be omitted from the job name. If a directory or file with the specified name exists in the current directory, an integer will be appended to the job name.
Note: If generating multiple job names, the input for each job must be saved before the next job name is generated. Otherwise, this function will not be able to append the appropriate integer.
Parameters: Returns: The job name
Return type:
-
schrodinger.application.jaguar.gui.utils.
get_atom_info
(ws_atom_num)¶ Get information about the specified workspace atom
Parameters: ws_atom_num (int) – The workspace atom number Returns: A tuple of - The atom name (after Jaguar atom naming has been applied) - The atom number relative to the entry (rather than relative to the workspace structure)- The entry id
- The entry title
Return type: tuple
-
schrodinger.application.jaguar.gui.utils.
validate_le_float_input
(widget, msg=None)¶ This function checks whether a given line edit widget has a valid input. If it does it will return a float value. Otherwise an exception will be raised. This function should only be used for line edits used to enter float numbers.
Parameters: - widget (
QLineEdit
) – line edit widget - msg (str) – text of exception error message
Returns: valid float number
Return type: float
- widget (
-
schrodinger.application.jaguar.gui.utils.
warn_about_mmjag_unknowns
(jag_input, parent=None)¶ If the JaguarInput object contains any unknown keywords, warn the user about the unknowns and ask them if they want to continue.
Parameters: - jag_input (
schrodinger.application.jaguar.input.JaguarInput
) – The JaguarInput object to check for unknown keywords - parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widget for the warning dialog
Returns: True if we should continue (either there were no unknown keywords, or there were but the user wants to continue). False if we should cancel.
Return type: bool
- jag_input (