sprit 0.1.71.dev0__tar.gz → 0.1.73.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sprit-0.1.71.dev0/sprit.egg-info → sprit-0.1.73.dev0}/PKG-INFO +1 -1
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/pyproject.toml +1 -1
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/setup.py +1 -1
- sprit-0.1.73.dev0/sprit/resources/settings/gui_theme.json +1 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/sprit_cli.py +1 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/sprit_gui.py +138 -133
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/sprit_hvsr.py +8180 -8022
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/sprit_jupyter_UI.py +42 -25
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0/sprit.egg-info}/PKG-INFO +1 -1
- sprit-0.1.71.dev0/sprit/resources/settings/gui_theme.json +0 -1
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/LICENSE +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/README.md +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/setup.cfg +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/__init__.py +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/icon/sprit_icon.ico +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/icon/sprit_icon.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/icon/sprit_icon.xcf +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/icon/sprit_icon_alpha.ico +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/icon/sprit_icon_thickly.xcf +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/parameters.csv +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/rs3dv5plus_metadata.inv +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/rs3dv7_metadata.inv +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/Batch_SampleData.csv +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite1.hvsr +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite10_BNE_4_AM.RAC84.00.2023.191_2023-07-10_2237-2259.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite1_AM.RAC84.00.2023.046_2023-02-15_1704-1734.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite2_AM.RAC84.00.2023-02-15_2132-2200.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite3_AM.RAC84.00.2023.199_2023-07-18_1432-1455.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite4_AM.RAC84.00.2023.199_2023-07-18_1609-1629.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite5_AM.RAC84.00.2023.199_2023-07-18_2039-2100.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite6_AM.RAC84.00.2023.192_2023-07-11_1510-1528.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite7_BNE_4_AM.RAC84.00.2023.191_2023-07-10_2237-2259.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite8_BNE_6_AM.RAC84.00.2023.191_2023-07-10_1806-1825.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/sample_data/SampleHVSRSite9_BNE-2_AM.RAC84.00.2023.192_2023-07-11_0000-0011.MSEED +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/settings/instrument_settings.inst +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/settings/processing_settings.proc +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/LICENSE +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/README.md +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/border-accent-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/border-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/border-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/border-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/border-invalid.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/card.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-tri-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-tri-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-tri-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-unsel-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-unsel-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-unsel-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/check-unsel-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/combo-button-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/combo-button-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/combo-button-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/down.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/empty.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/hor-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/hor-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/hor-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/notebook.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/off-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/off-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/off-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/on-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/on-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/on-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-tri-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-tri-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-tri-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-unsel-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-unsel-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-unsel-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/radio-unsel-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/rect-accent-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/rect-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/rect-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/rect-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/right.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/scale-hor.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/scale-vert.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/separator.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/sizegrip.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/spin-button-down-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/spin-button-down-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/spin-button-up.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/tab-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/tab-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/tab-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-hor-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-hor-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-hor-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-vert-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-vert-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/thumb-vert-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/tree-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/tree-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/up.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/vert-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/vert-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark/vert-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-dark.tcl +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/border-accent-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/border-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/border-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/border-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/border-invalid.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/card.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-tri-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-tri-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-tri-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-unsel-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-unsel-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-unsel-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/check-unsel-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/combo-button-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/combo-button-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/combo-button-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/down-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/down.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/empty.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/hor-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/hor-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/hor-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/notebook.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/off-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/off-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/off-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/on-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/on-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/on-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-tri-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-tri-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-tri-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-unsel-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-unsel-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-unsel-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/radio-unsel-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/rect-accent-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/rect-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/rect-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/rect-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/right-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/right.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/scale-hor.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/scale-vert.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/separator.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/sizegrip.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/spin-button-down-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/spin-button-down-focus.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/spin-button-up.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/tab-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/tab-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/tab-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-hor-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-hor-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-hor-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-vert-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-vert-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/thumb-vert-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/tree-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/tree-pressed.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/up.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/vert-accent.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/vert-basic.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light/vert-hover.png +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/resources/themes/forest-light.tcl +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit/sprit_utils.py +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit.egg-info/SOURCES.txt +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit.egg-info/dependency_links.txt +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit.egg-info/entry_points.txt +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit.egg-info/requires.txt +0 -0
- {sprit-0.1.71.dev0 → sprit-0.1.73.dev0}/sprit.egg-info/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ name = "sprit"
|
|
|
7
7
|
authors = [{name="Riley Balikian"}, {name="Hongyu Xaio"}]
|
|
8
8
|
dynamic = ["readme"]
|
|
9
9
|
license = {file = "LICENSE"}
|
|
10
|
-
version="0.1.
|
|
10
|
+
version="0.1.73-dev"
|
|
11
11
|
description = "A package for processing and analyzing HVSR (Horizontal to Vertical Spectral Ratio) data"
|
|
12
12
|
keywords = ["HVSR", "seismic", "horizontal to vertical spectral ratio", "obspy", 'geology', 'geophysics', 'geotechnical']
|
|
13
13
|
requires-python = ">=3.9"
|
|
@@ -7,7 +7,7 @@ setup(
|
|
|
7
7
|
name="sprit",
|
|
8
8
|
author= "Riley Balikian",
|
|
9
9
|
author_email = "balikian@illinois.edu",
|
|
10
|
-
version="0.1.
|
|
10
|
+
version="0.1.73-dev",
|
|
11
11
|
package_data={'sprit': ['resources/*', 'resources/icon/*', 'resources/themes/*', 'resources/themes/forest-dark/*',
|
|
12
12
|
'resources/themes/forest-light/*', 'resources/sample_data/*','resources/settings/*']},
|
|
13
13
|
long_description_content_type="text/markdown",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"theme_name": "forest-dark"}
|
|
@@ -36,6 +36,7 @@ except: #For local testing
|
|
|
36
36
|
|
|
37
37
|
global spritApp
|
|
38
38
|
global current_theme_name
|
|
39
|
+
global SPRIT_App
|
|
39
40
|
|
|
40
41
|
resource_dir = pathlib.Path(pkg_resources.resource_filename(__name__, 'resources/'))
|
|
41
42
|
settings_dir = resource_dir.joinpath('settings')
|
|
@@ -44,109 +45,6 @@ with open(gui_theme_file, 'r') as f:
|
|
|
44
45
|
curr_gui_dict = json.load(f)
|
|
45
46
|
current_theme_name = curr_gui_dict['theme_name']
|
|
46
47
|
|
|
47
|
-
#Decorator that catches errors and warnings (to be modified later for gui)
|
|
48
|
-
def catch_errors(func):
|
|
49
|
-
#Define a local function to get a list of warnings that we'll use in the output
|
|
50
|
-
def get_warning_msg_list(w):
|
|
51
|
-
messageList = []
|
|
52
|
-
#Collect warnings that happened before we got to the error
|
|
53
|
-
if w:
|
|
54
|
-
hasWarnings = True
|
|
55
|
-
for wi in w:
|
|
56
|
-
warning_category = type(wi.message).__name__.title().replace('warning','Warning')
|
|
57
|
-
#if w.line is None:
|
|
58
|
-
# w.line = linecache.getline(wi.filename, wi.lineno)
|
|
59
|
-
warning_lineNo = wi.lineno
|
|
60
|
-
warning_message = str(wi.message)
|
|
61
|
-
# append the warning category and message to messageList so we get all warnings
|
|
62
|
-
messageList.append(f'{warning_category} ({warning_lineNo}): {warning_message}')
|
|
63
|
-
return messageList
|
|
64
|
-
|
|
65
|
-
# use functools.wraps to preserve the original function's metadata
|
|
66
|
-
@functools.wraps(func)
|
|
67
|
-
def wrapper(*args, **kwargs):
|
|
68
|
-
result = None
|
|
69
|
-
# use the global keyword to access the error_message and error_category variables
|
|
70
|
-
global error_message
|
|
71
|
-
global error_category
|
|
72
|
-
|
|
73
|
-
messageList = []
|
|
74
|
-
hasWarnings = False
|
|
75
|
-
# use a try-except block to catch any exceptions
|
|
76
|
-
#result = func(*args, **kwargs)
|
|
77
|
-
try:
|
|
78
|
-
# use a context manager to catch any warnings
|
|
79
|
-
with warnings.catch_warnings(record=True) as w:
|
|
80
|
-
warnings.simplefilter('always')
|
|
81
|
-
# call the original function with the given arguments
|
|
82
|
-
result = func(*args, **kwargs)
|
|
83
|
-
|
|
84
|
-
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
85
|
-
messageList = get_warning_msg_list(w)
|
|
86
|
-
if messageList == []:
|
|
87
|
-
return result
|
|
88
|
-
else:
|
|
89
|
-
warningMessage = "WARNING:"
|
|
90
|
-
for msg in messageList:
|
|
91
|
-
warningMessage = "\n {}".format(msg)
|
|
92
|
-
|
|
93
|
-
messagebox.showwarning(title='WARNINGS', message=warningMessage)
|
|
94
|
-
|
|
95
|
-
except Exception as e:
|
|
96
|
-
messageList = get_warning_msg_list(w)
|
|
97
|
-
errorObj = sys.exc_info()[2]
|
|
98
|
-
|
|
99
|
-
mainErrText = sys.exc_info()[1]
|
|
100
|
-
|
|
101
|
-
mainErrTb = traceback.extract_tb(sys.exc_info()[2])[-1]
|
|
102
|
-
mainErrFilePath = pathlib.Path(mainErrTb[0])
|
|
103
|
-
|
|
104
|
-
mainErrFileName = mainErrFilePath.stem
|
|
105
|
-
mainErrLineNo = mainErrTb[1]
|
|
106
|
-
mainErrFunc = mainErrTb[2]
|
|
107
|
-
mainErrCodeLine = mainErrTb[3]
|
|
108
|
-
|
|
109
|
-
errLineNo1 = str(traceback.extract_tb(sys.exc_info()[2])[-1].lineno)
|
|
110
|
-
error_category = type(e).__name__.title().replace('error', 'Error')
|
|
111
|
-
error_message = f"{e} ({errLineNo1})"
|
|
112
|
-
|
|
113
|
-
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
114
|
-
warningMessageList = get_warning_msg_list(w)
|
|
115
|
-
|
|
116
|
-
#Build error messages
|
|
117
|
-
tbTuple0 = sys.exc_info()[0]
|
|
118
|
-
tbTuple1 = sys.exc_info()[1]
|
|
119
|
-
tbTuple2 = traceback.extract_tb(sys.exc_info()[2])
|
|
120
|
-
|
|
121
|
-
logMsg = f"**ERROR**\n{tbTuple0.__name__}: {tbTuple1}"
|
|
122
|
-
dialogErrMsg = logMsg.split(':')[1]
|
|
123
|
-
for tb in tbTuple2:
|
|
124
|
-
logMsg = logMsg + '\n\t'
|
|
125
|
-
logMsg = logMsg + f"{pathlib.Path(tb[0]).stem}.{tb[2]}(): {tb[3]} (Line {tb[1]})"
|
|
126
|
-
dialogErrMsg = dialogErrMsg + f"\n{pathlib.Path(tb[0]).stem}.{tb[2]}(), Line {tb[1]}"
|
|
127
|
-
logMsg = logMsg + '\n\n'
|
|
128
|
-
|
|
129
|
-
#fullErrorMessage = f'ERROR {mainErrFileName}.{mainErrFunc} ({mainErrLineNo}): {mainErrText} \n\n {mainErrFileName} Line {mainErrLineNo}: {mainErrCodeLine}.'
|
|
130
|
-
if messageList == []:
|
|
131
|
-
pass
|
|
132
|
-
else:
|
|
133
|
-
dialogErrMsg = dialogErrMsg+"\n\n Additional Warnings along the way. See Log for more information."
|
|
134
|
-
logMsg = logMsg + "\n\n\t *WARNING(S)*\n\tAdditional Warnings along the way:"
|
|
135
|
-
for addMsg in warningMessageList:
|
|
136
|
-
logMsg = logMsg+"\n\t\t{}".format(addMsg)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
SPRIT_App.log_errorMsg(spritApp, logMsg)
|
|
140
|
-
|
|
141
|
-
messagebox.showerror(title=f'ERROR ({error_category})',
|
|
142
|
-
message=dialogErrMsg)
|
|
143
|
-
update_progress_bars(100)
|
|
144
|
-
|
|
145
|
-
# return the result of the function or the error/warning messages and categories
|
|
146
|
-
return result
|
|
147
|
-
# return the wrapper function
|
|
148
|
-
return wrapper
|
|
149
|
-
|
|
150
48
|
class SPRIT_App:
|
|
151
49
|
global spritApp
|
|
152
50
|
def __init__(self, master):
|
|
@@ -493,51 +391,51 @@ class SPRIT_App:
|
|
|
493
391
|
self.tab_control.select(self.preview_data_tab)
|
|
494
392
|
return self.hvsr_data
|
|
495
393
|
|
|
496
|
-
def report_results(hvsr_results):
|
|
497
|
-
self.curveTest1ResultText.configure(text=hvsr_results['BestPeak']['Report']['Lw'][:-1])
|
|
498
|
-
self.curveTest1Result.configure(text=hvsr_results['BestPeak']['Report']['Lw'][-1])
|
|
394
|
+
def report_results(hvsr_results, azimuth='HV'):
|
|
395
|
+
self.curveTest1ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Lw'][:-1])
|
|
396
|
+
self.curveTest1Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Lw'][-1])
|
|
499
397
|
|
|
500
|
-
self.curveTest2ResultText.configure(text=hvsr_results['BestPeak']['Report']['Nc'][:-1])
|
|
501
|
-
self.curveTest2Result.configure(text=hvsr_results['BestPeak']['Report']['Nc'][-1])
|
|
398
|
+
self.curveTest2ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Nc'][:-1])
|
|
399
|
+
self.curveTest2Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Nc'][-1])
|
|
502
400
|
|
|
503
|
-
self.curveTest3ResultText.configure(text=hvsr_results['BestPeak']['Report']['σ_A(f)'][:-1])
|
|
504
|
-
self.curveTest3Result.configure(text=hvsr_results['BestPeak']['Report']['σ_A(f)'][-1])
|
|
401
|
+
self.curveTest3ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['σ_A(f)'][:-1])
|
|
402
|
+
self.curveTest3Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['σ_A(f)'][-1])
|
|
505
403
|
|
|
506
|
-
curvePass = (hvsr_results['BestPeak']['PassList']['WindowLengthFreq.'] +
|
|
507
|
-
hvsr_results['BestPeak']['PassList']['SignificantCycles']+
|
|
508
|
-
hvsr_results['BestPeak']['PassList']['LowCurveStDevOverTime']) > 2
|
|
404
|
+
curvePass = (hvsr_results['BestPeak'][azimuth]['PassList']['WindowLengthFreq.'] +
|
|
405
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['SignificantCycles']+
|
|
406
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['LowCurveStDevOverTime']) > 2
|
|
509
407
|
if curvePass:
|
|
510
408
|
self.totalCurveResult.configure(text=sprit_utils.check_mark(), font=("TkDefaultFont", 16, "bold"), foreground='green')
|
|
511
409
|
else:
|
|
512
410
|
self.totalCurveResult.configure(text=sprit_utils.x_mark(), font=("TkDefaultFont", 16, "bold"), foreground='red')
|
|
513
411
|
|
|
514
|
-
self.peakTest1ResultText.configure(text=hvsr_results['BestPeak']['Report']['A(f-)'][:-1])
|
|
515
|
-
self.peakTest1Result.configure(text=hvsr_results['BestPeak']['Report']['A(f-)'][-1])
|
|
412
|
+
self.peakTest1ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f-)'][:-1])
|
|
413
|
+
self.peakTest1Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f-)'][-1])
|
|
516
414
|
|
|
517
|
-
self.peakTest2ResultText.configure(text=hvsr_results['BestPeak']['Report']['A(f+)'][:-1])
|
|
518
|
-
self.peakTest2Result.configure(text=hvsr_results['BestPeak']['Report']['A(f+)'][-1])
|
|
415
|
+
self.peakTest2ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f+)'][:-1])
|
|
416
|
+
self.peakTest2Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f+)'][-1])
|
|
519
417
|
|
|
520
|
-
self.peakTest3ResultText.configure(text=hvsr_results['BestPeak']['Report']['A0'][:-1])
|
|
521
|
-
self.peakTest3Result.configure(text=hvsr_results['BestPeak']['Report']['A0'][-1])
|
|
418
|
+
self.peakTest3ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A0'][:-1])
|
|
419
|
+
self.peakTest3Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A0'][-1])
|
|
522
420
|
|
|
523
|
-
self.peakTest4ResultText.configure(text=hvsr_results['BestPeak']['Report']['P-'][:5] + ' and ' +hvsr_results['BestPeak']['Report']['P+'][:-1])
|
|
524
|
-
if hvsr_results['BestPeak']['PassList']['FreqStability']:
|
|
421
|
+
self.peakTest4ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['P-'][:5] + ' and ' +hvsr_results['BestPeak'][azimuth]['Report']['P+'][:-1])
|
|
422
|
+
if hvsr_results['BestPeak'][azimuth]['PassList']['FreqStability']:
|
|
525
423
|
self.peakTest4Result.configure(text=sprit_utils.check_mark())
|
|
526
424
|
else:
|
|
527
425
|
self.peakTest4Result.configure(text=sprit_utils.x_mark())
|
|
528
426
|
|
|
529
|
-
self.peakTest5ResultText.configure(text=hvsr_results['BestPeak']['Report']['Sf'][:-1])
|
|
530
|
-
self.peakTest5Result.configure(text=hvsr_results['BestPeak']['Report']['Sf'][-1])
|
|
427
|
+
self.peakTest5ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sf'][:-1])
|
|
428
|
+
self.peakTest5Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sf'][-1])
|
|
531
429
|
|
|
532
|
-
self.peakTest6ResultText.configure(text=hvsr_results['BestPeak']['Report']['Sa'][:-1])
|
|
533
|
-
self.peakTest6Result.configure(text=hvsr_results['BestPeak']['Report']['Sa'][-1])
|
|
534
|
-
|
|
535
|
-
peakPass = (hvsr_results['BestPeak']['PassList']['PeakProminenceBelow'] +
|
|
536
|
-
hvsr_results['BestPeak']['PassList']['PeakProminenceAbove']+
|
|
537
|
-
hvsr_results['BestPeak']['PassList']['PeakAmpClarity']+
|
|
538
|
-
hvsr_results['BestPeak']['PassList']['FreqStability']+
|
|
539
|
-
hvsr_results['BestPeak']['PassList']['PeakStability_FreqStD']+
|
|
540
|
-
hvsr_results['BestPeak']['PassList']['PeakStability_AmpStD']) >= 5
|
|
430
|
+
self.peakTest6ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sa'][:-1])
|
|
431
|
+
self.peakTest6Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sa'][-1])
|
|
432
|
+
|
|
433
|
+
peakPass = (hvsr_results['BestPeak'][azimuth]['PassList']['PeakProminenceBelow'] +
|
|
434
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakProminenceAbove']+
|
|
435
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakAmpClarity']+
|
|
436
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['FreqStability']+
|
|
437
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakStability_FreqStD']+
|
|
438
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakStability_AmpStD']) >= 5
|
|
541
439
|
if peakPass:
|
|
542
440
|
self.totalPeakResult.configure(text=sprit_utils.check_mark(), font=("TkDefaultFont", 16, "bold"), foreground='green')
|
|
543
441
|
else:
|
|
@@ -598,7 +496,7 @@ class SPRIT_App:
|
|
|
598
496
|
rmse_thresh=98,
|
|
599
497
|
use_percentile=True,
|
|
600
498
|
use_hv_curve = False,
|
|
601
|
-
|
|
499
|
+
show_outlier_plot = False)
|
|
602
500
|
update_progress_bars(prog_percent=60)
|
|
603
501
|
|
|
604
502
|
self.log_text.insert('end', f"{self.procHVSR_call['text']}\n\n")
|
|
@@ -3085,6 +2983,113 @@ class SPRIT_App:
|
|
|
3085
2983
|
# Pack tab control
|
|
3086
2984
|
self.tab_control.pack(expand=True, fill="both")
|
|
3087
2985
|
|
|
2986
|
+
|
|
2987
|
+
#Decorator that catches errors and warnings (to be modified later for gui)
|
|
2988
|
+
def catch_errors(func):
|
|
2989
|
+
global spritApp
|
|
2990
|
+
|
|
2991
|
+
#Define a local function to get a list of warnings that we'll use in the output
|
|
2992
|
+
def get_warning_msg_list(w):
|
|
2993
|
+
messageList = []
|
|
2994
|
+
#Collect warnings that happened before we got to the error
|
|
2995
|
+
if w:
|
|
2996
|
+
hasWarnings = True
|
|
2997
|
+
for wi in w:
|
|
2998
|
+
warning_category = type(wi.message).__name__.title().replace('warning','Warning')
|
|
2999
|
+
#if w.line is None:
|
|
3000
|
+
# w.line = linecache.getline(wi.filename, wi.lineno)
|
|
3001
|
+
warning_lineNo = wi.lineno
|
|
3002
|
+
warning_message = str(wi.message)
|
|
3003
|
+
# append the warning category and message to messageList so we get all warnings
|
|
3004
|
+
messageList.append(f'{warning_category} ({warning_lineNo}): {warning_message}')
|
|
3005
|
+
return messageList
|
|
3006
|
+
|
|
3007
|
+
# use functools.wraps to preserve the original function's metadata
|
|
3008
|
+
@functools.wraps(func)
|
|
3009
|
+
def wrapper(*args, **kwargs):
|
|
3010
|
+
result = None
|
|
3011
|
+
# use the global keyword to access the error_message and error_category variables
|
|
3012
|
+
global error_message
|
|
3013
|
+
global error_category
|
|
3014
|
+
global spritApp
|
|
3015
|
+
|
|
3016
|
+
messageList = []
|
|
3017
|
+
hasWarnings = False
|
|
3018
|
+
# use a try-except block to catch any exceptions
|
|
3019
|
+
#result = func(*args, **kwargs)
|
|
3020
|
+
try:
|
|
3021
|
+
# use a context manager to catch any warnings
|
|
3022
|
+
with warnings.catch_warnings(record=True) as w:
|
|
3023
|
+
warnings.simplefilter('always')
|
|
3024
|
+
# call the original function with the given arguments
|
|
3025
|
+
result = func(*args, **kwargs)
|
|
3026
|
+
|
|
3027
|
+
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
3028
|
+
messageList = get_warning_msg_list(w)
|
|
3029
|
+
if messageList == []:
|
|
3030
|
+
return result
|
|
3031
|
+
else:
|
|
3032
|
+
warningMessage = "WARNING:"
|
|
3033
|
+
for msg in messageList:
|
|
3034
|
+
warningMessage = "\n {}".format(msg)
|
|
3035
|
+
|
|
3036
|
+
messagebox.showwarning(title='WARNINGS', message=warningMessage)
|
|
3037
|
+
|
|
3038
|
+
except Exception as e:
|
|
3039
|
+
messageList = get_warning_msg_list(w)
|
|
3040
|
+
errorObj = sys.exc_info()[2]
|
|
3041
|
+
|
|
3042
|
+
mainErrText = sys.exc_info()[1]
|
|
3043
|
+
|
|
3044
|
+
mainErrTb = traceback.extract_tb(sys.exc_info()[2])[-1]
|
|
3045
|
+
mainErrFilePath = pathlib.Path(mainErrTb[0])
|
|
3046
|
+
|
|
3047
|
+
mainErrFileName = mainErrFilePath.stem
|
|
3048
|
+
mainErrLineNo = mainErrTb[1]
|
|
3049
|
+
mainErrFunc = mainErrTb[2]
|
|
3050
|
+
mainErrCodeLine = mainErrTb[3]
|
|
3051
|
+
|
|
3052
|
+
errLineNo1 = str(traceback.extract_tb(sys.exc_info()[2])[-1].lineno)
|
|
3053
|
+
error_category = type(e).__name__.title().replace('error', 'Error')
|
|
3054
|
+
error_message = f"{e} ({errLineNo1})"
|
|
3055
|
+
|
|
3056
|
+
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
3057
|
+
warningMessageList = get_warning_msg_list(w)
|
|
3058
|
+
|
|
3059
|
+
#Build error messages
|
|
3060
|
+
tbTuple0 = sys.exc_info()[0]
|
|
3061
|
+
tbTuple1 = sys.exc_info()[1]
|
|
3062
|
+
tbTuple2 = traceback.extract_tb(sys.exc_info()[2])
|
|
3063
|
+
|
|
3064
|
+
logMsg = f"**ERROR**\n{tbTuple0.__name__}: {tbTuple1}"
|
|
3065
|
+
dialogErrMsg = logMsg.split(':')[1]
|
|
3066
|
+
for tb in tbTuple2:
|
|
3067
|
+
logMsg = logMsg + '\n\t'
|
|
3068
|
+
logMsg = logMsg + f"{pathlib.Path(tb[0]).stem}.{tb[2]}(): {tb[3]} (Line {tb[1]})"
|
|
3069
|
+
dialogErrMsg = dialogErrMsg + f"\n{pathlib.Path(tb[0]).stem}.{tb[2]}(), Line {tb[1]}"
|
|
3070
|
+
logMsg = logMsg + '\n\n'
|
|
3071
|
+
|
|
3072
|
+
#fullErrorMessage = f'ERROR {mainErrFileName}.{mainErrFunc} ({mainErrLineNo}): {mainErrText} \n\n {mainErrFileName} Line {mainErrLineNo}: {mainErrCodeLine}.'
|
|
3073
|
+
if messageList == []:
|
|
3074
|
+
pass
|
|
3075
|
+
else:
|
|
3076
|
+
dialogErrMsg = dialogErrMsg+"\n\n Additional Warnings along the way. See Log for more information."
|
|
3077
|
+
logMsg = logMsg + "\n\n\t *WARNING(S)*\n\tAdditional Warnings along the way:"
|
|
3078
|
+
for addMsg in warningMessageList:
|
|
3079
|
+
logMsg = logMsg+"\n\t\t{}".format(addMsg)
|
|
3080
|
+
|
|
3081
|
+
|
|
3082
|
+
SPRIT_App.log_errorMsg(spritApp, logMsg)
|
|
3083
|
+
|
|
3084
|
+
messagebox.showerror(title=f'ERROR ({error_category})',
|
|
3085
|
+
message=dialogErrMsg)
|
|
3086
|
+
update_progress_bars(100)
|
|
3087
|
+
|
|
3088
|
+
# return the result of the function or the error/warning messages and categories
|
|
3089
|
+
return result
|
|
3090
|
+
# return the wrapper function
|
|
3091
|
+
return wrapper
|
|
3092
|
+
|
|
3088
3093
|
def on_closing():
|
|
3089
3094
|
plt.close('all')
|
|
3090
3095
|
root.destroy()
|