Compare commits

..

8 commits
dev-ui ... main

Author SHA1 Message Date
Vic
88567487dd Удалить main.exe 2026-06-12 09:59:40 +03:00
Vic
e94817c746 Удалить main.py 2026-06-12 09:59:29 +03:00
Vic
b483feca25 Удалить fix_imports.py 2026-06-12 09:59:17 +03:00
Vic
51f4c25ede Загрузить файлы в «/» 2026-06-12 09:43:37 +03:00
Vic Sergeev
968a41a6cd Merge dev-ui into main - resolve workspace.xml conflict 2026-06-12 09:34:19 +03:00
Vic Sergeev
0a81b90a0a working 2026-06-12 09:32:43 +03:00
Vic Sergeev
5f46620152 working 2026-06-12 09:29:07 +03:00
Vic
05f4db3ccd Initial commit 2026-06-12 00:43:31 +03:00
8 changed files with 12 additions and 572 deletions

BIN
.gitignore vendored

Binary file not shown.

465
.idea/workspace.xml generated
View file

@ -1,465 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="01167edf-a4fe-4b9b-bd49-22d768ae9f8b" name="Changes" comment="working">
<change afterPath="$PROJECT_DIR$/main.dist/81d243bd2c585b0f4821__mypyc.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PIL/_avif.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PIL/_imaging.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PIL/_imagingcms.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PIL/_imagingmath.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PIL/_webp.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/QtCore.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/QtGui.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/QtNetwork.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/QtWidgets.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/iconengines/qsvgicon.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qgif.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qicns.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qico.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qjpeg.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qpdf.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qsvg.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qtga.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qtiff.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qwbmp.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/imageformats/qwebp.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/platforms/qdirect2d.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/platforms/qminimal.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/platforms/qoffscreen.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/platforms/qwindows.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/styles/qmodernwindowsstyle.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/tls/qcertonlybackend.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/tls/qopensslbackend.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/PySide6/qt-plugins/tls/qschannelbackend.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_asyncio.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_bz2.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_ctypes.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_decimal.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_elementtree.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_hashlib.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_lzma.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_multiprocessing.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_overlapped.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_queue.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_socket.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_ssl.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_uuid.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/_wmi.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/certifi/cacert.pem" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/charset_normalizer/cd.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/charset_normalizer/md.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/contourpy/_contourpy.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/cv2/cv2.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/imagecodecs/_shared.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/kiwisolver/_cext.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/libcrypto-3.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/libffi-8.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/libssl-3.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/lxml/_elementpath.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/lxml/builder.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/lxml/etree.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/lxml/objectify.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/lxml/sax.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/main.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/_c_internal_utils.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/_image.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/_path.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/_qhull.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/_tri.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/backends/_backend_agg.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/ft2font.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/cmex10.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/cmmi10.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/cmr10.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/cmsy10.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/cmtt10.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pagd8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pagdo8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pagk8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pagko8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pbkd8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pbkdi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pbkl8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pbkli8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pcrb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pcrbo8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pcrr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pcrro8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvb8an.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvbo8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvbo8an.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvl8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvlo8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvr8an.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvro8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/phvro8an.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pncb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pncbi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pncr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pncri8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pplb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pplbi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pplr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pplri8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/psyr.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/ptmb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/ptmbi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/ptmr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/ptmri8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/putb8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/putbi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/putr8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/putri8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pzcmi8a.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/afm/pzdr.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Bold.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-BoldOblique.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Courier-Oblique.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Courier.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Bold.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-BoldOblique.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica-Oblique.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Helvetica.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Symbol.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Bold.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Times-BoldItalic.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Italic.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/Times-Roman.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/ZapfDingbats.afm" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/pdfcorefonts/readme.txt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Bold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSans-BoldOblique.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSans-Oblique.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSans.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSansDisplay.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Bold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-BoldOblique.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono-Oblique.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSansMono.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Bold.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-BoldItalic.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSerif-Italic.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSerif.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/DejaVuSerifDisplay.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/LICENSE_DEJAVU" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/LICENSE_STIX" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXGeneral.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXGeneralBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXGeneralBolIta.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXGeneralItalic.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXNonUni.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXNonUniBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXNonUniBolIta.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXNonUniIta.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizFiveSymReg.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizFourSymReg.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizOneSymReg.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizThreeSymReg.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymBol.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/STIXSizTwoSymReg.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmb10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmex10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmmi10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmr10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmss10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmsy10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/fonts/ttf/cmtt10.ttf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/back-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/back.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/back.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/back.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/back_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/filesave-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/filesave.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/filesave.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/filesave.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/filesave_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/forward-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/forward.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/forward.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/forward.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/forward_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/hand.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/hand.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/hand.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/help-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/help.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/help.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/help.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/help_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/home-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/home.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/home.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/home.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/home_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/matplotlib.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/matplotlib.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/matplotlib.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/matplotlib_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/move-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/move.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/move.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/move.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/move_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/qt4_editor_options.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/qt4_editor_options.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/qt4_editor_options.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/qt4_editor_options_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/subplots-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/subplots.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/subplots.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/subplots.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/subplots_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/zoom_to_rect-symbolic.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/zoom_to_rect.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/zoom_to_rect.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/zoom_to_rect.svg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/images/zoom_to_rect_large.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/kpsewhich.lua" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/matplotlibrc" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/plot_directive/plot_directive.css" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/Solarize_Light2.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/_classic_test_patch.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/_mpl-gallery-nogrid.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/_mpl-gallery.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/bmh.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/classic.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/dark_background.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/fast.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/fivethirtyeight.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/ggplot.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/grayscale.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/petroff10.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-bright.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-colorblind.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-dark-palette.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-dark.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-darkgrid.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-deep.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-muted.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-notebook.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-paper.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-pastel.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-poster.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-talk.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-ticks.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-white.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8-whitegrid.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/seaborn-v0_8.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/matplotlib/mpl-data/stylelib/tableau-colorblind10.mplstyle" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/msvcp140.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/msvcp140_1.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/msvcp140_2.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy.libs/libscipy_openblas64_-63c857e738469261263c764a36be9436.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy.libs/msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/_core/_multiarray_tests.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/_core/_multiarray_umath.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/fft/_pocketfft_umath.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/linalg/_umath_linalg.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_bounded_integers.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_common.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_generator.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_mt19937.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_pcg64.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_philox.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/_sfc64.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/bit_generator.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/numpy/random/mtrand.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/pyexpat.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/pyside6.abi3.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/python3.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/python312.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6core.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6gui.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6network.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6pdf.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6svg.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/qt6widgets.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy.libs/libscipy_openblas-64eda39e79589aedb16f58e5547eb599.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/_cyutility.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/_lib/_ccallback_c.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/_lib/_uarray/_uarray.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/_lib/messagestream.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/fft/_pocketfft/pypocketfft.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/integrate/_dop.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/integrate/_odepack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/integrate/_quadpack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/integrate/_vode.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_dfitpack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_dierckx.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_fitpack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_interpnd.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_ppoly.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_rbfinterp_pythran.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/interpolate/_rgi_cython.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_batched_linalg.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_cythonized_array_utils.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_decomp_interpolative.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_decomp_lu_cython.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_decomp_update.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_fblas.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_flapack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_linalg_pythran.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_matfuncs_expm.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_matfuncs_schur_sqrtm.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_matfuncs_sqrtm_triu.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/_solve_toeplitz.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/cython_blas.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/linalg/cython_lapack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/ndimage/_nd_image.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/ndimage/_ni_label.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/ndimage/_rank_filter_1d.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_bglu_dense.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_direct.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_group_columns.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_highspy/_core.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_highspy/_highs_options.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_lbfgsb.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_lsap.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_lsq/givens_elimination.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_minpack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_moduleTNC.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_pava_pybind.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_slsqplib.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_trlib/_trlib.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/optimize/_zeros.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_max_len_seq_inner.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_peak_finding_utils.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_sigtools.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_sosfilt.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_spline.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/signal/_upfirdn_apply.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/_csparsetools.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/_sparsetools.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_flow.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_matching.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_min_spanning_tree.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_reordering.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_shortest_path.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_tools.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/csgraph/_traversal.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/linalg/_dsolve/_superlu.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/linalg/_eigen/arpack/_arpacklib.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/sparse/linalg/_propack.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_ckdtree.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_distance_pybind.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_distance_wrap.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_hausdorff.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_qhull.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/_voronoi.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/transform/_rigid_transform_cy.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/spatial/transform/_rotation_cy.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_comb.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_ellip_harm_2.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_gufuncs.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_specfun.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_special_ufuncs.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_ufuncs.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/_ufuncs_cxx.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/special/cython_special.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_ansari_swilk_statistics.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_biasedurn.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_levy_stable/levyst.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_qmc_cy.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_qmvnt_cy.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_rcont/rcont.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_sobol.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_sobol_direction_numbers.npz" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_stats.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/scipy/stats/_stats_pythran.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/select.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6.abi3.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6/Shiboken.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6/msvcp140.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6/msvcp140_1.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6/msvcp140_2.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/shiboken6/msvcp140_codecvt_ids.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/unicodedata.pyd" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/vcruntime140.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.dist/vcruntime140_1.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/main.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/tl/timelapse_14_20260401_to_20260610.mp4" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/tl/timelapse_14_20260603_to_20260610.mp4" beforeDir="false" afterPath="$PROJECT_DIR$/main.dist/cv2/opencv_videoio_ffmpeg4130_64.dll" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 1
}</component>
<component name="ProjectId" id="3EwIJwKPDl7xmBDbQQN0GJ515Pu" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">{
&quot;keyToString&quot;: {
&quot;ModuleVcsDetector.initialDetectionPerformed&quot;: &quot;true&quot;,
&quot;Python.fix_imports.executor&quot;: &quot;Run&quot;,
&quot;Python.main.executor&quot;: &quot;Run&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;RunOnceActivity.typescript.service.memoryLimit.init&quot;: &quot;true&quot;,
&quot;ai.playground.ignore.import.keys.banner.in.settings&quot;: &quot;true&quot;,
&quot;git-widget-placeholder&quot;: &quot;dev-ui&quot;,
&quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
}
}</component>
<component name="SharedIndexes">
<attachedChunks>
<set>
<option value="bundled-js-predefined-d6986cc7102b-9b0f141eb926-JavaScript-PY-253.30387.173" />
<option value="bundled-python-sdk-4762d8aabb82-6d6dccd035ac-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-253.30387.173" />
</set>
</attachedChunks>
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="01167edf-a4fe-4b9b-bd49-22d768ae9f8b" name="Changes" comment="" />
<created>1781083136733</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1781083136733</updated>
<workItem from="1781083137783" duration="433000" />
<workItem from="1781093057561" duration="1654000" />
<workItem from="1781095333974" duration="8869000" />
<workItem from="1781124166531" duration="1347000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="working" />
<option name="LAST_COMMIT_MESSAGE" value="working" />
</component>
<component name="com.intellij.coverage.CoverageDataManagerImpl">
<SUITE FILE_PATH="coverage/HelioParser$main.coverage" NAME="main Coverage Results" MODIFIED="1781124407225" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/HelioParser$fix_imports.coverage" NAME="fix_imports Coverage Results" MODIFIED="1781096214913" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
</component>
</project>

9
LICENSE Normal file
View file

@ -0,0 +1,9 @@
MIT License
Copyright (c) 2026 Vic
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# HelioParser
Как jHelioViewer, только проще функционал - мне интересно было просто смотреть фотки Солнца со спутников, и сравнивать с моими фотографиями

View file

@ -1,64 +0,0 @@
import os
import re
def fix_pyside6_syntax(filepath):
"""Исправляет устаревший синтаксис PySide6"""
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# Замены
replacements = [
(r'Qt\.Horizontal', 'Qt.Orientation.Horizontal'),
(r'Qt\.Vertical', 'Qt.Orientation.Vertical'),
(r'Qt\.LeftButton', 'Qt.MouseButton.LeftButton'),
(r'Qt\.RightButton', 'Qt.MouseButton.RightButton'),
(r'Qt\.MiddleButton', 'Qt.MouseButton.MiddleButton'),
(r'self\.RenderHint\.', 'QPainter.RenderHint.'),
(r'Qt\.KeepAspectRatio', 'Qt.AspectRatioMode.KeepAspectRatio'),
(r'Qt\.IgnoreAspectRatio', 'Qt.AspectRatioMode.IgnoreAspectRatio'),
(r'Qt\.ScrollBarAsNeeded', 'Qt.ScrollBarPolicy.ScrollBarAsNeeded'),
(r'Qt\.ScrollBarAlwaysOff', 'Qt.ScrollBarPolicy.ScrollBarAlwaysOff'),
(r'Qt\.ScrollBarAlwaysOn', 'Qt.ScrollBarPolicy.ScrollBarAlwaysOn'),
(r'Qt\.black', 'Qt.GlobalColor.black'),
(r'Qt\.white', 'Qt.GlobalColor.white'),
(r'Qt\.red', 'Qt.GlobalColor.red'),
(r'Qt\.green', 'Qt.GlobalColor.green'),
(r'Qt\.blue', 'Qt.GlobalColor.blue'),
(r'Qt\.yellow', 'Qt.GlobalColor.yellow'),
(r'Qt\.gray', 'Qt.GlobalColor.gray'),
(r'Qt\.darkGray', 'Qt.GlobalColor.darkGray'),
(r'Qt\.lightGray', 'Qt.GlobalColor.lightGray'),
(r'Qt\.transparent', 'Qt.GlobalColor.transparent'),
]
for old, new in replacements:
content = re.sub(old, new, content)
# Добавляем импорт QPainter если нужно
if 'QPainter' not in content and any('RenderHint' in content for _ in []):
if 'from PySide6.QtGui import' in content:
content = content.replace(
'from PySide6.QtGui import',
'from PySide6.QtGui import QPainter, '
)
else:
content = 'from PySide6.QtGui import QPainter\n' + content
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
print(f"Fixed: {filepath}")
# Проходим по всем файлам
for root, dirs, files in os.walk('.'):
for file in files:
if file.endswith('.py'):
filepath = os.path.join(root, file)
try:
fix_pyside6_syntax(filepath)
except Exception as e:
print(f"Error fixing {filepath}: {e}")
print("Done!")

BIN
icon-raw.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 MiB

BIN
main.exe

Binary file not shown.

43
main.py
View file

@ -1,43 +0,0 @@
#!/usr/bin/env python3
"""
Helioviewer Solar Viewer - Профессиональное приложение для просмотра снимков Солнца
"""
import sys
import os
from pathlib import Path
# Добавляем путь к модулям
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import Qt
from controllers.app_controller import AppController
def main():
"""Точка входа в приложение"""
# Включаем High DPI поддержку
QApplication.setHighDpiScaleFactorRoundingPolicy(
Qt.HighDpiScaleFactorRoundingPolicy.PassThrough
)
app = QApplication(sys.argv)
app.setApplicationName("Helioviewer Solar Viewer")
app.setOrganizationName("SolarViewer")
# Устанавливаем темную тему через QSS
app.setStyle("Fusion")
# Создаем контроллер (он создаст модель и представление)
controller = AppController()
# Показываем главное окно
controller.show_main_window()
sys.exit(app.exec())
# ИСПРАВЛЕНО: было if __name__ "__main__": , правильно:
if __name__ == "__main__":
main()