From eeaf15ff42ca294c1772f5bc82ddeb554ef59951 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 11 Nov 2024 12:11:37 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20=D0=BE=D0=BA=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/OptAlgorithm/ConstantCalculator.py | 2 +- src/OptAlgorithm/OptAlgorithm.py | 8 +-- src/OptAlgorithm/OptTimeCalculator.py | 4 +- .../ConstantCalculator.cpython-310.pyc | Bin 1168 -> 1172 bytes .../__pycache__/OptAlgorithm.cpython-310.pyc | Bin 15465 -> 15481 bytes .../OptTimeCalculator.cpython-310.pyc | Bin 7736 -> 7744 bytes src/__init__.py | 1 + src/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 146 bytes src/gui/__init__.py | 1 + src/gui/__pycache__/__init__.cpython-310.pyc | Bin 196 -> 251 bytes .../__pycache__/plot_window.cpython-310.pyc | Bin 7058 -> 7080 bytes .../settings_windows.cpython-310.pyc | Bin 0 -> 2623 bytes src/gui/plot_window.py | 4 +- src/gui/settings_windows.py | 64 ++++++++++++++++++ src/uml/creator.py | 2 +- src/utils/__init__.py | 2 +- .../__pycache__/__init__.cpython-310.pyc | Bin 248 -> 269 bytes .../__pycache__/json_tools.cpython-310.pyc | Bin 529 -> 850 bytes src/utils/json_tools.py | 10 +++ 19 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 src/__init__.py create mode 100644 src/__pycache__/__init__.cpython-310.pyc create mode 100644 src/gui/__pycache__/settings_windows.cpython-310.pyc create mode 100644 src/gui/settings_windows.py diff --git a/src/OptAlgorithm/ConstantCalculator.py b/src/OptAlgorithm/ConstantCalculator.py index 3a9dfe7..7146fa2 100644 --- a/src/OptAlgorithm/ConstantCalculator.py +++ b/src/OptAlgorithm/ConstantCalculator.py @@ -1,4 +1,4 @@ -from OptAlgorithm.AutoConfigClass import AutoConfigClass +from src.OptAlgorithm.AutoConfigClass import AutoConfigClass from numpy import sqrt class ConstantCalculator(AutoConfigClass): diff --git a/src/OptAlgorithm/OptAlgorithm.py b/src/OptAlgorithm/OptAlgorithm.py index e9dbc34..c86e411 100644 --- a/src/OptAlgorithm/OptAlgorithm.py +++ b/src/OptAlgorithm/OptAlgorithm.py @@ -1,7 +1,7 @@ -from OptAlgorithm.PhaseCalc import PhaseCalc -from OptAlgorithm.OptTimeCalculator import OptTimeCalculator -from OptAlgorithm.AutoConfigClass import AutoConfigClass -from OptAlgorithm.ConstantCalculator import ConstantCalculator +from src.OptAlgorithm.PhaseCalc import PhaseCalc +from src.OptAlgorithm.OptTimeCalculator import OptTimeCalculator +from src.OptAlgorithm.AutoConfigClass import AutoConfigClass +from src.OptAlgorithm.ConstantCalculator import ConstantCalculator from numpy import cos, sin, sqrt, cbrt, arcsin diff --git a/src/OptAlgorithm/OptTimeCalculator.py b/src/OptAlgorithm/OptTimeCalculator.py index 3b954be..aa1d9ce 100644 --- a/src/OptAlgorithm/OptTimeCalculator.py +++ b/src/OptAlgorithm/OptTimeCalculator.py @@ -1,7 +1,7 @@ from numpy import sqrt, arcsin, arccos, cos, sin -from OptAlgorithm.AutoConfigClass import AutoConfigClass -from OptAlgorithm.ConstantCalculator import ConstantCalculator +from src.OptAlgorithm.AutoConfigClass import AutoConfigClass +from src.OptAlgorithm.ConstantCalculator import ConstantCalculator class OptTimeCalculator(AutoConfigClass): diff --git a/src/OptAlgorithm/__pycache__/ConstantCalculator.cpython-310.pyc b/src/OptAlgorithm/__pycache__/ConstantCalculator.cpython-310.pyc index 002933bcebd1c31396c92ef4d84e854135f209fd..0103bf2485192299fc0f03672c4ac13cc9a608b1 100644 GIT binary patch delta 39 tcmbQhIfauqpO=@50SI0mGfYq2$Xmk5=(4$qaUBz@LUB>D-eg0TcmTZYX0j0! z$mZq?zLIzX%7_z1!0LP{4+usRjfsBH55$-#=_d$@2^tJD#^?tV@Bg-aI+|zn!!PHa zd)}UV&PlJ1{5#?vbh}-PrKgqTcb9x$_8}1v-WwM#w!{5T- zF>}aY&>9D%oM%NXw_0$h!$6kS8QlSOr3nKX0dSyfFl(%30~AhpSeE`V)`#}uE(gF( zL;((z?Yo2P8us9PzjZS}$AZgUS$X~$x*@vU9-v~7citE)UoK(4wUm>2j3#&)QJzKDeUyAaYo z$X}85Y)~fi(Y;Y$P}w{IYYte2{*KeAiZ>H&_E+EO$r@YwF=Ev4p?Pg$Ei~0tqI?v2g+X6gcC5~faNuZ z(_7Upq|nkop&SLC1)c+*2VMXUNW`7uMaVA!Z^}M2Ma0XH0}^>xY3^cByb8Pq9Hg&W z4F`vK$ee5ayVNA(_MK7_uiGTLaf4lvL(>9z4Pe_jdBK>x+)a0`*pjFnO}N?gu?`*> zRHJhkCYaPbo0p}wpYnb&d}@bOhq5xH&cs+Hm^cY(p@JRodWvS_owfzrbaaVTaAMph z#{_g72m@%G6CSnYx}dbmUG;kaG0jsZ(H_;6yx4aMLn0y4(2uptgDec0)zK~_ke}!YC&Do(qb%5 zmphv1?v*}v0&BeRzSxX|fhgFQ$O^Sw)#lmEK@i6C)YOV=ov*H|H zQ?NaC^O|iYB2uZ@NW5*6Z2~$DgaJ%M6dv;mABQrg!oVaCd;ok1%mN=t+_2vtLwoa< zAA<=8td3H8 zC6)L@u0iYr>S?N4?UpKqtB`C0G$3WrrA}cn@`W6%p8iv(dz+x!0>F(201ZglS9_-B zH{d=mt%=bo&lp?1xW9lbPH!sQl=Nto-^NO$O8719XoM8kmk@0wU+Flb78&dnge^ii zhOU>7paWjF)4ZgI-WIl=rfKc@^6O-L8G4QWRC~(U23b(A-&?d1A85moXd8g(qTY45qy{r6|e+<9Ow^(U*NnTmTKl`19{RjAL z2U<~A*nwjwFyQHNZ38qQUFS#K`s@557}W$DkR`jJLO&cn z*;8tPuzyOepD?GBx zwLzFJcfubcR6(*tvcNQ z*Hwsw=Y_gie?2~5VK?=@37oOplou(c*04tiI>RC6H2wn-W-+h=sHNAFDx_(Z?o#=sl73N^URI4|M;Og9=+nx2i&{m)=%A zUm)|yv@+RBnAOTqfXpGo%S6bLv@~w2-%!JEL4OCh2i%7$r=gK^7p{+JRCEg~puJHy T^H6uRgt_TO)X%*1CED^8Grzli diff --git a/src/OptAlgorithm/__pycache__/OptTimeCalculator.cpython-310.pyc b/src/OptAlgorithm/__pycache__/OptTimeCalculator.cpython-310.pyc index cfe359ff2f0a8f4a4353d60d3609f2511d6dc46f..c0b04032d162203510474caee35f85b68cf504b0 100644 GIT binary patch delta 213 zcmdmCbHIi-pO=@50SI0nGfcPN$Scas=(1UvS&^SHYO|}51S@wQP_9THMC5PI5I@Pt zT?1kpfQahJHj;O^i$Kg;5K%W-St^;W9>i>z+#@B=ST}i%lnh%VP@qa-a=(niMgRc5Z#Mz} delta 205 zcmX?Lv%`irpO=@50SI*08m60X??DQv2e1C>;gua P$p>YX809Cwkc|KU;3YHZ diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/__init__.py @@ -0,0 +1 @@ + diff --git a/src/__pycache__/__init__.cpython-310.pyc b/src/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36e9c1bd933469a0cd812580d88f489f5424138b GIT binary patch literal 146 zcmd1j<>g`k0?T8D=}bWSF^Gc<7=auIATDMB5-AM944RC7D;bJF!U*D*sf$&NOJ-tx zQEEYPOrl{-cxp~cW?p)5L4HXav7r-89{8O9Hw06C}tp=Iha9{ zBlakFPkjq$D#hy%-|mr^ynw-NUk+AL#01n7B>+av7r-85vTTf*CZKUorxPH5qSl x1?1$HglFcZv|gfuB3(pG62Cq+q1Xlo}Wq)N$;rhyKWu<;I?Rn}`~ zcHG33P?1_8aV&#C`~{#Q4#*cSNC*%Yt_X=ezzww*5C;zQ#Cv0uSOzTZ$8Tod&U^3s zcILg=Pi9l4RI0TFeviJ(x-UOSEp{hJLTOoQaWqH2-{R=^RFeGMc~@y8Nju=4?R$1e z#9zv3g@`frZoC`beKNmTd#HY>z*Jtl5GUHESENMT)5c-up*G!Rf)g={d+WJ!nZ#^> z_)W_siNR>--2vB59bM=2p=pu`DSu_f3-(AFtXzecw!F~W@u{V-F4%`*#5#J=>Jabf zUuF8i++-PGr1|tsZYe~s1RjT6-!LYwJ_QRTZadDJU*ZsAw{)nG+Q~Mq7&EwbPJEOa?IdX%nzmRv2tvD9_MyAqr>^&& zL5K5*c|;0fikbBI28tPBZ%}78f(xUFQ;4S#V*pF97p!!q+3<@WDp~7y{=JF?M zpQis%76#z0#|eD@9AXi15wOXY(8P=%C(*iuxQv)Z?Ye_YvfmJz4vr^MR7Njl%w_+Jm1e#en4q}nn&8kQa;yEi7Wz@CrLO2H#h9SrIuMg z02q$Ms#95_Rj0PIOj#H4p3#n`)Nj=0dXkETD!TB%PrED?mlFRo_2`l;%hIDhv7YG@ zZ}%GWGV>!%Eu$W^{^h|gM76U--GQg@uXDF0zV7|z?hJUzUc+^PDp_$R6>3uBCc4Qk z5_D>nafo^dJ6GX3oQD5tb_Koa71RAJiP3$S-*KB76`9*bdyk^3w5Ij{peV12p9Th% z8S&>p&cNFhPR9I+q1D&HjC6)_%8n5&+-ICUhaTGqJReqfz2-rj7y?A`GGzt07T~rj z`yS_%$;62G_{8}6b?_jna|lnB7(NYLz6<+$K~6GH)Bx6kYE#bamM}8!uk>P&4#Y5G z3ek>`AN>SclZYFLEriVT7Fx$GmsXGXHFM>yR+21N_u)db%e(bERSzn~aJYqhaJZzj`OQ_RFcvLZK!CR9vV;(*lB7NrPxVB1ui08dk1^v_1d0Y zCw2u&ODhE8R0e_g3qVCxg?!#`@r>@cKXF9aX~jNtLQX+NKtF<=c#RpWSeH0I8;y^-6U1w zS{HrN;4#QvG%0a?92(&ud7AyGojCp!ge&QeaLx=9T4K}sM^Mc@JvD=bx$1))-k=-% zS-*XiYktLPdIZ+1w7JhCextcZ8j#RXsE!-u9gjz=#J^u#AuaFw~%6$>yOt>6JoII9Dqjx<`h~&-Fi# z|0%7{!LA2k++Ren5MBq^p;a`I@q-9jy9n11E+d!-TL@+L%lO&nDrn;Ipe{lap@q;! zK=za(Jd!ypBr>Z5>Y*c&7)UDem2qxBRUB^gzf9bbQhR70mhe!Thu+t4&SsV5$%9EW zkJNQ=cm?7ADD%fI*p8DU{yrhDIO@uFK9?P+M97cI^9WpmSGP^KN{nc50We)D)LYJ! zl-}}ghDsjOCl|(tsCWCTlM%^46;W*XDK7}cg~b0({r0>l%TW0=+e%Hd8&levV1B5n zp#@2UlLt|_Y-YGzhOhFUd)H&%OnrMG4kGp%o(ojT(5X;pNR2mPDd^%`=rkG}F1ZVl zd+>Ev;D3b@^a?5_?Mx{|+Av?P4mFBLcN=D%psJ*=%={opH`q_JX{o^en$2os7^BG6 zj?ER`29v84Y<1!5am^ua)vuKl&vvr{b6j>|&Fu|wrZ<_E`fzg=lOz$A5b_8U2;$J^(Aq%g zBJ>ah&zoo+wOm*;?AO#rKEfldUK<`XvsDY;RMqV?TD_p&P_<)I88?dy6hcdRWUP17 G^Zx*GDV&x7 diff --git a/src/gui/__pycache__/settings_windows.cpython-310.pyc b/src/gui/__pycache__/settings_windows.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7cdeaffdf600c285846dee80113814eaa4735eed GIT binary patch literal 2623 zcmZ`*&2Aev5GMCeD|sdVByrlNP1QqNERYxo+CyQqMS`Trr7&XHK!Amc#X_XyRaU!e zlB#22b&`Rc`UXA7M?Xqmf!Ch;1O*Bd=nPje=_%o^K~O>3Dmb}d55*ozuQVrTxi88yePsAc9(wlNN( zVBC({l)NO&W!?p09=AuGxgBltE!KEriKm<{wwZrPqaD7kJd#DOTW2Cw+>HCE=X$}r zVv)ztaC6VdVwBs=;`YFKM+TJH%()06r@letvIg@nNaV35ZwxHfVjCAu>Y0io>?Uac+(M}Gg_igj_y20_P%6*t9qG(0t*1|$G zDj3IhWkKtt1X`D2>s4gYFzaOD8`Q`VxuOSQQ@e6fav>U^O8aq~=BbKf9jwfG1!jmQ zE;=kxiS|l_Q|fkB0CcNex?#>u($Ln9&~XNWm>1^$TRewIiX$5-T^XD{}9FVZ9y zyp+A~d}eTwd*!(ZKsTBsJJ58fhd;}s zJ`L#f{^~%D)29xSELkhHXfCB!#ifB+J}ARu4>K}0SA1w}^?{>-W%?0>U?Gf+qN$XU41dw6rzn3I`RSqmRmPy*v7 zbIe+6u>o4_%3cJO1qs8wv|*hr+Eu-iEIO+Y4ZQ5fc?HB2CSev;%v&UB++vv*lHvKy|3E< z*E(fNlcH+=9H%Pd0_m!Gl{6{ZgW!Uf=IRsRfvG&D02jZujxJ zgr0Uwk>;xQYtzsH)3tU+MVgz46A$6aVZ+1^?8ej$zBVqF;%itlF=&!?R4X`ukh|>) z-1r!(#FT>Y2PW70;En*?(xT4a(|fm^QGX;11o}|7;&@!JNe0oZgE&5&Bv~EX#z2$M zO&S#+;ch2OAqyD(A`6V6y1jfv`aH|x_?n5BdWA{E=xmI4^Dg*gm-;Q=?%2M!)mgu9 z<0Q@Fc)Gjhbr(t4{poEoE;BxTU@(%s0^Y<#6(X+Zd*(lazmkUcbhA7^RYQ@KC)z59 zQLvuw9V!zU(O2(9MhW^ENwBw`9YZ#RmvlYHRoz)n&2r?Gb$|bV)R_=B@fzKQM{{qY z(o7nAV^tKHtluzvK6K--4o(9`?HF(T=I~irY8%q8_UboQJNzy0UqjfuGl;PEzpvf+ YBj%Wz4kR$Kxn=EG{x>a*OzQmmAH>g!HUIzs literal 0 HcmV?d00001 diff --git a/src/gui/plot_window.py b/src/gui/plot_window.py index 8b77ed4..ee0171e 100644 --- a/src/gui/plot_window.py +++ b/src/gui/plot_window.py @@ -1,8 +1,8 @@ import pyqtgraph as pg import numpy as np -from gui import qt_settings as qts -from OptAlgorithm import OptAlgorithm +from src.gui import qt_settings as qts +from src.OptAlgorithm import OptAlgorithm class PlotWindow: diff --git a/src/gui/settings_windows.py b/src/gui/settings_windows.py new file mode 100644 index 0000000..48e0616 --- /dev/null +++ b/src/gui/settings_windows.py @@ -0,0 +1,64 @@ +import pyqtgraph as pg +from pyqtgraph.Qt import QtWidgets +import pyqtgraph.parametertree.parameterTypes as pTypes +from pyqtgraph.parametertree import Parameter, ParameterTree + +from src.utils.json_tools import read_json, write_json + +class settingsWindow(QtWidgets.QWidget): + def __init__(self, path: str, name: str): + super(settingsWindow, self).__init__() + self.settingsPath = path + self.name = name + + self.data = {} + self.params = None + self.load_settings() + self.init_ui() + + def load_settings(self): + self.data = read_json(self.settingsPath) + + def write_settings(self): + write_json(self.settingsPath, self.data) + + def _getTreeStructure(self) -> list: + params = [] + for key, value in self.data.items(): + params.append({'name': str(key), 'type': type(value).__name__, 'value': value}) + return params + + def init_ui(self): + temp = self._getTreeStructure() + self.params = Parameter.create(name='params', type='group', children=temp) + self.params.sigTreeStateChanged.connect(self.change) + + ParamsTree = ParameterTree() + ParamsTree.setParameters(self.params) + ParamsTree.setWindowTitle('Settings ,f,f') + layout = QtWidgets.QGridLayout() + layout.addWidget(ParamsTree, 0,0) + self.setLayout(layout) + + self.show() + + def change(self, param, changes): + print("tree changes:") + for param, change, data in changes: + path = self.params.childPath(param) + if path is not None: + childName = '.'.join(path) + else: + childName = param.name() + print(' parameter: %s'% childName) + print(' change: %s'% change) + print(' data: %s'% str(data)) + print(' ----------') + + +if __name__ == '__main__': + app = pg.mkQApp("Parameter Tree Example") + window = settingsWindow('params\operator_params.json', 'operator') + app.exec() + + diff --git a/src/uml/creator.py b/src/uml/creator.py index f07b915..e3d43ff 100644 --- a/src/uml/creator.py +++ b/src/uml/creator.py @@ -1,4 +1,4 @@ -from uml.request_generator import Request +from src.uml.request_generator import Request class UMLCreator: diff --git a/src/utils/__init__.py b/src/utils/__init__.py index 170ff94..1939c2e 100644 --- a/src/utils/__init__.py +++ b/src/utils/__init__.py @@ -1,2 +1,2 @@ -from .json_tools import read_json +from .json_tools import read_json, write_json from .diagram_parser import DiagramParser \ No newline at end of file diff --git a/src/utils/__pycache__/__init__.cpython-310.pyc b/src/utils/__pycache__/__init__.cpython-310.pyc index 34e14df204eef3c0a1fcf3b65d37e781e6386ce0..94a75c6de5b9fef18150cfe76c94f1e7b7909e69 100644 GIT binary patch delta 160 zcmeyt*vrJ5&&$ij00jH?7^X)|av7r-bD5%;7(sld9Ohh>C>9`_ zIha9{ynw6UX+*{kXTflTI8q662%3Qi7&~|&nYfq0_uq3 kOMxhfF9544Vg?GXWGG?*Qefhjb&6HY#C_f@JPZPi0KAPT2LJ#7 diff --git a/src/utils/__pycache__/json_tools.cpython-310.pyc b/src/utils/__pycache__/json_tools.cpython-310.pyc index 1d2234bf138af5f6957128e1be8e05e99d2abd2a..a0ec4c231f8da93c0d9c4d6c99ad35c599afba37 100644 GIT binary patch delta 491 zcmYjNJx{|h5WTZan*Dl+>_wF+BUGO5;b%2)hwRO42GH(ql+2+Oy54bD_;zCGE z+K-}MkgN*6lht3`k#kf%IWAv>*Fkxd{T!|4_Ej9U8|EPw@?4*Pf|{o_}4O*|Vc z5LX^SlM(zaLBu%k(}}wT8s0I54~$*SB(YbJ?2Qlc0efZ5Q;>Yfo=SbD#rsT(Df?gu zHIN`^5BZc=VGH8*1QE!sU#E4G+lSp|aHGSh?F+?C(X^*rqrhO&{1i&`GRU1og*s@MDH%z; zMBrcv8Jj~7*T)_cXx+21TBd?u%vlsq6HF|5tQGl&O|2%AG@^eNX41;|$0OH3ct^fc4 diff --git a/src/utils/json_tools.py b/src/utils/json_tools.py index 3b3b14f..1933f4c 100644 --- a/src/utils/json_tools.py +++ b/src/utils/json_tools.py @@ -9,3 +9,13 @@ def read_json(filepath: str) -> dict: with open(filepath, 'r') as json_file: data = json.load(json_file) return data + +def write_json(filepath: str, data: dict): + if not path.exists(filepath): + raise FileNotFoundError(f"JSON file {filepath} not found!") + + try: + with open(filepath, 'w') as json_file: + json.dump(data, json_file) + except Exception as e: + raise e \ No newline at end of file