sas.qtgui.Perspectives.Invariant package¶
Subpackages¶
- sas.qtgui.Perspectives.Invariant.UI package
- Submodules
- sas.qtgui.Perspectives.Invariant.UI.InvariantDetailsUI module
- sas.qtgui.Perspectives.Invariant.UI.TabbedInvariantUI module
Ui_tabbedInvariantUIUi_tabbedInvariantUI.__annotations__Ui_tabbedInvariantUI.__dict__Ui_tabbedInvariantUI.__doc__Ui_tabbedInvariantUI.__firstlineno__Ui_tabbedInvariantUI.__module__Ui_tabbedInvariantUI.__static_attributes__Ui_tabbedInvariantUI.__weakref__Ui_tabbedInvariantUI.retranslateUi()Ui_tabbedInvariantUI.setupUi()
- Module contents
Submodules¶
sas.qtgui.Perspectives.Invariant.InvariantDetails module¶
- class sas.qtgui.Perspectives.Invariant.InvariantDetails.DetailsDialog(parent)¶
Bases:
QDialog,Ui_DialogThis class stores some values resulting from invariant calculations. Given the value of total invariant, this class can also determine the percentage of invariants resulting from extrapolation.
- __doc__ = '\nThis class stores some values resulting from invariant calculations.\nGiven the value of total invariant, this class can also\ndetermine the percentage of invariants resulting from extrapolation.\n'¶
- __firstlineno__ = 13¶
- __init__(parent)¶
- __module__ = 'sas.qtgui.Perspectives.Invariant.InvariantDetails'¶
- __static_attributes__ = ('_model', 'progress_data_qstar', 'progress_high_qstar', 'progress_low_qstar', 'qdata', 'qhigh', 'qlow', 'qstar_total', 'warning_msg')¶
- checkValues()¶
Create a warning message to be displayed in panel if problems with values
- closeEvent(event)¶
Re-enables the status button when closed
- setModel(model)¶
- showDialog()¶
Fill the dialog with values of calculated Q, progress bars
- staticMetaObject = PySide6.QtCore.QMetaObject("DetailsDialog" inherits "QDialog": )¶
sas.qtgui.Perspectives.Invariant.InvariantPerspective module¶
- class sas.qtgui.Perspectives.Invariant.InvariantPerspective.InvariantWindow(parent=None)¶
Bases:
QDialog,Ui_tabbedInvariantUI,PerspectiveThe controller responsible for managing signal slots connections for the gui and providing an interface to the data model.
- __doc__ = 'The controller responsible for managing signal slots connections for the gui and providing an interface to the data model.'¶
- __firstlineno__ = 39¶
- __init__(parent=None)¶
- __module__ = 'sas.qtgui.Perspectives.Invariant.InvariantPerspective'¶
- __static_attributes__ = ('HighQGroup', 'LowQGroup', 'LowQPowerGroup', 'VolFracContrastGroup', '_allow_close', '_background', '_calculator', '_contrast', '_contrast_err', '_data', '_high_extrapolate', '_high_fit', '_high_fix', '_high_points', '_high_power_value', '_low_extrapolate', '_low_fit', '_low_fix', '_low_guinier', '_low_points', '_low_power', '_low_power_value', '_manager', '_model_item', '_path', '_porod', '_porod_err', '_reactor', '_scale', '_volfrac1', '_volfrac1_err', 'communicator', 'detailsDialog', 'extrapolation_made', 'high_extrapolation_plot', 'low_extrapolation_plot', 'mapper', 'model', 'parent', 'slider', 'validity_flags')¶
- _get_live_extrapolation_values() tuple[float, float, float]¶
Read current text box values without correcting them.
- allowBatch() bool¶
Tell the caller that we don’t accept multiple data instances.
- allowSwap() bool¶
Tell the caller that we can’t swap data.
- apply_parameters_from_ui()¶
Sets extrapolation parameters from the text boxes into the model and slider.
- calculate_invariant() None¶
Use twisted to thread the calculations away
- calculate_thread(extrapolation: str | None) None¶
Perform Invariant calculations.
This function runs in a worker thread (deferToThread). It must not update widgets directly — use reactor.callFromThread to schedule GUI updates.
- checkVolFrac() None¶
Check if volfrac1 is strictly between 0 and 1.
- check_extrapolation_values() None¶
Check validity of extrapolation text boxes such that: data_q_min < point_1 < point_2 < point_3 < Q_MAXIMUM and point_2 < data_q_max. If invalid, set background color of text box to red.
- check_status() None¶
Check the status of the input fields and enable the calculate button if: - Data is present, - The selected radio button corresponds to a field with a valid value.
- closeEvent(event) None¶
Overwrite QDialog close method to allow for custom widget close.
- compute_high() tuple[float | Literal['ERROR'], float | Literal['ERROR'], bool]¶
Compute high-q extrapolation and return (qstar, qstar_err, success).
- compute_low() tuple[float | Literal['ERROR'], float | Literal['ERROR'], bool]¶
Compute low-q extrapolation and return (qstar, qstar_err, success).
- contrast_volfrac_toggle() None¶
Enable editing of the correct fields based on whether Contrast or VolFrac is selected.
- correct_extrapolation_values() None¶
Correct invalid extrapolation text box values to nearest valid value.
- deferredPlot(model: QStandardItemModel, extrapolation: str | None = None) None¶
Run the GUI/model update in the main thread
- enableStatus() None¶
Enable the status button.
- enable_calculation(enabled: bool = True, display: str = 'Calculate') None¶
Enable or disable the calculation button and display appropriate reason.
- Parameters:
enabled – enable or disable the calculation button, default is True
display – display text for the calculation button, default is “Calculate”
- enable_extrapolation_text(state: bool) None¶
Enable or disable the text fields in the extrapolation tab
- Parameters:
state – enable or disable the text fields
- enable_low_q_power_options(state: bool) None¶
Show and enable the Fit and Fix options if Power is selected.
- ext = 'inv'¶
- property extrapolation_parameters: ExtrapolationParameters | None¶
- format_sig_fig(value: float) str¶
Format a float to 7 significant figures as a string.
- get_high_q_extrapolation_lower_limit() float¶
Get the high Q extrapolation lower limit
- Returns:
high Q extrapolation lower limit
- get_low_q_extrapolation_upper_limit() float¶
Get the low Q extrapolation upper limit
- Returns:
low Q extrapolation upper limit
- highFitAndFixToggle_ex() None¶
Enable editing of power exponent if Fix for high Q is checked.
- initialize_variables() None¶
Initialize class variables.
- isSerializable() bool¶
Tell the caller that this perspective writes its state.
- lowFitAndFixToggle_ex() None¶
Enable editing of power exponent if Fix for low Q is checked.
- lowGuinierAndPowerToggle_ex() None¶
If Power is selected, Fit and Fix radio buttons are visible.
- name = 'Invariant'¶
- onHelp()¶
Display help when clicking on Help button.
- onStatus()¶
Display Invariant Details panel when clicking on Status button.
- on_calculation_failed(reason: Failure) None¶
Handle calculation failure.
- on_extrapolation_highq_check_changed() None¶
Handle the state change of the high Q extrapolation checkbox.
- on_extrapolation_lowq_check_changed() None¶
Handle the state change of the low Q extrapolation checkbox.
- on_extrapolation_slider_changed(state: ExtrapolationParameters) None¶
Handle when user changes any of the extrapolation slider values.
- on_extrapolation_text_edited() None¶
Handle when user finishes editing any of the extrapolation text boxes.
- on_extrapolation_text_editing() None¶
Handle when user edits any of the extrapolation text boxes.
- plot_result(model: QStandardItemModel) None¶
Plot result of calculation
- removeData(data_list: list | None = None) None¶
Remove the existing data reference from the Invariant Perspective.
- reset()¶
Reset the fitting perspective to an empty state.
- serializeAll() dict¶
Serialize the invariant state so data can be saved. Invariant is not batch-ready so this will only effect a single page. :return: {data-id: {self.name: {invariant-state}}}
- serializeCurrentPage() dict¶
Serialize and return a dictionary of {data_id: invariant-state}. Return empty dictionary if no data. :return: {data-id: {self.name: {invariant-state}}}
- serializePage() dict¶
Serializes full state of this invariant page. Called by Save Analysis. :return: {invariant-state}
- serializeState() dict¶
Collects all active params into a dictionary of {name: value}. :return: {name: value}
- setClosable(value: bool = True) None¶
Allow outsiders to close this widget.
- setData(data_item: QStandardItem = None, is_batch: bool = False) None¶
Obtain a QStandardItem object and dissect it to get Data1D/2D. Pass it over to the calculator.
- set_high_q_extrapolation_lower_limit(value: float) None¶
Set the high Q extrapolation lower limit
- Parameters:
value – high Q extrapolation lower limit
- set_low_q_extrapolation_upper_limit(value: float) None¶
Set the low Q extrapolation upper limit
- Parameters:
value – low Q extrapolation upper limit
- setupMapper() None¶
Set up the mapper.
- setupModel() None¶
Setup the model for the invariant panel.
- setupSlots()¶
Setup slots for the buttons and checkboxes.
- setup_default_enablement() None¶
Setup the default enablement of the widgets.
- setup_slider() None¶
Setup the extrapolation slider.
- setup_tooltips() None¶
Setup tooltips for the widgets
- setup_validators() None¶
Set validators for line edits.
- staticMetaObject = PySide6.QtCore.QMetaObject("InvariantWindow" inherits "QDialog": )¶
- property title: str¶
Provides the perspective name.
- updateFromGui() None¶
Update model when new user inputs.
- updateFromParameters(params: dict) None¶
Called by Open Project and Open Analysis. :param params: {param_name: value} :return: None
- update_details_widget() None¶
On demand update of the details widget.
- update_from_model() None¶
Update the globals based on the data in the model.
- update_model_from_thread(widget_id: int, value: float) None¶
Update the model in the main thread.
- update_progress_bars() None¶
Update progress bars based on Q* values from the model.
sas.qtgui.Perspectives.Invariant.InvariantUtils module¶
- sas.qtgui.Perspectives.Invariant.InvariantUtils.safe_float(x: str)¶
String to float method that returns zero if parsing failed