From fdede0a7fcb3ec1ed5cc7c2b2eef2948c8bb18e6 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 11 Jul 2025 00:05:40 +0000 Subject: [PATCH 01/51] upstream_devices works; also changed api's to be more logical for physics --- slicops/device_db.py | 25 +++++++++++--- slicops/device_sql_db.py | 43 +++++++++++++++++++++--- slicops/package_data/sliclet/screen.yaml | 11 ++++++ slicops/sliclet/screen.py | 8 ++++- tests/device_db_test.py | 16 +++++++-- 5 files changed, 90 insertions(+), 13 deletions(-) diff --git a/slicops/device_db.py b/slicops/device_db.py index 1cc8208..8a66613 100644 --- a/slicops/device_db.py +++ b/slicops/device_db.py @@ -194,18 +194,18 @@ def beam_paths(): return rv -def device_names(beam_path, device_type): +def device_names(device_type, beam_path): """Query devices for device_type and beam_path Args: - beam_path (str): which beam path device_type (str): type of device to filter by + beam_path (str): which beam path Returns: tuple: sorted device names """ - if device_type not in slicops.const.DEVICE_TYPES: - raise DeviceDbError(f"no such device_type={device_type}") - if rv := slicops.device_sql_db.device_names(beam_path, device_type): + if rv := slicops.device_sql_db.device_names( + _assert_device_type(device_type), beam_path + ): return rv # TODO(robnagler) refine because beam_path could exist, just not for device raise DeviceDbError(f"no devices for beam_path={beam_path}") @@ -236,3 +236,18 @@ def _static(device, accessor): for r in rv.accessor.values(): _static(rv, r) return rv + + +def upstream_devices(device_type, beam_path, device_name): + """returns in z order""" + return slicops.device_sql_db.upstream_devices( + _assert_device_type(device_type), + beam_path, + device_name, + ) + + +def _assert_device_type(value): + if value not in slicops.const.DEVICE_TYPES: + raise DeviceDbError(f"no such device_type={value}") + return value diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index a10e1af..1d46457 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -25,19 +25,19 @@ def beam_paths(): ) -def device(device_name): +def device(name): with _session() as s: - return PKDict(s.select_one("device", PKDict(device_name=device_name))).pkupdate( + return PKDict(s.select_one("device", PKDict(device_name=name))).pkupdate( accessor=PKDict( { r.accessor_name: PKDict(r) - for r in s.select("device_pv", PKDict(device_name=device_name)) + for r in s.select("device_pv", PKDict(device_name=name)) } ), ) -def device_names(beam_path, device_type): +def device_names(device_type, beam_path): with _session() as s: c = s.t.device.c.device_name return tuple( @@ -57,6 +57,41 @@ def device_names(beam_path, device_type): ) +def upstream_devices(device_type, beam_path, device_name): + with _session() as s: + # select device.device_name from device_meta_float, device where device_meta_name = 'sum_l_meters' and device_meta_value < 33 and device.device_type = 'PROF' and device.device_name = device_meta_float.device_name; + c = s.t.device_meta_float.c.device_name + return tuple( + r.device_name + for r in s.select( + sqlalchemy.select(c) + .select_from( + s.t.device_meta_float.join( + s.t.device, + s.t.device.c.device_name == c, + ).join( + s.t.beam_path, + s.t.beam_path.c.beam_area == s.t.device.c.beam_area, + ) + ) + .where( + s.t.beam_path.c.beam_path == beam_path, + s.t.device_meta_float.c.device_meta_name == "sum_l_meters", + s.t.device_meta_float.c.device_meta_value + < _device_meta(device_name, "sum_l_meters", s), + s.t.device.c.device_type == device_type, + ) + .order_by(s.t.device_meta_float.c.device_meta_value) + ) + ) + + +def _device_meta(device, meta, s): + return s.select_one( + "device_meta_float", PKDict(device_name=device, device_meta_name=meta) + ).device_meta_value + + def recreate(parser): """Recreates db""" assert not _meta diff --git a/slicops/package_data/sliclet/screen.yaml b/slicops/package_data/sliclet/screen.yaml index 7c07650..c5ff365 100644 --- a/slicops/package_data/sliclet/screen.yaml +++ b/slicops/package_data/sliclet/screen.yaml @@ -24,6 +24,14 @@ fields: Gaussian: gaussian "Super Gaussian": super_gaussian value: gaussian + filter_in: + prototype: Button + ui: + css_kind: light + filter_out: + prototype: Button + ui: + css_kind: light plot: prototype: Dict ui: @@ -62,6 +70,9 @@ ui_layout: - start_button - stop_button - single_button + - cell_group: + - filter_in + - filter_out - css: col-sm-9 col-xxl-7 rows: - plot diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index d37d4db..ceea102 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -86,6 +86,12 @@ def on_click_single_button(self, txn, **kwargs): def on_click_start_button(self, txn, **kwargs): self.__set_acquire(txn, True) + def on_click_filter_in(self, txn, **kwargs): + pass + + def on_click_filter_out(self, txn, **kwargs): + pass + def on_click_stop_button(self, txn, **kwargs): self.__set_acquire(txn, False) @@ -106,7 +112,7 @@ def __beam_path_change(self, txn, value): def _choices(): if value is None: return () - return slicops.device_db.device_names(value, _DEVICE_TYPE) + return slicops.device_db.device_names(_DEVICE_TYPE, value) txn.multi_set( ("camera.constraints.choices", _choices()), diff --git a/tests/device_db_test.py b/tests/device_db_test.py index 5e578b9..35b0f80 100644 --- a/tests/device_db_test.py +++ b/tests/device_db_test.py @@ -15,14 +15,14 @@ def test_basic(): pkunit.pkeq("SC_SXR", a[-1]) pkunit.pkeq(18, len(a)) - a = device_db.device_names("SC_SXR", "PROF") + a = device_db.device_names("PROF", "SC_SXR") pkunit.pkeq("BOD10", a[0]) pkunit.pkeq("YAGH2", a[-1]) pkunit.pkeq(11, len(a)) with pkunit.pkexcept("XYZZY"): - device_db.device_names("XYZZY", "PROF") + device_db.device_names("PROF", "XYZZY") with pkunit.pkexcept("xyzzy"): - device_db.device_names("SC_SXR", "xyzzy") + device_db.device_names("xyzzy", "SC_SXR") a = device_db.meta_for_device("VCCB") pkunit.pkeq("CAMR:LGUN:950:Image:ArrayData", a.accessor.image.pv_name) @@ -32,3 +32,13 @@ def test_basic(): # YAG01B does not have any PVs so not in db with pkunit.pkexcept("NoRows"): device_db.meta_for_device("YAG01B") + + +def test_upstream(): + from pykern import pkdebug, pkunit + from slicops import device_db + + a = device_db.upstream_devices("PROF", "CU_HXR", "YAGH2") + pkunit.pkeq(9, len(a)) + pkunit.pkok("VCC", a[0]) + pkunit.pkok("OTR4", a[-1]) From e7e81d82922e9120cead6b5eed6acb05d3f08f9a Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 11 Jul 2025 17:30:32 +0000 Subject: [PATCH 02/51] ckp --- slicops/field.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slicops/field.py b/slicops/field.py index 7d38b4b..fc63ee8 100644 --- a/slicops/field.py +++ b/slicops/field.py @@ -43,7 +43,7 @@ class Base: __TOP_ATTRS = __SIMPLE_TOP_ATTRS.union(__GROUP_ATTRS) # Others that convert from yaml __INVALID_NAMES = frozenset(("true", "false", "null", "none")) - __VALID_NAME = re.compile("^[a-z]\w+$") + __VALID_NAME = re.compile(r"^[a-z]\w+$") def __init__(self, prototype, overrides): def _copy(): From be86e47ebcad6979eb0fcd568b1af3f16e9fc53a Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 11 Jul 2025 18:05:54 +0000 Subject: [PATCH 03/51] ckp --- etc/run.sh | 3 --- slicops/sliclet/screen.py | 28 ++++++++++++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/etc/run.sh b/etc/run.sh index e0fa706..021dffd 100644 --- a/etc/run.sh +++ b/etc/run.sh @@ -113,9 +113,6 @@ _env_check() { _env_conda_activate() { # Quick check for conda or pyenv environment setup so # we can use this with either. - if type -t slicops &> /dev/null; then - return - fi if ! type -t conda &> /dev/null; then _err 'conda not installed; please install and rerun' fi diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index ceea102..0a0a486 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -148,25 +148,27 @@ def _monitors(): def _setup(): try: + # If there's an epics issues, we have to clear the device self.__device = self.__device = slicops.device.Device(camera) _monitors() except slicops.device.DeviceError as e: pkdlog( "error={} setting up {}, clearing; stack={}", e, camera, pkdexc() ) - self.__device_destroy() - # TODO(robnagler) not clear this is right - raise pykern.util.APIError(e) + self.__device_destroy(txn) + self.__user_alert( + txn, "unable to connect to camera={} error={}", camera, e + ) + txn.multi_set( + _DEVICE_ENABLE + (("pv.value", self.__device.meta.pv_prefix),) + ) - self.__device_destroy() + self.__device_destroy(txn) txn.multi_set(_DEVICE_DISABLE) if camera: _setup() - txn.multi_set( - _DEVICE_ENABLE + (("pv.value", self.__device.meta.pv_prefix),) - ) - def __device_destroy(self): + def __device_destroy(self, txn=None): if not self.__device: return self.__single_button = False @@ -178,7 +180,7 @@ def __device_destroy(self): except Exception: n = None try: - self.__set_acquire(False) + self.__set_acquire(txn, False) except Exception as e: pkdlog("set_acquire(False) device={} error={}", n, e) try: @@ -217,7 +219,8 @@ def __set_acquire(self, txn, acquire): # No button disable since nothing changed return # No presses until we get a response from device - txn.multi_set(_BUTTONS_DISABLE) + if txn: + txn.multi_set(_BUTTONS_DISABLE) try: self.__device.put("acquire", acquire) except slicops.device.DeviceError as e: @@ -239,6 +242,11 @@ def __update_plot(self, txn): ) return True + def __user_alert(txn, fmt, *args): + pkdp(txn) + pkdp(fmt) + pkdlog("TODO: USER ALERT: " + fmt, *args) + CLASS = Screen From 05b1f26d9168ba224d5c1611589e62b652ce05f4 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:56:00 +0000 Subject: [PATCH 04/51] ckp --- slicops/device_screen.py | 22 ++++++++++++++++++++++ slicops/package_data/device_db.sqlite3 | Bin 1069056 -> 1101824 bytes slicops/pkcli/device_db.py | 8 ++++++-- slicops/sliclet/screen.py | 7 +++---- slicops/ui_api.py | 1 + 5 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 slicops/device_screen.py diff --git a/slicops/device_screen.py b/slicops/device_screen.py new file mode 100644 index 0000000..fcd34e9 --- /dev/null +++ b/slicops/device_screen.py @@ -0,0 +1,22 @@ +"""Accessing meta data about devices + +:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + +from pykern.pkcollections import PKDict +from pykern.pkdebug import pkdc, pkdlog, pkdp +import slicops.device_db + + +def insert_prof_target(device_name): + if _already_in(device_name): + raise ValueError(f"device={device_name} already in") + _assert_upstream_in(device_name) + + +def _already_in(device): + + pass + +# = slicops.device_db.upstream_devices(device_name) diff --git a/slicops/package_data/device_db.sqlite3 b/slicops/package_data/device_db.sqlite3 index 2a2db81f1574d05b98a7a9964df15a0b3b425162..21564c9afe66c3a92a184178b500d993dcb77ef5 100644 GIT binary patch literal 1101824 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

k-AMqO3eh6*YM7^H}wfErk~ zp_~b%NPv(7p$`+N5CMWHW^b++${0qy5VpVrDf1XI6R&Q8kw-C0p@^z|q=-pCOVfT+ko*L*5KWeo`3H9_PMAXHbCZYU-RV#u^Ze2pk! zH;xw?_|sSC5#N>LI~Jg-2Ju}uzN7pqVWG|xFUCcYziyb)g4Oxb4V_ecwytA*9`PBD zuk8?DU5WTK$Jca-uM+7~9ADibzOoMSNs1SPnTXd-Qk4(oPpEh*Um#xCC(iMreE#@q zp?{3yMfv>kRU&p5POE)ZW+RoZ+w$BWVh;?X{v594@IxRhkpHHfD-l&Jmu`k~^(xV@TJbF`>j{%D-x(Y%VIMcwg5!*r$1 zhvMBpndhp4@ioFYD|I|sPrV&w)k4*2UZLa3dcJsJ{N*~Hv^V2L)oMOO$CLKHc#(dY zju&muSN^KnTt)Lzw?|3w_HrbRR_o~(uw1)WnXfEwULr^XSX+{7x?vU zUhMWnMxqCS0Wu=#7oE%r#_rp^$YABS#=u5a@^VyVF@ zV(AwXg$9$32Y4){V}M0E?r*T9jsX_wxSzq2ItE!n$GHYe>KJ6@YWp_NF<4T^04rBh zThTn5DwiBnBBk`ZPpMdwt!UoYBW1Trs;a7J-ba)08zGiw26Dohz>4Ns9!b`RAW4YZ z+auL%HK%HjW_qORt&*}J&G1Ol=mBw9xL46U-6P3X5hRH+P4h_d!30SKkfwSh`CNje z97t0k#yk|Rb_w#LDt=ZfY@ButK*Y>kAq z!4=IDC5eVmG|9h&wr_KzTUyd}d%T@!&_vSItBeAJv5K~D^8|yHlQ!TNnq*;>tN8w3 zSoCgD=FQCQnbR}NGh;K@m6m=deP{Yicb#`hMd;#p3isIb7dvRXg z8tewx8T)zS#Z-rw?3aA8pUXH-9IbRQHf|p>?=5#mZt9|D(`!|y+ zVOD_LN|89RkUGc`i%croFg4)ig(V;zSa2%QhRFhtgr(F$5|&a|v|+x0N#woKB(YP8 zHq0PsQqTw>k!OuIOd=R0zY&NejDTqcj}$P1AdwNo%z|((1|vw1n1MpkYVwLU%re^GTay7DAJPMgU0~0rL_D$!`QA2_s-? z!XpKYAV_2cOjfWFq=U{tp_CCYW8vi$FoMX7jDR@|j}$P1AdwL;jlm?ty_Q^^U&BTi zZIA*+z>knJ!YCifX9P(SMi^<5{6-)W8DWHH1k=5iE|fCDa5FEz5hyP*!Z4HMHv*Ah zgz`4!ibqV`h}I`w=&H4gwe+GQl(#8YJc1)k5a7_hiZ~kF(;!-?bn_-q&=o(6sI;&(F(feV}gb`LG7tl z!^dVD=4d>QUwd8i2N|4z_JTv&@1V7>H5|)H?FC6bkL`_|0@@QvJo|wLC!oFHkoE&K zhrFyBb*P|r(UrGt=W&ACt8H}UZT(G-Uwh(+XW!4@1hf|%(!Q_OUY<}AD3H>=!pJG0 zy~v54eYwF2XfHUVeIL!K4nBLhUz3*Z?Qw$I3m0v|ziL~V$?*yL_Lk10@@QvJo{}8PC$FXA?^8tzN^9UYfl`~zKiCNb6HauT8ET{ z-N;INIuIbhk=hFvw3)z_VvVWGkW%|hkKlW_JTv&w;pD4 zeA-J6v~OK!aQxa6M`+)=R%gzj;7X3>AGON-pmZmo-{KG$)+ciwZJb?$YpbXa#XS=IUre*j3j3P6-^Is7mxt6eryH zkMR%UFJQdlruZfC&GDA_3i$bJ!ajvUyaH<%{*HZx^9!Dc-4VMwc24Ys*t*!l*v!~o zvAWp6Sa8-5S>i0m9Gi=@MUg}(~F3Ezizh5sEs4<{e24=)POg8#$a!aIh0g_G{@ z?&t37@PT-Td$oIxdxE>pUFgoV?zOJ7F0f9uj)XVE+13PWPiq&e%u0v;f;YprLQm6p zhkYVl{~=3dSGvg%>8USLF3%5< z3D5w`<@q5pjK)@emd=1)E9LU|5D`zGi{pU$y8O$x-u_AqZiZftk&2AMJ@kJ6)p(AREE9;L@OAa}5lMAVm9ohMg* zw8m;pijXUh(o>lTxz(B>KRshrMMa@5|68@f|7m4Z9hxvweiEdLRh^+5I0vYk5r$1u zU3FNVw$#N7iyD;bY=&|6P$wgd=a|Z9f$F5Cv_ZgAOr?yl5SY|q>PV*&UYG>N%`gPU zjIa}x8(|?3zSvZ}JlDzb!X(f(!w_g0VIeT21mQf zVDfJx41vkNbeLYH$v?fY5SaYK49{JY{M`scVDdLDP`*l&zZwJ~@E0R21pchU^cqP1 zU=8zi!`?*?RcGH(c> z8TA4XdC)ILGHp_X*pzug$mP0&G(v2GU+D-7sR@3iQ+V#01i#Wn7%~$$5sF^vB1{>a zq7T*{WE8%vjzvSmdW0!!t|y7+Z1P^&Cu z4G|`RtRaOVkTn!xA&@l`VG_t1(hUe?4MkW8^faWpQ`(|6rn-X#N2+^JprgP_n~ks# zc(gL%A~(D107Lf22Uqu=Fq^ECjC80_8I-m4{dg zli>ygt}zk_fvY*3C!bv9ry5~oSbhp;hV-+em1YS>N?7i4s z@CvwsPXDu_Z$@v$%Ks&F`rn_CSFrAXePlG&{J$N(CVW_ULb!+fzIzK!{hQ|Y!wAGf zPMb5=sdkF&C+ySh{p_6em-U==t~KAPvy!3LLYIeDg+_;pQSko@e>=CsE6{*Cwbsh# zrUCcZ@fg-yX*Uh+a0#^i?*0TYw{RmANa49@Xopvz(p^;=cGD1GYc~z;@CQ`Bry_f9 z8Ul3BO+&UF?tuDx2|OPufh2~Hly>11Xtc!m=_92bPJw#x!;?Nz0?9ldDedqF zR6bOd%kz;E;QM@}w8I@x$!L{?e53@}hAQMErJXzhsRRKZDS@QgM@l<+0t%+tdKL71 zq_o2m&>*gYN)r1>=_pD1NNI;lpqyl7|`&Y=>W@_|(0^(+r4>mr* zG-|Bp@T*<;0#Z#Dsr-#^E2&iDgF_&0d`Kl66a}<48Xp`1apTKxweblt{>BF{K-~E9 z!NwOTlx%!(0mMxr|Idw2B=s5}8~|~X@X~C(3L1?MzJP*~w$k{NB-Qxf4k#!|J17d+ z4U*J}qU~@9M2BGVDi5)$me;soMpz8}SG29a%Br-x$8zC!u`GG>w^jAfD!pzHW z1j-BZUlr|fljJu7k;n)!k3@ZFL!MZ+C~Y1!NC6}01(59#AIWC~y#TU3Y?Ay&AQBnD z^^73<<$*#eBRFPWej`v`WCYtJ`Hes%GJ@risGDud(={Pvkb*|gHKE8y@*9CjV%gh~ zCMjS9K@vu2JHj)9?79aEC5_Ow-pngt1d*38LfhdcDPROa5=Lk{%p+0P-;`G=PuQ(! zTW64hMgWPLL)%&($!`QA2_vjANdY4W5*cB&X9PJg5h#>0!YVVbfDuGqWQ0RaQosm; zL`GQYk!WDUkcUkKvN^P^Fh~I-2$D3yav#ZO1W6J`IK(9RjX)$a!ZObYai%2ATu{JBQr5G8fWFzWpbJAGv%2cna-J5CY1gq{dM}I^qc7y z(vPR_OW&5hE`51=OZqg7B5X(>mR^xQIK6**?{rgoOnPW~SNIehlr*RJ2jd*V8Q6U=GPOsl3VRUxVtqho z>_qrG`BU;s>_>P#`5e{>+?%{Ld0p~~ZqIXkt-f|HRD1 z#Kfq?o{8$jPKkbro{27rSfVKYGkhI<7=I)FeEhNaf8)2tuZ>@Zk&n&s6XVVCwee-~ z192|Gl=xVzCKw#g;pD*H@$T_t+=~5zRRtf!UW+}0oe_7&ZirnG+Y;N1)dfezR>c;@ z_QOtz@ij=}i5`w~77mK; z8=V~8D>?*wDt3%kM7N2iqYlnn{03()yb*aW@<`=6or2Ze-VB!{7U$#@B`u7;cfA<@VVi(@NwZIa9+d0@SN~e ztWIbM*W%=ce&KDyox)-F5A4(U#C;2%7$0-*#n{ci+>6{Z-IH;m!)kYtJJ+2G&x}Ld zDt8B*-Pp~IIe%eX=M#8oe9n2;xzo8Go*d3`HsK`4bNtr^HFZ zd*e^`=k`1Hi}2xikA0JUrM(579FMct+sm>3W0pM;r#$Y8vmyH1+u9l1v3|9_vfj5| z@rHv!7kT*qNB`?tAa0jfbZ~uW4-f9{!QDK#s|N>ru+D?E9<1?TwFj#_Sn0un2lF1x zc`)n2T|Bt62Y2$|jvgH3!5uufy$1(+aDWH5^I-p&U2F}VFg6$Jr%_*xDl{tBsEFvutu&%jz+ddmPR3siWn9Bt(&$EwZivF2Qp1eKqU#x4$KYB9*D&}ugMTr&n!!~Ju4HfpgUcCQ#^6#0 zmoT`P!9@%%WN-n4^BHVma2|tm8Jxr5YzAjBIFrE{3{Gco8iUOY+8MMlXl1a8!Kn;R zVQ?~olNg-H-~(%vebv;a7 z*Qx7TbzP&btJQUtx*n>oE7f&{x-M7OL)3Mdx-M1MCF;6ZT^FhA!RoqDT^Fe9LF#&- zy3SYEdFpzAy6zvfi$e_<+24=BTn2L(%x17JgMApxQef2H3}!Nz!C*RrX$+<^n8IK( zgC+)(7))f)$Y274@eIZ>7)xMizF`c5y%>yUFp9xQ1|t{@XE2PxPzDVQ>KP0n6AsPq zsjhpd>+b5ho4W3*u7lOJPF-u&wMJd5)wN1pE7i52u6cFMscTkUcaa6kHSEk_Ck8t* z7{p))2HP_j$Y212?HKfD(2qf11{Dm-Whruf)U~&|mZ@v0y7p4np6a@-y7o}lZPc|y zUAwDmvAT9s*RJZ?MO{0qYbSNhsB2nXQ|g*j*Mz#p)itKBQFV=|Ygk=fb#>I$R#z)* zca1d+&57^-T4z)dzUW-{H}`Az1NT+;DQA>>zk93uZ+y|6;hy9k?XGeU#%}y6?q2Sm zZl$}uTjq9kqt2hsch1K+x9?fZ*Wck>=UnQX?VJk#d}}j5W21;(cqjM+qX(a)-b%fYdJJb2+=8_V z7h&w+lvGPxvYpXB7^m}En;4kHEwl4Z%_WD+MF{Fe9@;{|UgUP?Tfcpz~{;)cYP zi3<{EBu+_eOdO7L4;Cio;$*}Li4lq26P1ZUiHbyzM5ja~{ulNdd=Y;?{#yLm_#^Rq z;$B&AyhQGvl@mbh=Fe<(~{3Z;D_lkFphjCWIH?a>fR`7J}0qjD! zA$Dc#g4h|cQ(_xpYhsHrRxk}KE9zs_u|ctlSdUnzSOjAQKf=qx`_b2;&pLCW593sY z8>3f7&ySuKJrO$;R!0{{_m9qqPKXYV?i$VEq=nLG*Jv#Aw=*^JQ{>CY2a(q?V(@6> z-pGF<*WmnxbK#lsgviktGgum#AK51|IWi{F5UGn~BLgsMP#i&(#F>uYhCjg?j+d~P z;eqfS;TytNhA#-85k4inF?=}uI366{KfHIiDLf`TG`wrL5FUin8+tm2I18MS&K^z` zzV_iP6DJU-9M}HS{?Y!@{?L9C-~3P5_uIGI*V|Xv=VSfH$##o<7{2=#*mLa}`0^iZ z*V}b=&feZGw|m%~(XkKV`~O?(Q|n#pReLDL1qwFm^``&zK6?MREm6uYwT2C!I=g<- z@cIaSOO2c|z9Ia#=#T(~|BBe1t+81P9S6Fupl@9<(HNTN!2>+FzX$j8;9L*R@!)I^ z?(4yQJUGjPdwX!E2WNP2x(BCuaH;wlgA+a2=)nmd9Phz#9vthzF&^B@ zgQGn-%7Y^b);A3w8yexk;T|03!J!^(@L;_M(LbOkg{~c4(Y2#1x^{F$*N(2}+R+tV zJG!E4M^|+1=!&i#UD36p>p`MQjG8>jI*`G92J;vkzySR_Nk;!p0`%`BK>tnx^zS4< z|4st*?<7F~P6G7rBtZX80`%`BK>tnx^zS4<|4st*?<7F~P6G7rBtZX80`%`BK>tnx z^zS4<|4st*?<7F~P6G7rBtZX80`%`BK>tnx^zS4<|4st*?<7F~P6G7rBtZX80`%`B z7{Xvr2755roxyJ6lTS2MYgdg1YgDIEtwuE(RclnGQKd!&jq)1hG|FnUi$*(Zw39|V zYBWfr9W>frqk$Ts7f3H03%x)I&aC{L0`L z20t_SiNTKyeqiuDgYOu8%itRZUo-fM!IuoaVDLGE&lr5l;1dQPGx&(XhYUVo@IHh0 z7`)5i9R_bRc#FZC4BlYyI)m33yvpDe1}`&siNT8uUSRM%gXb7L%itLXPcwLm!IKQ0 zVDLDD#~3`y;1LE7GkA!>gA5*Ea6bbY6T_yFrVx#Z5u!0MLNq2uh{nVS(U=$^8WST# zV`7A8OpFkXi4mePF+wyZMu^752+^1rAsQ1SL}OxvZV;~+Lf30_okrIxG%9qBM*r66 zUm9Jl(N!8X9(8^#FgHsut!r){ECowpY!3hkGXK);YV;LO7U?YPT1{)YO zGdP;TQ4Ee`a0G+(3=U^-7=v{T)-qVbU^RnP3=U1S|W;GO9k@Ws9*y*YgX zP7Yj^UX;tk-9H+YwDWRCGah{2{ZkN zr_xA0^+wEdL|PyK(B^RhZ*HJ$Vv#A*@L* zNgj}#iTV8z$=#B9% zz}MIv@mBoB_!IH_I$Iix?3dhBc#F~M{u>)dz$0o%_$A-jeVmrtB zW7R;{SUeVr{u2E<`Vn?rybygH>jrL%UKhPQx&(~*ZFcVYFw)sc%LXGJzej*T1=~(!>=fx2=^5z~iD3o7&+uvRVfYQ4;qX}azu{ZM*J2I9dEw3B6T{6oxp7(eKzMhY zf>i`V;o~tE9vJQ&?jBBs9r!x<&i&MV$9)-IA0Kq@bZ><3#|yEN;8b{kT<@;L$kTrA z47br8>F$Bm1UtHY-EG~@7=8NN`N{dx`M`M{D+(Tkzl#4j*I)$dT&LYR!8sb^1lQSH z@VPBsa>DOLm|m`g=;cai8y#DsQFo1sHR`5OSB<)8)LElW8d2{I-Zt$S`c|n%y)^2n z(Y6}((C9LhKPrX{^qnikYeHl@lW(~%X!N{BGyx_wbZG*N5KVv)q6siUGyz74Ccp^M z1Q;Ruu_8o2R)pxsijcOatL^F1j}^tzj}@U-U8+qQ9jy_)euYBQS+i*jrZSkqU^0Uy z29p>}WYEZ90t5OC6C&s{OaS@}6M#O$1fb6_0Y-Bw`V13yM)I8z42Clp#$YG|`V14P z>iNzP275Btg8_Yp3G!}yXIBP;8PqYTWl+PQnn4wVB!dKlID;62D1!)tFawu?!@y=> zF`(W(%542x-Ld|~;A#d}G2q&2UBP!QXK)#VOBr0k;9>?BF}RSy1q{w-u!X^S45%|B zN=Tg<0jM)00Ci>rpw5f{)R_^0Ix_-LXGQ?(%m_f883CvhBEa!1i#j3V4s}8Vpss=d z)Kw6G`U3(i;8X`O;EH5%MY6aeSzM7Uu1FSFB#SGO#TCioiezy`vIeq<0SrnRbYsA; zC@al(__c0s<{Wk%q z|0V$S-vprkn*hsLD8Gn8{2~hRizvh|q7c7`Li{2M?ZwGQGZ@8SB!lf3^k)!b5M>Zy zz^yyv@*RH4A%4mse##;Jl#3L(=x+vpG5CPN`wZS=@GgUQ7`)BkEe3Bgc!R-z8Qja@ z9tL+axQoG^4DMiXJA>O8+{EBU1~<^GSK~O0Wnx;qah#l{ZX744sT;@1Y3jyta+c(+$n!0hEoThFZC#R_!$H{5x#&L3*x^bMGrfwW3r>Psq?XTp{ zQrAXxouIDc)peY@j#bxsb(M3qIDS-xv+BBwx>l&GoXu<;CujW{$H`eg{KBYsIqTOr zPXGMQ*Jz$bx;x|Q?u?t!v1yG`8YMMKXcX5drcqR*h(=+JT#e94mz_2jQ#%S-8ih2{ z{UYZWzUOSzs70d<8Z~RAyCBX{`reTm9ih>BjSko7Fpbt}v{s`v8m-o7l}3kZv{IuL zjI1#l?WNIZjYestyQZNx`CjM^jb7L2HH}`?=oO7#*61aTUeri;EJHL#B06)Sn|16> z8qpXD#nNa5AsUS!M57UeF3>5obwk>^A#L4|wr)sUH>9l_nyhna(rA)K6E&iNWs*w+ z%Y=5)u{5wu_Xg>EJ7~1MMguh(z^LdEjULwMA&nl?=mCxH*9bpbSg!(0;-_DNVGM>c zXkdVTo#a$9C@{z~z;A)%;I}}6ehm6Dz^{Xh!mon__;ru~W4yyc^Q~7bd<{Qk@A`i_ z3UFX%-^>)85im3}80-HBW_n{BAcgY+eoudw{uHMMybOPT4`L+X#`IO`3vq(Lsp(_j z_irUu|L>Qck#021@UF&gkUybFAp`T%|apG!T8+57)sJmAvQxvBQl z38|w~Yf?)wf4>h#1jeKqQgx|pYCx(iRg4*Y8)E|BCO=8OoqP%B5k8Q-19SLSVpQOa zOYeBEAb<|7QCN$E%9vP5q!ztlK6Mx zlEgWQw#4y?qwpQSBrz{B3+EZ`m8ehD;wyf;L}{X1B9XA-zsA4$zxNG~af7_Qz1_zy zvD3C|{b7A?eP+F4x7x?qM`Cngv3-EOw>`-oy_IkM{}*-#*w@&X*k@ypz=G(U=(Ong z;H-b-$H?dS&VM=bWaR$HZSYfgY2=(pE57pA<2=R%@K!hl^ZoVq1NQCcF#KizfO8sl ziEI}s#eRWA#0vk4GaEh*zZHHFCpX-W9Rt_n{D$+xr^A-IkX^_*gcVHM!hsZkHIlY`N_I>uP>X$#vUH`(HKJb|y4OwL>#7kAgitK?90*a*fe`f^2vN_05cM1gQO|)8^&ALM&q1J~Z&*gr z*BX7L(U%&1q0#3WeWuZ;8hxVC#~OX4(T5t*@ClXRS$*#rjh@!%DUF`g=n0J;*XS{g z9@U6`Q%MH>rV=_y$DXLs2^t-*(Qz6bs}c2pC>QDh5uzRtA?g7Uq8<<->H!ftO8guM zbR>f#7_4V-ID>r|ppwZ{Qy5HU(8OR8gNY3AIU`fyb4G#@40dO*8-raLU_3;UF&-j8 zErS{c7!Q$A+cOx*U;u-z47xDr%%Bs436|0$J1*By=eAtoa(v)93(=w$q3P4n^9KZm@E?jP6~-ywDjMovzVo8g167 zU86RQ7HhOfqY)Yn*Jv1{qCbT(L<#T}E5RNNc4kn@fK(9Yp@o)+4CoD))`;E=bT7&G zTxv(+o=fdWAcxc^MDHs?^d2Pi2d8y@*XTEmmTPo~M$0r>s*x_ALnfh|=?zDS-f)EI z4M#}p;b=W<&9gPn);wGDENc5A7mM0Hp^;n`iyi>o+dUaGhkdYfRPRfRx((@KVGLWIGMpo3{GUg17zXj`Oa|+j%9$BLnGMX zI0GKM2%~!{qaqA=@FL8E7h&{8B!>qt!WQ4*!HY2e7Q26|DEBW0sH&9Q<)2FTcfRu* zgI^i^!r*5HKQZ``!4C|+XYd_^Zy9{U;A;k7G5C_f7YsgU@ELP!$H?Xf+hx&7@%t+qZ%1ZU@)FRl0kw2 zzrLIp--$AaFyPmh!>=#L;V7Gd#eiR5PLaA}|IOep27fZ(*O$$&FPmRqHdkYtEpM~s zZMMA4mbYgM|9^{$J}Sz*nE7{RJ-qk##Ekx9>9f;IFmGRib@lhBPEXB)=f4!bwXegs zbyKoD@qOY!%zQ6O3{FJjZ^p02j`wNtUE{qmTm5eALCjAd8#@>?(mTaEV-EWH=zlQl zyf(T|bhl`EG#vR5=l)$AIR)RC(<3#J?&0sl&*9r~Q+O%96?Y29F%$fVdpTx)=efh& za<|BN+qoO(5FGC8jlJO|*c1LD_JX%#E%*d`XFFwmVLfhLWgQQ{fWxhRmK}O8bbsiQ z(1y?fq2ZzJLJ=rNe`TAubBc>|6NhJW!quhd>dFJNaV9Of4(YYIztb6n2H`Nni^h4r zkBnZMD^xVxV+2yeJ4V^&a;I}iVWM<3 z9EcY_8hUN+qte40L@<5=r1w_QKGj6og;$ia&1FJ&aUQWyP7FRN-D{=As55j6dXp{*7MM02?Mm&N~ zQ6dOM!P4Fp71fgjA5mM1?@QD(G+GzWForh0R$w1X@KU@=hiV{I6 z+J2ZK1fD2P9+!%?uVaE=Q9&R@+t+#oQ&C9}imuTFpQ1z{MOQ0DgHMzgQqfg951*ov zArw7S6MTvi0g7(ZzS1eq48mMv-CF$9BwxA0$Lx%4+E;MY8h;eZzMQf}s+Efutn|lD z#uD#s+7D4_Yt3wPIg#x$jxw`F6tZ2avaJndi&&ZM5|y^v$X5I~BHP6rWn?R&knJLs zZM8pJ5i7Fo(SEQ~LPp3{8TsO%_rWuIv@g_gM#ds;dhhlH@INk2U(Z$fa~9Du=Yu$P zrI~XL<$R!y`#;!w@9?^cYj0TRoPB!3#+Gc^(vcgsaXaUzST+!lY+)PRvJ8PxjhYD%I)M;+2_X;&5FjMf00|)p5Foh;>7k^)zqO|CBkq0P@B8C>zvp@N z+;F{TezVs6X4cG^y=ToDTQc$>dA*Wc=aYU@-voOdNtHr08?-nHJy35Tw3rHGMdw4J_TTSwcL9osv$ ztzNLaMFq1g*3Di^&r4RWXjwjE@0yYl8#Zqqyu^aVi(8gY+Pm5tIr0#tqjSTV9fL`4 zU2s&(jJ>Oj@Liu@oi$c4{S&Xm2a-pDZriJI@|>}V4$ z9Fx^u0N=llscd4N%kc0LUgJnN0DJd~n!*B`N zFpEvY>=>+J7)uQ^b?+inUUn(M2yffo)_FqvW?$u7S2QhO(K@GT@szy_y^%Qu-`de} zVjGsYKJ+3)TAjYCxv6!^-XlxU?Yjm=V_83O?-97}&6YhVvSs0t>3bJ=BgaWwr|PzC z-LbK=qtl0{3NKx`u(hT2z`gTP5!wBlwrt-7ojy2MdwKJ!v3uvC9<{<&7(57Y z>fXamyS1;|GI+bO$kr80mL9mbg(|RO4qa%!ZGBtE=Js_PJ67PctsI*8;aGlnTg&36 z=7lX2_s)gvS^?gAay!g*{kqQWE_&(V&8;gY@5SxRPB2GX-YTmJ>S=)_C*!4JWzC zMN8(k%sG5sVK1(3o+2yIzG>^m4cm91#OYg3IC+a(plQ+4g>9?zbLQu#?8QaSlVwww zGNsMYM9nd6FRpZ+BAdfTmoy3BXp#wgalLa+Qq*`~T|jfv-h)hd?z;99PTPUm)e0v} z%aA6Kiu3J2iN9mv8y#BY+x25~w`@bW7B2MWyVTV7L&ZPd8`W?>ZKZkgJ zx5CfAJGDKvF10LmSZW5m`_svPCjTq>6YSkTl)NR`liZ!$hEw-T;d4J7JN2o=-xI${ zyqWku&e-3Kczj<q9#wNsu;y%CMBc9&#*eAaYk@UKw+u;SjJlce_ z@YT_DMt&N34nFU7^npWU~z+y_@U=(z{V5 zG)TR;8Aj+u0_#1+Nr2uBb^_@=S?Q%BtoI}vLVDNR38c3}mf`NCGUf7?L(#z~Q!Z~g z6bUF(E^j$3*2}tv+zX6l>3 z4R#7?4qWf1wC@Uh%}Igoz;%ewkE=z699AB<)&W6#;2I|d>H}Z3Qkq!()piQ2-{+=4 z{eY7~>iaGAO+tO210wakP70~-Q7M=;1bci$741POte&qGAZ8*3>aTP#r2Yz}o-xeh zatB1}FLP2z{iRllV1J37!s@@`ra=A0P70~N$Wkxaf7t<%`U{;DQjg2bc)CMSZZYq^ zWhIdEp+9vJF#r9;PJrs6Z%UgZ8Qkte->@N2JoI%t0eXl2SS83gW$0^G0_%O%Nr2v0 z>;%&LveK*Ol%X%#5Yqdioj`hjq!Q$uGW3U50_%OjNr2uT*a@Wfd8Jp)DMO#LA*A;%&LJ*8L8DMO#MA*A;SJAw3mS0%_fW$5Ep0_%Ou zNr2w(*a@WfQKeVSDMP<)LrCuwU;cfZhk~1k(F})Jrmi zUEOa(Nbh}i0_nY1C8+hwJyrtiz1vBE-n;As()&%NSFd00v>~MT8+HQey+b8n^fTYv ztpwKlbteIOZ?h9f@2yHNWC*^u*bvftvz zU8~3MbvA_bUTY_i-fL8X8o#(Hn;+$^kNDZdiD72w;`mr&rTq{ zy(&SCUtE|i^wMA?y;nI2(7V@8AibEog0{X0OhkiTM7F*^11^nOAX||BB4k z%#zIXOd2QlpTnE_1@OjiNsmtlQol?+j)-~Zq>f1)lp2xz1QGEbNM3~qc+252pGka# zQ|@;pF2bqy!xIw{Ui`iIlkw{jGXP!W6G1y< zJ-i1EfVtI(B{b9(#SU2y??DrQy3j}<0Pm3XU=MnDK>*~7*YBEvYg9c!x+nDueZlQwrpb6j-C4eA` zJ!mG%H=vq22mle~9cY%|5M=-p#SS$0sJJ85CqmSM_n=vZLzHDOQQm`QfJ2l4OqBPa z0pNR8jgGomiYV_v6Tl@(06`Rc&`cBnyGI3pi1H3JOK^xXfQe!Unu&_LS=~yAUF;s- zgJu~HQI^3(c@LTa4p9a$QQm`IGpCTJ9_8Ccgz>A*-K%&HngB%91u)U8um?T7AOP~J z6)k~H_bT3jW&nu#BoNW7umfFz>u=;OWIhD<=vBN2Eg_HPz0ysn&fF8Yycc2;I5+wi=#SSzPg@n>dNWTQ^ zK}#j*QHux3V4~QGmH?M10hlQ7M?(ouMn*zIog#|;XqLc}kqZz+u`8_rHc^rwdX)F3 zNd z6a{d5lmLS01_Q8(3IO%!$r|7gWdIXBNfH&4ky{B#biJ105M>!mv_k_Nq6}c7CrSWM zMn*^7EJgGL1#pQHKoDJL05(wpAfoLW;1Fd16FpuM6_b%$2}!g~%W#OY3?_P<1~^0+ zz(kKFz_LYoc6+nj=CA=Rdh{3tAfhfn5Ix!e9KSwD5T<*S27stf0uxJv_j|QP)r2_bf0w9R4FaU=r1E@z^HNYiG04BOz z5*2Q5ZY5-oF4Hnxq9lWRbg2foLal z5m?-Mt8>5U6wK!PIaEJ;7jnRWNz#+;2COTUJd}Fj8 z`{+W&ECuip1wasOGysPv1BmEM4RDDPfQdFpqW&>Tm5@DJuVuJI89_wrG{7ZF047>1 z0lqO>rxy%G1#pQHKoBh$fK5~Yh-h8|9HI{}^S2XzuA+hC@^!i0Cv8aELO1 ziB6RO-xwv|H=$yR0{Dn((>>4t9HI;$qLVeiB}xD$I!O}sk5Q_G?9qu@hD($YOBU1n z|Jt&b>HYsP#QQrtd$fH2|8eGi#NA(!8K3?n{Zjhc^yc)z=@g#Uml%| zSaB~$Zo(7i==Zqu?J`7rpBaiEIKkb)bFdda zGVtrbBY}$o?SbiK|3H-o|C`ve&8w)QtI6jVK5#L4}3SLiF)e-Frn?+wrqq> z>Cj5;sjtAE-UF9TSBG-}wylHjzs~o-&(qc6-hSH?K{M6_w~)q)Ufu9~0L1257E3cbEuReT<|p>R>C{Eq!w8i&!wAl& zVi*LTtiDlH<15nNTpFoG6+t-P+cHH_e~Duz*E&|w4x?l6KE zs~AQF|1fgvB8CzCT7`)h^r#rju*@)8t4!P!7}U0`VYJ4tV~}Blx}k&|Myvfg1{+4I z1P!C{J$Py0VdS`nadXbZZ@KgiJFo|@4m^tLK4%aSSPr6TJ$Q}aL8QPXJPEDG&;dPo zt6&qWD;+|FR72>%9=u)f5ULw&1QFDXps780&)^XR@L&Uo;AQ|F(1W)QQHjz4K~Oay z4(P$#hXb_60|C`|7}tZhkP4b<>wLq3P;95mm#iMwgI5uSaz=ng;rho3J$N5stA{Mt z=ryc)!HU+J9)2w$ojw~T*n&k(^IE3$;I)J;x9)Qdm%z$!r}f}1#le>vp~SNhj_<)s z3tLoe$-LZvZzS5H@an=ARr@&>MPO}Fc#UC;Qs5GcBD7^uc&p()sx7rBLK=(0+YMV( z?O+x~P}`#Lp2HRe@L(22aNDBr)*~uWYEc9=7KOJT2WVLo0gXlBEr@NU)@MM11)~8K~phh&@+1QipR@W zgCEqKxB&g^PV2!tpQE942uKY)1ZMQ$70}Tz$Pc?NAb!~KPRN6%ba`BlS8P3K@LtG+ zMy+@Kix>jyL34l{GzwhG5@PoNJ_L0| zbx*aHfd=y<@R6aXN(1nb!3Us^3_YU-K+_BY~|y>R+Hc<5gY-~3td%6~WYNa|wj_!m-<$DGnc9oB&IFt$%GZ{hhGTRC7H8%#+|*tybsV@kV&%g5gw=#zEOX2dM?aWi7Dc5w)<6zqxX$7L$6h;2ATEYT-Nk zrm^bi+oWEsdJNP$_+~@73X^)V^f6HD)SC_ElV($UvHB6bN{+l4Fm=9c2CRe}_#n+- zj=N3h#X?9lgLT-=mCJ_!duajGLd~#!!=?_Ljx^>*)9JizN^nWi2LU`y7~t>Em;gda?YWb7=Y6PUrBPhVqFq zIy*P17YiTg^^myYWgainw!##WzRSs5&koCTBbQNH@O$fo>5Iy z)omTyw_!dl72CGFWyNyLs}p;%^2xD%xrghtT&9Jyb-7+z`f#KArV`Zwb-h^X@KjR! z-%KS6t*4U7y;$#vUNFT5sWDAGlY6n|sbD)edCR5_YtqqT=Py~*!c)$)UMzTcimEM{ zqBPo>qOj%>^%!i5Qbptxh4l`bd2#S5svdqG_7sK1jsy3N3JsT&1J*h`Dj?mRqBKxU zQCQ&!v4c-hgtn(BtaKdsAhockD6DlvE&NlImMf+xtZ{fUDGoM85!OsmSl$?@e~OY& zIYnV*W1#*iNKfhclqw>psQsjwm&O#}$-N$1&-N6R^}+q4Lc!$}m64+Y(tT5u0*War zt;BxL6a}6czEo2WbX-iVCY{D4C*^Txy2Ny`D6m!l080u-0S}k~2hMu*n2a zYrPZnL7mA&LwPa@$jL-VwZ@Q!@nljaCzHb9lL^&SPbL$4&XW^FVXz5838o36=Uh2K z2xO`Hx}J071W_;}y>x<*GW7&8t>)S%K|=+;f)di9rXlsx!R~P3SpO?emp> z{i9t+`5|LU&lzf;Pkqtze`+AK{E{)fXP4UNQ|OXU83fm#GA8z%uC~Dj`2a{z^#O27 z&rY?^H|Q5Y!kRCD(|UHOeLnq7&$rJ9y!iw;wP(B9=hJxe8IEK--vB4}bn0rCegq`A z`Uptx|GNX@%d)@3t$#OUyRs+Z1poMKDDy6&0N#<=i`f0gWDd!U&v@zIrhkyWH+^OL z%=FReIXDF{EcLh4`>AJA52Siw+1zNbnR zto0QftqK<1f?vDwjl?0RmG2p)3Ko3@D^ge@u;iK$ZC>8&*7Sm&1&9ozJEBVAaHMQN7%rj5i9>5iDlmO1Hba$ARyD>qhKJ<5aOih^oE5p8s-tQl_x4 z%X5of`P0|`Ibu)J6qcQ?3nxrrms)ovtYuE`h&^#rSayRh95aP|M9a^QjDLH^h&@qL zSayXj9MOg6x|}b#=Z>sBpREA3KERh~$c(J+K1%_LF5tpV!_ItX-Z!he&r|^atozf? z-WvPT`?>BjnBmezrSog&$=mL(c{h9ta<}KYPd5nPjQNveCjITn%W~a2 z4Z=4yeubK1N3MH^LAVC8=g?)p?XG?}*S*~!Tr24Q^N}w=37Z z%^=+V>|S#ynNqI%G>Iskr>4)w;6EqVz11LG8JG9H3QMlYb#F0%bTM^GrW?*W04)7xcI25&xvgv%GtiEGS#_&`%CJ@u<C-u7E~>(3%1IFev)(ZyqxJ?E(EN%fd6}lRbT{_b#K@FzY@CUK>A?5Bh2Q9& z^V8kfCllk6;Z@y-Q+0UMx%j*JH!9QJLe=4XDIeQgVo*BxtEXH=KN{(7>}rWIDdDtj z#Y578@B7&c`1@hH8{1T3L`pceqr`x8;ji+K+VE~{L5cCm@I&7jpuc^iyRqLShND~T ze)=gqZg@BLn8avwidA(VOyqemI_0jO#BE#NeGu6i=Zk`RJk3@G-C6wV@z>H&E$^PC z3d-MgU9gb~(mi@Egny4!x*K~e z6QbCfa@PUH-EYspf_ii}ZL3hWy9mgaJ$3cX@2wc!&2O2=c56SCe+C_IKLW^ra*`cwG+ zU!UHVJ|aB|G5MZPeKU1sYHMmmsxdV@`6;{r9>&di=O&L$9-JJR_%!hbqVDx1wkKK> z`9wDU`}hxWTm8lHQxIYAfOt6etJwEq*CVdp(Xm6vQR`jrT0>cHixtfYSkEyt2?QLXU>74xNcx z-Wx*|!HR_P18spX1gb!8(7&2K?1PdA$6Rq9hP^BB z3pjsvEuC~^4~{-QQzIbKgTq3=gQE`vfILwkLwRr*0CpO4ef1OvmuD({N|zDES&e*7 zB-dA`5#+*WYjS->gMhn=PX^po#`G01gmGFJW5662HbRJP zt}kz-;Io)d3J!GT`eqme`1%m!vC@aFO5!_ru1mKeFI{u`usE1z~RaOa?R<(fFZ7P=lZBJLUb$!jg;Xq6$t8BY%)rKLzDqb6x)gn;1gY@ zC2G~7{yuCZ3V=(L0D>rX5EZ~CDgZ{V00n@Ex&T2GyM78F4?1ZH>}=JC z?LG+rQJ(}RiakD@qgBT1Lx>(_PbdMA=V*-*Cd!^r3;s?>=eKu$^hz7Y}HACOOyai6gzcH)H>0nD+fBL2)+>`#o;R;#5ZgZ4qrwvUyl&HT%-Qw8!Lnn%@Su5bA2I=Aigd_@C{lB zdCh{BL4!8e7cdC$^~qqqWyF{3!TsxlFyG$uj1=(oL%_H9T!R2#AA$yMFLtk(uetYy zt6Eo-1Gg9ZR080#B>)fHUTjP$fK65aFmQX%)BuMo18Cs(oPn)=3K@2iPm{?oc zi;q((Q(Um1GuPDg;=>e7cIhIN)Hf{Xe7a$wvbRH*m)Amwd>s9S@Doj@EgYE;eu5Tm zE{4#B`O1l2e6`}rEt_jqydJB#wIh4+0ZZmtqA71pt`{G#xZca=y49v^AsJt>xb$3G za>J}zl8i4{GS8Asd629wvzY6XOxYxPYVR?4RU(JNy21U|X2Lz#b`Ck(2lx3SXt;C^ zIZFB?K)UN3qJhFWWUUfAxN``hZRe0RKKLNDu$@Czt6KP-L$qAs9I{Hfanudw970&* z9J11e`kg~0R62*Ou%UkE5DAseA+3tn;Lafowwyzj`{08#gY6u$Of`ewIYi49&LK;s zOG4dX&LM=goI{pKkB_=RoI?m|IfpFvL2c&{17+usMVM#UN1UY^?+gQD=a7ZcIizk- z=Mb)`aSrJ{QaXnS4|sih1p7c~!Eg?t`2RNt-Yr8sz17}f-ZXEN7Yh9rx9mM0zA(Hq zd|deOa2;+2@NfhBPxxMd>%1?;?u_-vx?`Jhr{DZoZLA8n`uzpF_0Qpb{%XX=-x57G z+7g`>9Tg2BF8+@r-;LZE`D$bjZiHVGnG?xJMn+zx1?94 z4^2->4@vzSeh4q5zLok~>H>V7I4X5`sxDQP{7>?uAv;2Ximg16$U!#TlIgDZj!xPLGc_&b{N|FFLb+;|aO z-8!dG$Xk{Zy?K9cg0+b3d>?0Vx&Z>fRAc|gVRbgF6`zAgCAHBvBX7+37Vy&0~XevkfZ&j8A1r&pR^D$$wqs11@nz&K8+&SqihP1EaXRV522GR zCcx-kOQAg{Mz1W*5H-01jsn!w%}dz}S%~+}a8rdSZx_4~sIdrZ-EZWbUXsqTy`6Xm zq^4p#wUoC5?~PFJ>qaoY zSl-u565Drq2xBapR3N=ujUH>(@NO|Rl9PsavyrFg3=a{Fl{`-LZq(gedg98v!PMSN zCmuo^D;c7jzh;!n>B76tC^y}VIYe5Gb?nN!Mt6pDz{>k-NxJAH#IKk3FON)l`wY_Q z=7ExQA)(($kloy;Yi1p6^5CAWteoZ!If@Yn)=rh9_$s5z8O3``(nTE*CRwo%3n337 z?&T;}r;5DGb!Xd0hrG*74Xjaoscv#}Cdj*_BoRi1*vV>~@_6?yHhOHMLezUzBV|-y zHu8*7A&jz;CyeR>Ya$lxqL=I6lzgKcGttZRPax9FEET=fnuZO*=q36mDBq~(spwZq zQ`>h%MKoyoQIpu{MV2y)Wc15c#nkWZg_cZBGkSskz0EgrY7{t$%Kf2nghh=c9Odps9Ky+nkDhzIg=~aP^wpz+;gIjJ@Oc~rV zOQtcnrIt)#a7&EAm97J#i!B)j;*r?z zV{gZvj@=LM{EK6q$(OL}e{1rxFE^;#|a(%+O3A{hRcg>F?sJ1l?q~IejedNT^GXPA5};Nxci7iHB3y zr7qz+3{%O!pt<>vduSP6dK|Be_-K(nXOWv8`86+nmd(lMg@b-TymD}Y?UE8WPXomf zfB>$1z@mwOjqJM<_>xqS&pW=a0bCX#fwKf~w+1@L6arl;9Ul~|V-Iu-kq}T2&gTL0 zf1kjrXF0%bmG1h@2QJnEgyT;DYbhb1;P|!#aKVPuBwT$07fN8k^^pnSsu>0%U2wWj z16_%@aYh2A#Cs%gk?WM>9VUTDXNlgS8tC+-hfCX7;v%WqJ46E=)n2s*3e{efN+^oH zj=ZHx79CIH2rhLJDvILpMdT+M=r|fh-qb+hhaP!D109#6$m<#?*hPMdLp>|NdODNP9s0mK*vraxC2T8 zh2=+npn;C%N1oR}F=isqX`ti$9eGv*WzT$H1D&1;<2E{}TJ%hKss=he6UL=<5-55m ze4qw8Jrka+fud)^lQhujneapn6g?9@Km(ng2~W^K(KF%k8tC*)828o5I*OhNk5$0D z(=*{Q3YZr?6Ry!fr)R>ryiQ1zb5gik1D&1;>!FYrJrmaRW8UeR@F*=&^h~%?OLTi? zqz1~K8KHr0&s1oj?3r>2%;z16fpa7f>0*vKTLT@5fwMGFNDQ2*flgls&d@;7*8%bA zj^=QuuLGxRpq$=zYKcx?2X<(noZhwzAbx)wGG%WGAf+>zvY%?8L#9l8oS`2uL8k0$ z8t9NI!!1!!=o-KQtU*49@ zZE7vZ+3X+u63i*iSP1;xK;?Y)nSnYD68O|W<&5@;&_8Eot7C$JHL^31E~e+z8t7Cs zuu22vLV2YIIwlxcp@G5#19(y9W$MaSr;P&3HBhusV3`Iw11zvq1LaT15)E`LE3jAt zY7W~ghiAWc~r?o`K{sT{Gps@eI_Y}}ws|21@K)F^4JfVTES$tOm zrCB_#fv#CRrh(EdzN3MzSv;zN(k#BMfv#ELK2DmT@oia}#kVxjHH(KeP@2U<8t9tE zgBmE!;sNsiKc(#7cKrX@eE%QC|KFQA4fp>|$;8tirk_sVh#mJs((%+AsoPSgrxv9~ z;-vp0_zuvPoSyg(&iLPe-Si_86B7ySq(2|OGk!TD0WOZ`<0*VUcq#VH*jHjF#}1E; zj|HQ@#5aPk;x2$y(Yol+$R8s=ihLt-VPt(|Ze%Q?0{%SwDDL~)8D0@ChWEq!`t$Jo z|B~0{9qf$^eH?l<^v%%4p_36EaBQe7`19Z+!T#V*?7tU-`vraVN#p_2YcI@P2My2Ny2oLEVZo0Pxa=3s&=Ge*=V zZOL(13(OMKCS^e!+6-aZNd@uuGdUUyMF|6OX|pdf(~jE^yQc+&XvZvwLz^K?JE~~o zE^pVi86#>FvE(?k1%_ycEr>&#A#B~+dAikhp2i?j&eQ$cdAgNIE5}fQ5Z0}or-3lu zrwT#Vt(~V^>DD`+47P6VJl)ESeGp=t>(kEDz!>LgsfR{$pLU*Zr2|SnA;h=u9I}6M zTxR1o2=Y1>TF%x8moNJz(`fEH%R<t_o1xG%4RgdaB(aN>u zlUwzez7w?kf?qxWB)_t6o%GAbVQ;JY>{wmd*KRT`>Filu(|0^gZsM4@TY2SLUD?+r z%j2N9C7gY$EBlT!nU-*NuCD1jRtiT+SGe-7KA;aV0yy$G9L3vDIBmy?uQbP3=R-0FFJ5oYIi}8ZKjY&FDh_0S?)3;4lt-50S>}pk0&t)_Nm3us!meu>BgV zqION~TLV`-x^D+rzQFw&Y{GU;?^_LzLk;(Z?$-rO+^%VTt56lXpNHj(0(fejt-(&< zu1S3>P1T*qT^g?zed}E{HOLI2m%N4N45#& zudx;d3gthe4fm5_$S&25p_jm23c2HlK3I?6Ft`;FopXNn8K_35Uqg^Rr48Q1E{ML zztGiv2;U$8E?WW++v+|9a8Ll7tN_qKOhj~$0Ea6Bz_q52Vmi>_aB+s%t%NxJ(}(a5 zQij8nW#GrEx(@*!B)}oc0492{1n|K%qk|5hQ)^cD9i#v*Q9hy0L}wd-O;iAg=qwFz zh%x{~$^ZX5p*3aUS>Z|Hig3jHtM{JwiuZ(fw|AX)sdu(_s&^Fckx%r>Jumc^(7U0R zL*EVE6}mR`73|voJp04!quD#M`?43}_JH--m53flJNNq`ioowPZ)aY}d^>YHZWFj5 zvoq6y+XUxiikX^BHvRAPN9ms-p5PQp-U&*X2DKTSTHd?xxIfsSO zgQ5pUM?|BMk0b9#UWFI%`weGDCPgYDk?`NbzY4z^elmP__&P*2 zI48U@e02B-#4p$oT7&;?3LPJ64b2JF;+w`$L@E4p@ZI1m!6$?F1h2>Wg7br?1>1wm zf`aQ6^IwYEgz#%G+cik+NlT`Ehmv=9KbdRRZ*Ikz=d`nls9eb`siml^%~`cmO%(=f$~;6f%GnydKtlb zm)Q`^spa@EZiJBDB`Tp&>ctmvfj|Q5UF0M{FFu7E1nE6e>7^p97aze5g!C@36G-oT zl`vE4oo6MmUVQXs8QkL}<3Dx+$@sTSXjEHUjrvqs%!f3_i{_fK{L>HVWhP;K@HD}nW5 zW0Bje5eT-CkL(1}`#YtV5ZqV4wIQSzn`lM|>Ba7(NNA9K1?MT9zb~!bI`ToLAAiY0VdLcvTecOhRUTka{ zA*2_3_9CH9>V;pBPGG&*TDKCw_f0#2^uD3=LWa=$x(y+{*iAP=NH2VVL;~h3?iy^P z>jc&d=N~Hpda-|Q5=ie$O0S;tuybx8r1wX50_nw;xj?8n4~{-Mf%Rgq+)9An=j{a2 z`<&9N=RE91nKGmo+v6sI^kNf=6K1OM`?Qt7da?VY5!}DuvlB?~lTt6q5bgYg4I#bQ za56$j@8c>#jbH3E2?PyBn&ZFYB!Dlrm<)pSep~6);}@Gt210tjWhao{hgE_azYkdn ztoK1D0eT;>6G$(-UPodJt2k4S-}`I`>AlxZAiejf1T}u|wh~zHT}}e@e$!4My>}|T zdi;LFhLGMn>;%$#yGl^w_v=;y>%GlMfZki}1k!tp(yPbs%{GMe-ef0`-Wyed8oxJK z39J{+HlnX+bkc9>*X#t+d!5p&$M3Z^g!EoxCy?H+ssuHDueK6c?>;91dI#(T(n}j3 z+`oGK_Sq29+iNF~-X4{p#_v^D0_)xDBtY+#b^__WLh04x_i`ITdM~pRNbjXGp+Sw` zORNOe`xPevdM~yUNbf~bFUb(&_scef^j>HuklqVaf*QYjtOVBE?Ib|&ZaabWb}7Aj z{C>%Xklyp{1k(FOm7vD&c~%1JJ=aNq-gE2((u_5YpReCy?H4DnX6k)2sy6yVXg6-Ys?l>D{dK>hZhD zhLGNkb^_@=RVAqLdy197dN();(0j6-KzdJ7diD5SZ$n6Lhn+xrPgDtN{GMPXu-raJvu`t|gE>C4lb z(nqEzr^BiDQcu9A{hZX%@cADOpZ1rNcO@@Lo|2rG91Bl?pC!JP=tZpm>G99-rrjGq zF+MBq#a@iv7&{&N|HGociav}e0V|_ZqA|n=_)+AJ$fc3fB8wx1$guFA5Y_*o@Kxc{ z5!HWYxYGNV_fzjX-q*ZyyyLw&@Y4^$OaFT~i~r@&`p|;V)KDV$d%P*%9lR>IE4V5+ zJ6Ij~XW*BCrvf*?3*eN%K_K?O^EYJxfy{@uENou5sE}_useQv{`sZu}lIHD$rrC!# zwXSGuTC}unUekibQwI>#eB>O7UU$aU_Rh}F!#A&8I&uJeuGz`>K9A_x^5Z)M*X6Nq zFmeE!ttwA`dzX1@as#x>IzyB*pWbCQM@$*OCaWl2XGyNDXUW)IRe44-?z5$KFP=yl0&L=(UM$*%LG~@X!49?%7f&9 zl3a8pQ?`&?rb-uV$@L_;|2>Nk$&_WD(t5v_`=v8QCPcvi}_H?oba>XmQhp#af82 z>_6Mev}7X_d)#Niu&58Iq|?+?SO`DUl%Ht{FQBa}`w`S!X`X2bM<#?Lp1Be}(-n?< zAshkCRrv->ICjk-9I?!GrX?Ji5RNeBN_c}S9Qi^x;+U)Q^+tGs`m(YgA@`Z4OFIVO3EaAA#9>Nj1TxVLskqO}lTCRlGxx$ezgd=LXDqm{}CtIoP z-(+Q4!pT@_`ZpTkwXSe&EvK6DD!3CyZGi?)W&bHwrX`$4Pfh;@Bist^Bnyk0(>A9x zMHSqM^08?T;k3)CGA-fAgmBvAl%{9}canvLaN6Uf@)R=OG|MdPDML7IajHxsoH8Mt zb~s5mm2{eg@`dnqro2`2nfP`O;q6wY5l)#9e!LOx)|~Q%@HSIEZ)#pYliU0_E7J(4 zOb9>L2+un;r+gAVvHuuvl-l5I_U&-OjmPY8PU}C~8>MzQn+M(E6nMGCneRW!8>O~5 z6&}C&_8zAwp!YZ@_pkLvsXfkS|0bsZt4+>n{cF5YYLm0MbeB`0%`WGR{?!OcE_XSB zFWu%8CCoPG^!`<-jojwcCDcBrKs)=Kllxa%)%S07iUMk*b8`QRQmo$T6j-&>S?q7c z?G)c&oG6zuYNg?R5@Xi1#`t^&_&o+UtZSd$UuN(wm(#`Vrz? zZFV-7?sf{ez1umhe+gCDcB(!+kZITfyB0_aMkf)M1@-{ zIcP*bhMdplS`aMYeGqci>7OI^M&V@PvZgIV-e2u+)(Dq0Zz__rPJfeyusI6^IiDS7 z5DsNV&`xjvp<<^O_29Q$Q&onDntZ`XaR>_txmF%x5Ds5PFyDhELO7opHMBh`v>@0$ z@1fQ*+ngD@@9Tbf6;<~vrh_}b%D%U z)P+0Qhau86{dr3cSo<+#)`*_3IFXN`55nDy`1$NZEzH^=D4MotTtv{92$wX++h((# zY9VaS0zut8#ULEYjNooQkh+-ygNtr2_ z?czKCM&KrZHxUz{Ke;QpCfS%Aftvu{M0~x0#F>es69*@%5Lw`@_#^Rw_%6g0XpE1D zeS%%~2Vz&nI%CUYh1ihjpQ0~C?~Yy^T_0_Vj*fhaee}B{Ux}O)X^vEdKgBuzd&5_T zJ8>SME#}^25#;F3 z&hCt8EY{90j@g}87$L>Q6br@K#oX>0tf_U$LLmqLXu;LdLbi&_QsS;hM5-4hi+RLB9;7V4^Z9}uqC zfB3|;P4n^vXj!^^$>I2S>uio>Su7N)c25WoCjdGU`ScUQKO-W)SghJTUghUY@(Ywd zj`PV7kgv@^mWTYYDxb=``Gq3#$8bK(gvx6J;PQ~4+g%eLiTa7o1wwb6KoEnRkbv$l z%_j}joR5wjOhaMx?kePqMn-wnf{H-R?$P0j3U0x9g?X(@TjscJ*jQJ{?H&~#PLMhC zii~huv9T5`DiuP=@F5C7jAXfOV``-4mKnt3dO{EXSxShNRKV;I_ln@hHb(_)R(;QN!!O;|f;O}^N&W`*X8 zf6t!T0FxQY`D>70K$_-3`Lzv=qjwLX4x6w{6xUVc;&sU0Pi0eSC%d*D+Osg2{U@MS zqP(h}EMB!cWAaIWosaV4cBjLmDuz#9-P(ee)*}Chg35AWS$?7uCu4V~!XtrNJEx_X zujOPzlgiC*EELA>P8v{QFi@cZpag@~kfb^WnFe7=vkJwryW<8V>f{5}7V=|u$H-DA zFVlid+Xz8on-(Gen4SXZFSd~22fW5XaL|011OdNYN2A60pv>n1xPqu0_Z!GA218E zMAuFOD3MS<6V0$gj&XdghX8G@_&2`UH&%6RSNXLi`L(sk?^OAPlKf(QvASy;R{)FA zCG%$b72xN*y6ZFpsP_X3GaIYBwi-Zf37`&uEe1fg;&3Pw8mhZCO8{D_1TeF%Zgkfs zF;j^)&?5x0Xy0OV*G8GmmgHn(2Vr#AsWO{e$jz=r_9-%(?aax>xBSsv8)P=OpPP+w z&~-Am?=sYdtkBJ`MgB=TpPJXrFJKs~*ZE|mZhju+J9Iv^zLSrS(^Xw3>U^?cH@^Y$ zPtf_)Ic`4Hf1S=J19kIjQNCU0Q`flpMU+2YvJq%H*L8Gw6lNiLC2$EM-WuYqdelrG9d>6zl48U8^iaNj-{nwYjd97NVpc z#kyjyYlVdU6-xoyilDt;spb+T_^e&}1<2=ft~-S13we z`lR&g^t|-U^u%;UI+FT0^+D?O)HA6EQ@5mg;J3dc)sb46YDv|n#;1m*yyRb#zlulk z_WuFi|DTCH7`r9b8`~4x5$lMpjJ3q-V-sS-V_x*H@DO+ne)jiAZ;I}Xc11g*Cq!Ej zNw79LHaZkB|Nb0#H}Xp4$;dsC>myf0&WGVz4;;1;qcW4rjc7Bcj0D-VfnbaHn?-z9XFNZS;=u79zU9RByDG4E+PQ zAG{U%LH3W?uVydKo|Qc{do-dE9+aJutwcP+zi0j{^HcanJQDa@@NmTZKOk5hjAVbA zeKGrZ_O4)GW?$x_%$b=DnYEb(nOT|1nUR@za1Y`WtcQ2Pt?;8jq`=JW!Cwd83_crt zIQ?wkSD_Jzf%s`?R%mkK`o!glFCymP@rk90!*GLQ4tFU2C;o@{FXAu8ACG@Cer^0x z+)S`JejJ}zm=>?Xy^1sA6XO-3M?$yj4;$hi``OPj=))pJ_@%Ev!{CC)aU~GLjuVF5 zNmq3t(8QvA9eu$Y)}x>KV9Jnt%rkwh8gjS&+`enbUDh+cL=E|-er_QAu-okC_Fcnn zwVr_=c8ji1gQ(%n8c@dq_UY#aX7Kg2PH5yBn;On!fT`h37GP?KXVk#du#xj0wB%9# z1J*Ou@cy_?n8gYo*3XTs@F7(rL}(-p;Xg?LJwrnHkCG!jQ;F~&EC4<F0XJ|IR#9mBYWapP}%-SpT!D4Fwd;;eft>- ze`P(B!uOQI{4AmHT?;@8-?5%a;V<UynrBw{hW!kMuUpTg5KiGz;Y`8sH48urU$ve|;Vb%?M{?w4^UMlg zvY(;wMeCUq!W&#F6vHU;LkmC(U$CA@;ScmP52MKQ=9v{fXFo&Xv(_^ygd4b2ST7hp zV*yCv)7CR7d`dspvC(|bJhQ?l?Pn-_!g?l!@c)(y>x9C`EdVKe%z7q;-_g%JTSp!> z&#ds<_A?YdVm*^WIDSio;^!cu=C%U;K0x6^Rsm9|CQC$BWrk|9#4{_rU*qu%h4)#{ zq!1q8QlXq_)a*?HNTHg&>6sL&*}EVP8bs9Wjb~PPr&hr3(UEUh&!iBp-cq5QX>PXw zr10z3Gby|+eR^4>tW2gZ!i-2i3d&aL8DfXMB*oG*HN-GwtemiA^RORT0w8vnvQ@kT zFkaazo{7gWWvl!Qh00dxnG`;!6$&21l(7;3JcfN=E94n-n6g#4GqOTut9WLG%2xRq z3YD$WGbwyhD-<*4FlDR+Acf!63iJH4sBCqSm@$VbTg5XgRJO{`P^fH`o=M@il|ngV z4pYWT08*%oH7@}XPu74F(3K(UnYuElpT(3KFwbl|s*@2PnSZzcW96epVVv4x+o61F z!|=Z>0BRKer}YelVfDL<_{xk|zq@!Qg<gS0YfTes}Y7VNj(Ml38P6Fxq~`a2;hmqe78NRUv8Sk&zYv z6^e|oo~g+z^s`tPl$&Q(INW}Q!eQ1kDcoNxl*4tX1t5h(tY=cVpMDk#gRFUGg&F%9 z3e(mzDNJdF!ptK{3qT4J)-x$ot3enYHF+ea@?n+Kq*41B3M1AtDGXzIzRX^t|G)mX zRKRO|3==iQE+U(usYy+VoB+Tbx&Rx|Ff}7CqU9;_Z_@b<05pjE7xs zKVx8j&3XpoVb{qfUX&LlsZv?5p~je@2I0t)F?A3{!JHzr<|WJj4*> ztJsGag8U;j#1LewAEKsw#OJ1QKjbzopC|VrINHO*kn*VohumTTP~jow9fg0ShL{#( zs~^&!@jST?skfh@u+Dl$3k|8&3We1VDOvzhSb&k}B)k`)l?SY6YUO?{L#!Q!^;rOF z@Q{6@8f-UQ})noB=Z*H?f2l;y+xS=Gtu;~(odwXO`n0g_G;7n zr9Q%`{999BO0}g9M*P2zldmT4PF|cmIoYB;|F24%mROval8D9Mk3Si|CVpmob-XS< z1Tg@AfcO2b*zvJLVwE^c|625}=vSf}qK8Mv;hw+^PcE4?~zNa&BD7ZC;UlF-J`k)cVUXz+vJ)4`j9UBPw1LvaG& zUxA+mz8%;XI3utsP#+iua_(RC00p#~u?*i-*c9l~r}#Dm=UWaRF+lOG6hOr+qmM@n zKvabR3TGt&Xm?ivJTGbnD4G?by^#vC9v49_Ak_mD%u32Y*Z2?!A2C3&tRw&I{OY?p zL@kanGHjwOgM0L71F(CP0U%m6fJ=el5RY9HG8)=_;Hd^%D9p2J0G9!aeCkgppJ-MM z;PzjYuOhEuCZh7hvT6X={mOihbjyQeZUEQ(Ruo7-&qFSNI93hdc3&w06n%gtr~$6@ zmHA-k<}*Xwr6hDnsCmJg~rqIBW?5wqpn8!!f)d>*97PuAmc9PiqF|*>W7tjDgqY zz~MH;p-m8`-C`j8Wx=97Q_`MmL434lO4@TAh(ntoM7!CBxU>Ob+D(SG_)6hahWoi@ z;4oW`OB-^~)inc$+7OpEAWZuU2I3A{Y&lBWhgc9F?FLEvUQ%VX%}rdE^WdP?Sc()X#>Kv^BOYO9oyI(mb7PB5QjEF#Mqwh zKrGq9WCL-> zHg>!v?MW8IN4r+ip6Eav+5{om2iOpoHXuxUf}!mj+f*4zd%P{jrA-*>?Qu55r40zv z9%~@(*v2-#q&>!h_-MoLm1puA2jb8s2+_{j5SKO}OuO39_Kj_-jHF#<%W-KFhG>tr zAueq|nD!_GamO}%6C~|Q3*w_q0Rrgl0Fw3@@*TpSO>IeDcUr9LB4I_lGfISf&Fm+ zkDW5$o^ew9_Kp+VHf-MBaniQ-jZ~i3Y@)=xrWGx7+ZHTd(K2s&)50kOLs1QJVw?(E zC&mTbcVc{qJ~3Ws@|_s>;c;So(!hS2K)%UOfE_{%fvhG#C)WohAWFCd*#Do-|NkQU z7;fJ?GrKn1sN?@%fv*5d;Qyaa{|>SGZcASP|NoZs_;d*O+C84S77+lBNgb4`On#Pp zJ^4WLD)nX|C4l)i$I!<<;I*Neecy^mis1pqeZ0$_8weVcF^W`^+UqZ!;F z;5APZcy8ZDgP?)tAZVcF_MK`Y)Y%VO^^@m4rkC8lQ!E5#7gq*`*_eGBaJmO4jqn9R zd;xSJq9!L>QXIOZ2ZJoP?<5Q1@FfKEU9S=RVNk1qhoa=$VGs^qLI}Pm+6arUKoH*( zEQHOM5zH51lOgltmD}?zXg0e*L@1{Z2 zDZU7!tPn0=AOv5Er7X16(q}wJhUi~}Qq~BEFUerOh@mX`ir-9Ei0EGgPS#Q!z9fbD zuC)*jUqUcn#7CAg_?N?|DTu{zZXZG-D}>7z2*DRIkPX7-%LwXUL_O9Bhc6+RFM=IQ zzT#KIsfg@fL^;+{9KIxl`68yVMmT&4!F-nq1U@CXeBll&?Rlv|ID82q_%5*#7GHrN zzKBjt^&l;@7Sv=I!F&;onD{cnnMfES`WMlMwG^ALfYA6wv|){~`7#20tM(m1@4n06 zO-M@gClHECLOQDUEl~Ny)yXHWRr}_feCsO=l_yKC+BZ+~?|vs` z0ip&iS^_w_640kr`{wF=Fm&^oAw?4g!#bBCg*XxNDVQ+lI}9mbFr-+*GT&k-@`)jZ z5*GP3L(XT06iFBi>wF9uAZkE?goOl~p#Ts=iX$xYZHAoB3@MB-@@stz@wHmWrzpal z?=qC1yQ}t55Mh~bGn8MutM*Y0VUh1JqYlI84^I$V5XMfFk}ERY|!}*L&|4{ z^&-FMGNh0%LVlgfcNkK>=)+o*Z!r}4)Q3f#Z!_e4W>^pmi#~=75H-ka2{uCkAciw^ zzRi&Hnc;MiU+^(RFcBetn#y+>B403^YVvJ{oKFm==zNDE}*)W*;4h<=qOgneSABX;$x}8=<5OhbPIvd{e!TE`*W*hbRGR42LMm zV4{@<;1DGM6QzrwxEAbqV00ibkRVF;KnZ|L6aYb#u7OejnCAuP9j)PuyX=hIb^;%BOlCUGXFV4pEZ8MCpbnHeIoTcSUe52Izt( zDZ?R3GKlB^-R~p;4p9OS(E+;Ni2?4`DQ#twii9__?7G0&WnLA|(ti~Cap;NAt=L&V zBh;4tAp0Z41h^%8X?9EYm~2ZnpM_&j=A+E(na46WBR0Uk<|66OL1S|@u~TU-(Q)EB!8ED1@{Ktki00lGkHw1 z8FBlECH|gxKk;(n@x)z;eTj1un-fPR<|m4Yv55>K_P-DR_wU5N5$}Qb`-b?6_@VLX z@rrm^><_UwV^1IoU>(l=?-%@g@a^CW!H3`na7pm&;7P&d!GnVnfY3*JNCO>~AJa8jfbUn>?x4ne&CRQR9a zUrU#RVe5EMrc8EGG!dy2>NZ7t%QwNHV zTZl<`oJ{K2w6$Yf`}Q5E*O8_MorrO@y{+?v_RZstz-*fn;Lfcb_>P9xhH(o@65Dr; zo6pWFTqj13n`iWpsJ5*;Hg9w&~Q zgCD^eqAD9UZ`i(}eIpvV4RzhVqjOxdslCY@*JNazyk%3ziQ^74$~!iELyhuv z9qpUi&>S7(zF@?)uiK&;;}Co@rS8DF*}6K>ouc6@7vO^9s*VMdj>Zgmuy5z97)R5{n5E_77R@uv$Dscg2jO0!{es%(ORx0KlP|89b6 z>teI${}WXIBf;wbb*c-Bh%6@hzg=}fvDx(h@kXBL|2EbC#b(pRs{fBu9cE{aJJ!e$ z{eO&6uKNFIquliWQAV8A|7**=;XE9Rvh%t5a&MSXYNwA|Q<5%5>1s1d&k&<@l|kBu zGEUrCEaw!OJ>)oFfxda@f46`B55W7|kJ}^n`hMPUo;lI1G;(r3);PO0a}T)!2h1_alF@(2nr+vhrfa&Al+h8_qLs zQBJtI9}M?~^MqU6ZsyzE^IEr=ZgbD=?+xeawy0;@+_V0)_FXx6h7YfxxlrJ8&uA6a zP|M-6ZdnyM(sEB}S$d%5;3Y0)aa!)lQQmN#XNx7nEcb-2w8_iCYg`K8L6&=5tCeFc z_n20zhgj}AT9g@Kxkpta7wnOg`?fz>wEZKh?SW>)`Ig2xhV!sLSrkVAe9?6UX*dt6 zDitildB91OhI7A@C=KU6t;R8&d;Q5mJL2L??b2}WR?SvWhI5zd)q-s}-_*J-!?{zn zaKRYPH~eWZ9Qe_Sz7n|H?OKIxIA7OQQHFDymSqg*RxL{y&MnGt3dT6({G7X4SK8#| z;A1N*BMj$8tyUS%4O*=+oa?nH%W%G?f86jb)V7_tCmAUUEwJMH=i#ID)=3}xeH`tQc1}jgt zDWW=fLORGE9*6LW@F@xlY`W$W7M_S!cx-n57Wp!({4N#(GbyzRSg)TBIt6Qzj zfYQ}lNadV>Yq~A(EpT0fapFTa^fmndW^pMnl5DoB!)E%h-!~mN$KmwXcM_+LyOmpnLGnG7V}Nj#glEpb_5OJY@`Au&D?ivKD8Qv5NT5V$yg zN_;-fu}5%5;KkTOcrU*oc2aCrtRYq&{ZI6r=yTEAqgQeifVt7S=qx^yZ60~i`*n_$(C#h+jtjsV{FMb zw!y|lHrO;{z;tZm0ur4dOCmrB5K53_nKnNkUK&T0XB-DiD+-psL zWX|>eIDfu#eYz;mUUSb{b5DE9tXXs7I=pXhp7o!WRl^Qn{M&RdqLYq}a{38t)*W?J zc`t&Ia)x?0!)NcEaQ>Xj&Pn%DC{oH$-!3yW$qYp|!^f|b_D=C9)4h!{Ls4aDkQwkA zWf$qs8-M(AeCA2%-g=p#pfVI?hP<2M^{-x?@Z6sdOZOIJhP=vpj zi<$^WgLJC(>-~dcF5PlZx);kAqobTINn^Q!Gk7dKJ9z7~^!~wgFIFo!gSLRx31px+ zk-M@`+KZ)$(ITBK%=*>5tDpGwxx=%)@LA)G6h6|!8vUsJvScG6}vUsz8#XOHI@5SOnO@zZtIvKyJxMSHz+p?v-wDusZOod$GR2=^lk|99;X^ zZ!S8xyqDgRBOE%?De2qSyxsA|Gq05O(t|b)-n^6i;VqR9^aOlA1^L#-N#cq0l_*@gLIPRb{2o;EurIj$jscjwjUoe!8JM-)EUVOplrkn4o`-W%9a9MAVvQxlHC;Qjb za2;Q!dIMyQlBG4jguB|lP)+BPa8S8VU25++i{O+jwD+7T;k(w}bB2UV?LDUx zoPu2LO8cmu(*WmW);{YOR3l%#TGn%_%;pwKav0UqC9{b_schqWI)fun(W~Y=#y&;= z2laDVRo=6en}-5q+G=NazmIWO z`+2%&3k_uspvj8Md$5s=Y7`MO-3&YE7So>Y*+dyQUDoMI%yx)@cjw!Ziwc~dN#;x9y9%)(5ySEXT8iOJFm=E(F3vzR2l)8RYeax^kf#->M7B0{_(4M zKg#sLK~H88j4FEIkVh3w5i4CQcb*f*yqW2NKOWUI0i+f9-^na)Yo4-t232dO2kv(= zi>U7M9&GSJ7anTl7pJ3#Y%cA={x0-kZDZEmV#+P=!M-k$(NhQKa2=HPU|W~SD5}6@ z#C9%`(No5brhOl|?r)_%w3~}9sve;%9;`BYs?g6>SlWXvTq2|D6Cz`_2ZwTSlYbk_ zY|mKM~-7pH72bbYXtd2c0if^uT$pCL#iUI)I*M zc~F%1tRMxe=fDNYNk8u`8Zwj9Jsqe4^gE<;hbZq^E;AI|41K5Yojl#MOlByE3>7`_ zi6aZ}Hf?rH^d84gD48C(#E}UC$W8|rIGLr<$C7=+B?TKQh&EzEGIWqRi5 zEW%28Pdl{=e2*L4R{8F$m=NdRlvF7v|Q(>*g~hP-O`J&A?zGIogfj;H(hS(%<0#6kch@m8Is!O7BdF76zkJ(%ff z(ODW~mS&yB9c9}-*ajwl$@DboENbFx)LGm?wQWh~ix~Hr9-PD=3#KMc9K1kW$m7x} z*!TP2Y&)-MQKkpSE>IQ%aKXxY;5LRiX-I=S&oj%Yo;=@dkj(H|_w&7VRas9?Wb+Qk z-^py#MK(DaO*XiQku`5?p2@GKqk7;WhItIh9&7Lnqio)>jQe=yLj&~wf2l--y!P%#=zczGXG!w_xdlwn|r-K?0emJtFO{j0F%-omr1`QpN{ zvN2atMCI1Sm|C&nW8sRr{sYke=P;JP!VHBiSh5(qLpoM;OzX$2J$^o8<>#59=z06K zwJ#F*$^9#_Zr;Rr{pH%p(LS$j@p5cFsq4pdE=z2_@i!*8^&Vtja z{@=3j;Z&3QaT6OWTS%Nu<>b*vQ%&o~&8%vcD2_Rq$^qL4Q%&io!;t0)JfBPDK&|4_ zu~d8X4)(+9$E|hLbbdl2?^ueW%KL&4FI~8c_2X760pu>`0N7ouANN`fP^T1Of*}p; zF4m8GuL8hb%+)~dV*PaU#gSObk=#XyV(w{lpwc`DxQq4UYo#&*KN=T6?qdD;T*(08 zX{`ZpC6Pq&`BDNLq682`@%>T*ETRGczqo#U&r|@LCh< z`#k#T_#|nC+&T>vLV#>l|8$Hekfn04=d}x=X3h5RVQF#bk`~a-_D{1A4qrkr->DkG z&brzR0`g0~Qw+l4O9;VtcN<~x6$s*6XCZ99j9|XCny+x!bqd0*o9&-$X|egT7Unz2 zLfCv6!F+2pf?ZjSnMTF8+8|uMKnT7QZG_F25yW?bg>d*1g85cyzQUc=DTw4-X=!oz zk{0HhwGa+pLNMP7jbKMlW2UJ3bGbpde1Q;r%WQQy?4qrkr-w~Q` z&KVeu6R;+wJ% zHeW_C-=yG6<#72jM9f$Cq)fA(z*zSo0U^F|3t{tR1oMq)gxkJ2n?v%A8id1_5Q1;S zMp%3Wg7}6lgw2-`%r~U@dfJyEf^X2$Vz;k=5Z{1>u=z3qd@K6dot$6Zsd@E=KpZu~ zbSwJVoty#0)&UUPihj70(_TN?N@s5>B@MzM{VW3jS62hLR$g@`-FStDA%)Ixuo8t~%WSK-2{g(W_3A0I^$518`=FAbQoQ8sHEm0295c%K})tD+Pc&?>h~^ zCdvRNdWs|}cdR*ukVNqToNJRH7E#v0MDYb&0c@fSV50a0&H%BcOWVNVFOn!eiA#V( zlmLP#zKLsqMN|NY=t%}(6J-Ds-6)C5ZCy?wm}net$#(@VCVyxF6B?1_KvlKE_vrr!sfLZ{UZSzRby) zb(s~JIhjJHDl;toAM6zPWBSSTUFqx7SEhT?Thm9TJJRjxe7X|n34Vhe1LR3?C%!6N zp4yh$k~$)_Jk^GM0~M)M^54mil7C1(p1gz45$H~CP9C0ImYkj3BUzqICjOQ9F!4&_ zvBa+u*C6J=xrt4QwTY#Py%N(BWr+lK5`2Ku2Oo*w7XL~7()f1}jqotUBb*tZ8Xq5z z$G(caANyVG;n*)@KaO1zJ14dg(exL`_KZ!5jf=&iU*cqfm!c0ve-Zsr^y28*(e=?o zqKl$4qPs`OMx&9>BY#HJ!UrR_My`&0KXPW|MC=gQH_{rZi;Uqt0`G)>%cm0T41X_t zM)-vALE(MEE!YoG8V-g28G0M%7(NiXCA2+sVd(VG@$gYt2p@!F1FP^2qajco7!mOM zKlQ)qe+FMOZtxHIFYuq{Ki+?ke_#I${}lgtf86)A??c}od{6l9QXe(~7pbfN`~Uwx z)BxS${j26ISe3`7y$$PY5zXBQFvrxsY6SccU;773Kyyg#D~@1oXYKE80p^I>m+`1E zT38Ve;I;6kR%ST%Yb}Dh8v)sU(Fk}0TrE7P6@oXs)xO{eVE1`jKz5%qcEtv^+GlMD z@kMNRqm}H!Ray!7A-?u0OTc`ebOf;bge@Suj~lz<0lfAx8$xyw;$54es1LP|7y)k& zt9{rKu-%6o0qj1g1@#;WyY6%?C~}P8y3;HH>8Lx^5v=X3>#_wXdtIk4dr=%9P>ga_5VAYZ z7LZ-+CR0i{5J=q|OTc#99RciO^O(-U?K|7p6+uhtX4w$3yO%8>yEBb|UwrEJv;=H- zh9iL8R$D;z++ysCmzKI_8$x!QYysJA)PjPTuNo`?+pTv5uv@eRWVfL07UX=Dw;^OV zXA8*gbR!V+)gG3B?M`z9ushWjkliW9uAHxSw;^P=&K8i}S|bqi)nrS+b|*Ok*sZYz zWVhPbmGjj^8$xy`*aEU!Wdvfrsm0KXU}I`%haycK>1QiutPc?>2<&ergNI?%%W^&+}F7CzgQi ze(VTf_pi2q?EXdD&5QY}_9GiYc0aTQWcLFj;Q6ZdeM`W0-*W`8`>rh@yMH!z#e7x! zjtwEZZ`%U0`zIsd`KtCUOTc#DbOf;bhAkkwuN%8!zN&qV*8h*B_5a5+*JaMgEXzzx z|2zGB`dXY~w>({)`giJSME~EMT97JFeuk6%u1Idcd-!hH!~b;Rro?%P;}ZKOCM6>A z_u~)ZeS2H{@c69wxY!r57h^xiX?4fLuYV$T>c1AfD|$tAOLSRuDpvg8#XI!Q$Qh9X zBMp(^;ZMR(g|829L*)M%;nAUg;N-sl3H64K2+a(Q4St3%5jO_U3$6wK-Avs42jp9J$8{}kLB(APaL2CzC|0o3uN;^3pOLolPKeb zAh(6=A_u!8u$#d^Gq#M(9Fq0h@=P0OLV@6x!0e0@gNLkkW5^FQqI&j~c-xV|lf!al zm@#&V!TU9lXvoIJzUOo86HgSMf@ESyU%olM>5q%@B8lW{iRU!;< zuO@s_tQw$IJcYrS_hQifss?BsPhfbOw=g)1U9zW@Jc;qJCyZcEYk3;uuooC&Ppf$f z{%1Dr!_r=aoID5+0&|CQTVRvFVv!{amc)6 zPwRRTL+tsRr@;vJw6do$^3$q~A@;Pkr!Zje)x+#*b+18`huhu@5^YcGdrA}74*^lz z(+Z!$fV~&P>}icpVEEC(!W3n+{i*?4<&zi>d%_6zw9cn74ts$i_O#NcFfMz>Fne0- z6YRxfil;!b?P;}7X>!@KCT@FL?^76;J!8PWasZn-Mitqmn3|rW<;W((98DEnIZ&!0 z#N7iS?v(?hEQpLxWVFyaN#(#u0|9fd7BHVMFaqDz8@Mdo>|Ts0&2Xa!yoX>A#CQOK z9V93E@Z^OsZA7FH5EH3L6u4Q_rr1$jGYCcG&?bnWjp$Jt;?NclqD|4Gq!yPpLzp(= zM+w?i#3EA|ZtuzgiXkQSxU^Xhn!9pC#*X&I0q zJiA+#@`&gpx)m)13W$d`K?H4D3RDn>wt#?kKP?7Ih)bIxM7y7s1G$rnncY(uLA#$8 z1f?FAHtQkU{j?+~Auer(fOc8`X~FTCY1j-zuJ&E{e@Cksl&j17PqmUeJ;|#k^mic! zcTwiva^kUDJct#G7s5oR(NVNbP?v*=Q>>51aV)fn* zi@;Bm$|ZI+{aUhe#k}QH`wb9n&YRkg z^O&SsdwaWsUS*X6r!%?mp`~EBECo(#lBEzE;fLy_Qq=b2z@{qUlxsG}JJ^*S^SCl< z`*C!W1r>$%Lb(XF{YN`cv0dH^T}gte{YPnD_O5ytOuuAftn!<`8YkI5pSnMFZR!W9(^AK#mZtVf z)ucuwzfQi7n1A;sf0Dc;*_AvxxgX96oQUrQUnbs5Je#;Lac$zV#2JYb5-SpO5>pTt zz#sn!W4SMC2clKSiF1+{vr+osnZA%W#^&?vZggUGN{_KZc(S z|04XO@OQ&q_|mX6+>CYk-4He4{m}1uRsKrsF*qr7SZD$KASk-um%;bh3*x82D}(0* zHwIV12O=M=3`PTAvIoQ+fu9C04xAl0CU8JtR$y9SWFUxr2!HfHFmi*`?N}sbwDzZcA6FZ|K+oir@qs#YV zsSk1{68*l^S9CT3MsOM|m#-+c{zd5Jk1D$8Mx2OVr1UjNecx01oXuqsoE|Imi7jQ3 ztCT)BAVu^-rB4Q;h+d%dIXey`ICxd)6Z;G!S1NsOyo%`gN}r5V5&f>x=e94-X%+fp z`(Cc}dD{0prBAhQpVH^H?`2A#Y~LR!eV+F1Rr*x>_9%UB`(CQ_$@aZO>ho+e4jeA^ zslCO4wHoLU4jiU|f^h&5hq#3c?vC;RR?+DkUc49xDuF{Z&?#czU=0*y3>+k>xci{} zJ(7yt{p{bSU`_%3-3lhk=Ra4$oQn2;N5Mqt{O2f`Q#k+G3MR_tKTD9nE!o*G8^Ee0 zu_ZZ=kHBONY_cbW02U`Dut@-GG|(AIfocsDLn$y(1Dzofz)GdmD8@*jN&}s~AE?wo z(fI>e4Roq7fOSi$QMPfp20E1(!0M$0$~GRaflf6Bu!t#vvW>^$!x83%xr>*&1I7Ou zFLj6nt|0#(rA|QYn)KfzbwVzHcWa&QVDZ1Ib;{A=|AW@)l+%Bg)+yWjP6=F8bm}r9 z=fk;>v+>CHHPETch@9vElrzNlG|-_Fkuw;8f==WD4Rp#Fky8_ZqKuL6Dqz9U7~Lkx zEGh_%(QXZNG)B+WK%p`E9SwB$I7iRXz#OxVo~?lS7Q1btXDML5MF7v#Kxf=U&(J_I zZlb4apfhfwr)i)VH&Mjbqj_iUqP#P1qHxCIt_Ha<-Kl}jxQU*kfnwZ5Pu4)Et)p8t zP_%V)iv~Jv9o?*fqOGHwG|+9ClQdAa%tj4#TV{g>%9dF#`}q8vyV=>lQ1)?3VBY=( z2I{n;UwG9ln+vFDM*rR#nseIGKTm7TiH7vgHBhG|{c{XdG^M}YK%KVqw;8BtO#f^H zbz0Lu%RohQ`u8$Wr#<~M4OBF!e@_E-TGT(oKt+@KTMg7{Q@?P@p~{l6J^alE>a?oA z$!L``Qlo)7?doqZP}y4bvIn#;a+F3-lsy1)(Vb7wKu2Ztcny?YN8Nczaor0oa(r^ zqQCn7YoJbl_5H^{MSt~uL+k%1l>EH}vHpLY*@7tlqtYLwZ%?0}UX`v%eV%$0k^W9d zwWPxE$G%>lu?zdN>BL1KF>+$>I+vBIl5038{FN^&<_A1`o zuZW!-TN$g5jfnm|`h4`J=!MY}qWi*^J{tK;tG>H@KlF9_=KD%PY{*~LAVqd7A}ZMYJnvw}RY&W>{czZP zGY+6!xVUZpygddH>}^U5WArv;e569)co(fUF7Gjj=x=TYwF!Ah2Hu5SF<67+a%fxh ze6gQw7(WE3QTGTCsY|(_);Swbs+@c6{Cyls73BW`V>TXn?0=4NCXWbs6E)nxi z0Ej3rkZFKuQAE8{0J#un0f;EV;7Nd5hBE*r8X}@p2D8#^5TX=_g(r1@sHYT66w&Y` z07N|iCW`QQ3^0qW!Uk$Wm_UF$0q_u|s^T$$g3qD2P~NKfi;iINT?I)KP}65tXg0Em_koE980Dvxk?)S!GgF`Fn91<&$nHzjPkxZh4p6wgBJ6WxdH__@Y(iCKd;E+N$gTZ8pqvKD{!ilWAeF zVt{uWa!fy}J)UOgtykS(xL_^pChS(?^pv^OjH0= zpsRs936>8jTmqRGQV7{euyUw$pbA|b+)1!jr~s%#7eJ$70IP$v?-H>J$p+6YM6}o_ zx2O(aSx^Fqr~?p0u^6ZU%E3lz5Ja&Ar~n}9YG9&R_@lkJC<7C95j-Xbu-K<`fT#yS zqXEl%3IL)mfJeg-7%tP7p)!f5Sl_4Sz~Qf=FCMPa^{D3tr^8`+G^{o0%FRIL7o*`Y zovy~b&d;M^4TgN4?3=kw14Ic9)f&`@Hvk$9hv;-Q;B`7PJXoe%?iADx4Qjj}q|zOR zlr9(^Xwof)BAv$jYMpK~RBma~BeOe@^Efkl@3Ar1#7hjBT`4eUEK%dSdf+z#pn_OVK2IUacQvjfDyLb$~$ zKVy&cfx#>HgQ)`xJaEea!GUverVh;az%3^P2hQFCxq-bcu0tFVtPHd)&8`T!fq6r- z?5cW z)uXzO$2q}3wR^(Uf!XkQ)_8T`0I$&-xOP#PIskWeFI+k)c;R@cs2$h~KHHA=U22A_ z!t{ZeAgM-{*IB{nHtq`a{(oG_2PK)8Gq+^U%dE*XWJ2ke(>LODzx~pa(ji3tdp31b z>cZ4uW;{O1I#a7y6^fkzR+|DwQ}Kn|P@A9lq0i2l$G<6iC^B zRolrOvw_2w)596x?dGrCuf4UoP;3>?pcA*lA9Hk*!020|4WgS;)pmR$Q<~JA?SSCV zyPbS8r8PBg+ZasURolralQ8*q*H{6sl;Q?ewVk{&1xDYYSdYNaO{!`;+%h#r-lZH2 z{CT&NSEkhCu$OvpvzoXaZkfzJ-)`>5wj#lvJTs*xhrQHh>@k*XB#?(QA)g?*;DN*0Ewu z+v25b=C>`}Z`$?{CX#s)et6f$wL>-Q4DG9z)@=`(qO|R@C~c-F0aKK=p+#wH)tW_7 z{H7>vyDEy60Yw?R9p0V%h+b$HcXO_dmO=v_-?zi9Q>KY~u1;H(9VCBFdVDXm>$|y5 z=G*xo+&MXS-qu{q*F*Clyf|f=rJ2&8ncO!?bKawwl1X#TAVRu~Z^C!3TwcbQG~c`m zc=J+0CI=DOWwO9IF(zHK3Nkr}FfVm8SgRXj(uM0FlT!u}_N8hjXE2c?U9c58a_|(a z`zW-D9O>ds=*Y=~2nbV7Uj%b`6$;YD>R6D2hz#Q*J6)uT1zA0aceT+%Cx?P`VH~7! z`H};w2l3jbVF>@Y3)q|`izW@?4Q{NcFcI=`7r6F?D>|wM@gm0`Ky%&?pwwFO11R3* z_l<=!ptIGoK6Kx2(Yv z48Z;_Sbzq8%Njgh12E@#G|*et;BoZLfy%%Wo(DnGUB%$BS_fu3FM>Xo9isu5>O25U zbQOa~OMnSv#YFR(=uryb5+#5jy3PP>q5?o)k&e^=hbRM>DBkp#sMud=O34U8lwS6z zJpi$Z3Iq|Qw><%Hh%$hQ((4}HS*_P**`n$z65jU&fQa(@s0Ik4^t#6ybO8+17xI_hjh|+7H060V$z(iL{qM}9JLdXxGE3^)WDC=ON9U9;eWdIXh zP5?SZL_eT#Wm1z1qRSM3h?*~p+$Z?E;8FvyzY7Wg5nZAIAnMV;ME4`2R0i`$G073t%0UF~RS+WULa0?M2N9^( zK-PA8A=q~@h`_uW0>T~$2u~P9NL~=;vM^;2MwA9|c(opo_F}N_Vi3W1H3YOh5N_YO zTrV)?A+0;|90l-D)*ZRs035;$p!RLk0GBQSxP51H`=Sh9vV;)5Y?jvHQe^~<*u6Bs zB}xD$I+FnOsO{~@YQ*lT0N#$QM(hj&a62*qh-j+@cseowOtgiFQW=JHWFQ35X05~1 zkqJRWn>4`FkpTeFF@uf4QQ{dQwQFSCo%< z^M^j-(WlhSL_i_HA1$YtMnCM3wfm0Ie5*>-Q#2$#@7mt4#e>eVO{5SENXP^d9gyQGM0}1JNjYt_t8fXzwhekMbR^&$46I3=VN!k zgy^uyf8cfShsa}*+i=>z#W-)^#K=LBg^|Wcb!2#?1Re-~3_pQ01+NKT8a^kyA$&-9 zU+fW>6doD&hyE6N9j6f78M-cXS?FBs5?B*j9BK{KB3fb)Clb6Fd?t8z@cQ5t!EM3K z!L`99!99b!2gd}%fqw@6gjk99;#;dB2x{uliB`)|Z< zf%E*Q;PiqHcrWbXFGHNaFMaR&Uc}jhH#fA5LHv!~@V@C^J*Uvnf+sWeqp=C=ftY5- zPGtWRB(sDjx3Lo(5JuG4Do28eV{E0CG>XN|u~}O}bKuwtSF*NqY`G&L^JUsR^zgJc zcDw^3^Wz)|nIEeq4buD=Tf*i?yAqg3_!&_ZjmX99M``mUVfG^(5Sbt0NXR@qm!zV4 zX?{0b!sg+!WH9uQHWpE6ED5nsYxB?}%%>a>nTMB>m5t0Nw4^A_!#zo2AYt<{R|4}0 zMq^>fd_=_vl2C`{T>rKuWPZ%QT*=zbF$hf~%=0jS`7vK9^DJRSUpgQ%|AiwV z^Pg);vtU2wGh4#u|LIC#9uaD!dE}z5H|Fo!JW1I6rw)kB|ILw*`A@V2Bbal2Y)jbu zUtI~zBT$VrFUS3ukF+WX6Z?0x zc{T3GyzPL<{GS{NnSV=5!;z5r<=VU&cq5lN zATqzyk&yW%S|SJDNQ8ov=4l9#`NggT<`+2f#`Y<{F8A@d`&c|Gp+GdwFI^Se3O$ow!ZQR7}e!xz=KPumzapK>H*KB>*?aj&1@ zSrM6!JK4y5OiR?b*U#`p8o|`{A~uH2haCx-4{7sy-0Np}Rz&6lPBt>{SCWDn_xc&0 zBy7Hf*8ew@d{ctA|2r~2$ZX0i%}mY2vFra4?D;=CeQ>%FyZt{#r2cDD-KoQ|%fAeJ z{C}VP754Y9PcBGSCrhvw;10y$-@Tq=Vn2=b#14i!0&>$2EQL%A6$g@>uBKJz;6OO17`*f4zvcw;C=c9|1JLS`A_ig zb-K~DNOEm*OOg1l=)iZ!s_j^I<+UGJ8Cnqj@R;3BXKF|-=uI9i z`0|+DPKRnp1bUYTflrUw?O0J|M7@V^6ArPV&zsrpbf^aDsQ2(Cgy2i3YAA%wS0IQl z9jhS`4qrwvUs^7uMLk$?`7%V5guPuQ#^x&^#FxBXr5%SaBbYC_yAq=4;oG43lE14! zxa~^_!IvCf6~g8#5X2WAuL|MtWd!qu!z=SGdigR$@FkyDX~$__0U^HR^ePb!Uq&!r z@_Hpi!Na%MEc`{Y+sW-!AY8tL5PZq+RUvG?0zrJ?_^J>NUq&!r_`NdUf|oBt1YdG} zm3ADy0z!Nd(?%g2zKmeLh-1TuyoYZ=9htTr5o{#F`7jbJe!saUw#24Xe6vE-l z2_%aA+A-)JpqYw^XMlfFlqv0h-F<boZ;qv7U7+Ks3NHK(sHf>hoMf4xPe3p=x`R#t>sK zhUToQ?Tr@3cApe_Xx6IQ-e53bJwy+9PuyM)-c4K{e(o3oqBf}7j+IndYVxxg3L^JO ztfDFmxDUZFd#s%@MzprUkc*{akL6N{aoG!uV2_1Tjj`D)46(=ZsKPkxC5G8!NtD^| z(s`8jP%?Wghbm1Dd#MR6U$q?zp$g-$ml*ErSOsO@2GREH+MwHB^mQzNN(6Ct5#nA| zYayiXg4QAKRoDfrbbz-<2lsVs`yEZb8gguVAfhBSMhiH5A#|^*HV82GAh@+B;&ns% zr|{E=!Q`<~Le%X93*&MojA-pD2V=7q7;5cG8{_b147YZc;+mrn`SyLqQ;Az3+1eGh zCWkv~;?^#=F%EmiaBG*z`VoEIn4%sb>Ug|HxXcM5T6>&@uz3pv&1_>0!ePw_ZtXF$ zwPhc73nFK>(MF5In6>cCR%#FqUq*0ij{<_+r*}2835S)c?IShD9oy2KooBWY7RDai z3e&cV-v76jd{&ZqJ#$ays!V5Q|4e;mI9B|h!5)AM(#NOwNl!^9Qy<|A!1bxV)RC## zsmfGI^3CM0lRJ}VV;8{eWF@`&H{qa-dtK-e_(Xr2CFX6&6@>yi6$CcxSF5->ZG4gV+nTKL}ZVED}N zn()l<_|R9OmqWLOF2&mWlF;-}CiqG4+2GHx-hL!@1WX9}0&n6(!ok34fz^Sgz$pJe z{LlMu_Fst8^A`Fi`$N9Bv6jBWcZTmEUyE-vsFsvuw@nU}?>1sGIlL5`b9s#3rHk=T zN9&@6xOYI3-8RV}nuZ`C$!@DLh{hoZNV40i4WeNP0+Q^ui3U+W1OZ8Q+XRCs4naVY z-Bx7~g&_z?vfC;(0v~={wuM$mvfHu-;jNE?sE-PR@YYA6mFuJ2AiVWaz&Q%AQf3g| z`Y5z=eT+8R=xHD2Y#%M&|TOWB*AEOPzTOWB*AEgH2 zt&hB@k5LBUt&hB@kC6u9t&hB@j}Zppt&cp_N5!_`q0u8oOCYe+L-nbbg!BK$aFG^8|uG`Ik0 zn6NDw8b4yx6yC8>YzKs{=-*b-v7pe5NqoY#gavBbC8(`@TO6iFOrEp2eF2%$<65XG zmT!yc^t?Ac-;DIAO6U5t^P@VE9?|Ju{kcMOF}p1s8owL02YlU|>KEY?gldq5@I{0u zyDel8jg3PPjg8rDL4zm`MHGPu7(@=`@L0(evfKQOSjFXNSOiaE)vTf%4cTozgJ>Lz zXau6fAc{i~#fEJ6Sq6cL#cL&(FY7)tGz#^xtSygXnug~>G$Q#7m5kh;e~b`MU;T@?o)J!Ab>7{NH3OmpBx%Z9ReFiii>hfmoM4dcr0SSY&DjCMz+{Jn%pQMsu+mlSnH*zw4idmG? zbt7$~Xd6^AY`e+DW+bmy$*}E7CSoV5WZ3p3=aGB@C*u(d$@uR)e%NB$MM^%Nlb5xj z`{#74h~y?DAE%PhD4yiT{P^x;k<9mh5K~R2GLP>*Mx~8Z`5Q0%W?$DZR0&p}c#YPR|cXFJMp|N%LF{VmeC; zqyfJ=TG>J|SJ8b07h(0B1#@#n2zAR5prrx*{%`{z8x8<|q7~h1B>*OxynuSraF_u! zcmc(xri$)01~8-y#av58_n`(bqzw520EaLD2i^)6x(_gmruvHRgAIT*IDqE*=8Eov zBtWuo0QCg`4m1E_;Q)#)jTPOi4S-lUfI>4gtTKQhWysezmv=^Y{+RnY8Bhi6H7_i~+14ejKwr{20u zr#E`j@%&KUy;P@D4LbRYjYwaj(}(cK;$(UEemZ>!e;jL2-o03-58B-jvrm}?Lg>97hJdI8=G3&tGf5LFm1cSv{iJ^17<`GrW@Il)Wkz-(2**-=UM=! zBJXw#Xar!61z;`~09~n~yWIjX85>Z{m36m)t0;pve^VopXX|8d?uL4(pQY5xzGyQ* zSFGsX%K}hmvH|Ez72Pu}0Jo-9Ky;>x?maDlw+!eF+3p#k(WB^wkHrJ}mZK*={;<L<@Wu zegfBqdO|0{FMrQaStt?w2=M~04_+MH6g)6EBUlSx{C@2pneGzf`zxMqBUka}Fec!jyx5hUMl``Zn-G>!}(NTKa5@9sU`>;Sz z6XBO9JL2W+gU3H|-6w;$ru(owFgnWV97?jh532zpgA<^0_UhEtPyG7a;pslC1c(gE z0zUlLMEK=uR~Ab9@Y#Q~NM{SPp5FN5m*X=}D(}PBevxsPmP-5ZtzTpmmP|%`;;)JD zE0kk#&HBfF*|KU_c^^LTi*zS+=X+wuU^ge;Y`Dthivpz%NGg?%{A1tuRn>_9o2`xn4C>mnI*GT^x<5;nh0(g-(s(#4~P0m zz%DhH_f4RFM}yZ*pV~0%^uJzwOuDa%h90MLiOc&cDFeS8It+D&tQxDLtmSEuUri|NluSdeBl;D!Y$gA8!tX)(=AoyefYkOqSH&Hqj>n%-&}NX?dRov__{69 zowk_uxu90ohv=3>J?Hj_N*}e<_*5TaTN3k}=niFl2xZA|Cw}bg(kFRROVObN3>Q&k z%lZ(vlHqRQhVhKHA=QVdl?)f*tjqckq>|xIS!esv2H=|NLx4(#i)pE>5Ai6e6~3+P zh(<}{MwcDICmH@NWk={qhO4q8(j>#brR)@ElC-O`Bd8?9zoqO5DamkEc0`b@iO@@| z-E6b|#q-48sXoMy937=(?r>#&2p35s$}_Kwy!*%l%WjB{>O-(d8X9s^QA4Aw4>2M+ zo7;It9KWsNj%9xt)ra_yoXs6kWqk+>$pgmi6w+E*AA&-1vQsm&{vpa<(dVP#CSHSW za=V$ZHTeDMpP{w&*jCe2CmHQ2SVYS~Ai zR?&L~6+yfPJAk=etA-uE__vwf)3KEr{hHn|xrQrxPt#dktL^`#Ibd_9_f(xlR98iB zm&igdnU0ki7o0!mvU9?j-cFH)0Mg1SI*VJkEj>rkU#9nDoka|}ir%d{i&NjTn;z=N z#Q9~WcZ<%VxNO#0TrP!=c${W>H|Z>j%Sn_)ymC8S<~~F>q2n^W8!3wbNG=<67T3z0 z?6@8Go&0#FcfHP{tehya46U&Mo=i6WB-49>$YRyl@j8oJW33r!JnB zym!L+b1u*H9;36U8arBNak&&v=02P0JxXU0T*`alZHBQ$FJ*3py*rPlx6)pCnqhEJ zI@i~%`|o32<-Kq)6B*so&F$w=S=tNtGLcaf&SZpFnaJpln>lUsZyI^(Tcy2+sf_Zu zOm2Ut99Vj3W;$?IlMtE~?;WEWSS3`EdJRu_<60VwD(}nNa-Gq2dRvn zk+C2@>4VOfN_!7f8O6Xb7U3r*EV|EXE%Xe${>su`c!{B?uqd9?Oh!0|iHvSHX=$UJ z8%lfO7$!1`UScxBA53I)+p#(N8E&CV56B)hj2q!R+(QU`3v)j&V+V|1YUbujX zjNW#H=a{G)B9y>Rss8NKZY4=>Ev z^eM#YtL+0kQI+<>ziYHe_p~G2xdP}p_lDN@IZxd z%Pq%Pwim$y6~Zl`98BfCcux}uS3}#gJpRjj`L&J8>E@sLKD|R7p6x{pK+gYdqb}Qv zuzw1%%g&zdMYKPKa9dpV>TEAgw^ss>Yn%XZcIJr8-kFJ+Firt@ z3?2ZNV7LGN*y}$g^{>?Hsk>9#Q|F`(#ruDC%9ng6`DpUW-Y52MD&EX5e$A|X`*M*~@_waWAF#}z<2co+bJ zlI$SwaS3pUk_Nc6RPG?>aVFYioYu4oL6m&Qr4ENE>0qMdIxYbYQ35bg@*HPCqeB$m zm)U)%Vh1^n3xGqE0D>s_jVpjfQ~-!5xs6MJO_Tvl6!&pKw9zHX2tgFLa;3v2DiGA7 zRqDPIU`Kq&MyHjQ2+!{JOOBcO_TvdlpMvm zvg@5OitoUZDEWyq(RvS2LWok3o4C~B5M=}rB`2DO_Tvdlsv>Gz-dteaEsD|0uwEIh!R4Sg8aj!4u>csh$y*- zOMpX^08Es;!x>Z>hs3$~u@Rd3Z~JO_Tvll-#=+z++U~ zz=EqJO5WW9;1DH%AWF{N3Sbcx03u4h-4b9EWdIW;*KQ^%#;8*WNwmi3u!*t`CR%L( zHc?0 zv2ad1dB9RJ4KgaIj9%JH@Uo)#7e&rp%;#%#LA*8cn;W7g*(nqd@EGF*pxeB^kw(gn^glF+sVU3ZYb? zHl^}fC5D3msZHu6qn47OHlftIrKMC+6>-UyUbsyo((4-PIc6mq)s%>;h{~#cyg8B>f7`n4CRPNt`jZg zNQ81kA6LrVzD=1)c|6os@|y3hl2ATW9U2{ZE%I#S0mQZYXYifi^T7v#KaboL*&g{` zhL|`8^ha! zvx2!`mH#6D+5VI8Mt??leJ~R&349tpIJ`K#SKtjq$9urP#=q3x7PuLE`7icQ_gDIN z3!D|$7+8yU_rLkx3M>iC4&+0tqrK72KsGQe;ENs=Js`RuJT06J?-niz{T*io{xvhcmy-T${Nv(~~(Rb4=!d%)-o!OkHMNCXxO+{TGgB zcyIcq^kDj;^f~Db>BG{?(zDZrbai@oI*|Hj>h07^IQ#H6L_N47)syPP=?AND{y}T1 zE;T-tO8z_fF?K*ale|B9OL9l@;^eu>P01sZ`zPlmo04_O(THyNRpNb|jPO+AuEhT& z1`_8d&cF!?hbERL+7rb@bz)>96#qQ_Ui|m*$Kf6EGwhVOAbv)Cef*I4qIhe(EQJk`N*xlF{XJR(8yt!;j{0i`OHoS@g7tDIA$ZI#(16 zon=27hTzQd7bz;cS|=9@U1dA1U!7&R(MoWE@0n#d6-4UF1B}BG^{>vd0S(RzaKB3K zSlZE5eSr0=vwD98MjG>3X_6OoRj;sqbyjy6FjrIca?@H3bGs(qYX9t<_;XVQ4RcBP z#9IuY9{8K>pPdtLGWdFdztI4SbGxdS**`n0MVK+s`50fl!~hDw?`Qw)tQG;r7+(RE844lJl{J#-dtGR(D}u4mm=VG9(R#e|hmFu^7Y2i& zQdb0%Aq1>7`uW{9G|~}qDG=_;LUAdEyCN#ZZgwfeJ8Ec{3!_qGToIKbEo%bvl_*2X z5^xEUjsUfgumxlt;jVD(G|zd`cFcy5<)|$nyAe9}6?xiuj!gbR|0J8qSFE3FJCnaR zKVdKVGTeH|Uc310ko=uVhOOjF<|iyAUsOMtU-Gy5CtG^K`Uy+Vo1bLqIb})kN|vw42<3Vz-hXis%Jo!CKUw*W zMqRP1>>=w{XW4^BIo}k^eq)kxd(ue^B4yRBcHWp`=i?V{Lsnq(CF4(nHE+3f}_iv25N z8V4#>UT^>Gto*4di8wZ?@;ajqG;gzhb(a0oC>Jz;p|q{!roYzy*;#pwQckH%^CwCj zBwb~`c64l#7xl-Ztv;U5Rzpug=7gMmd)}afC`&%M4~t&m08*|Iz8s(=VlenZ7i=DZM1UM>+-X z|0h#FOP!ZGDm4#l{{h7He*pXc&qyAeoRJ)dx80W$wO%f57vCe4bn9u zN^+2;#pcUe@MS!^^FRw>^JN6{T`ds!F2?Q=+6=ZQO1`TM!r@B@!S?_gVeu6R1pU~# zzlE^*GJ^TyfL&@|DhEI6IR)W`fb32jv`hU+V666KEzFmX+m#5LFC&;Qj@y+w*m*#k z!EQ^*7l-aDgu|B*g6~orVeu6R;=9B`*nAnmeD~9Qg#&?85XpD3rNwSv*1~)jSqPgi zBbYB8xg_e0m+g$1T#MvOCoV~Z%NGd2mkwOg2%9e>h%cSDq!12YLNH%CZb`JSSh{lx zBKgv3OG=Bwm$WcnI&4WH9KM8LzH>Fg9lzKMEBVeb2!}5r1mAWWVeu6R;@f5+Y`%`3Ac(Jn5PWCY z2pNxz*L9#n%vY@z0(@N^%(sR3igNJybs>Upv!w-mJrLsCWFf%UMKIq+jo|jx2<%jr zd>ahH;Y$d?x86ord;kHK{$K~A^1+R5f)#8Aigyg!sg2e=8Jt$)Stmu%+F3iBwuWW zqOm71R)1zK%y)u?u=z5A`BrHJ&(GQnw#7@nl?LJPC4}IcwGkFyfgrvW7Q*Js2P9xm$i(USb?^uIy_!2_!9b+Rbz5+pfM_UM+ zFC&<5spjh$zYG!c)hJ7g%~wEZz8YyEY`%;D--?|hXu*^>F3|L>JzQzkn~YTK9IgSx z)&UUPik-Vz0Lu@GG_ZTnPAm{h6OJDg1HiR%C%&e`4~kaad1`iTh*I!!v4qHYiE3q^ z{h;uvTpIyVR|ONr_j^$a*M+YIi?_lAFCCK!j>&E`03e9QwFbw9k2DCPF#|xOx*C{h zR1x*K@UaR}iipvHCUte73s>w68-PQUO2I@!3gEi%k+*;_5!3*uMF}8?1}uQpq5=S~ znVo(Eu!%B&iTV^#j|(3oL@7#)4x6Yzki!=?hKU9%(6K$bCKy0OcbusJJW>q+o(XJX z#~B*n5(R*X?l|27*hCpX?m?#+fJ2l3M0Cfgil`W+P9bw0?@W9o^CC<#&>85R=(4zFH&#dJ^zl> z4y<`^z>0TUYLCgnRp}dNaE(im5Fl_>k}*C z`(KwB7XKo88{Y2EM{K{tqjRH$XjwEG`5WT&G9$l zkHvox-x=?V9~<94J}bU^e7D$tV(($K{0^K6_+3O5I5^fG+dVcs`gQc(=u^SVg69N} z4ledz>_5$aG`eg)Bdcx*)o2zdd5ga>S z$~UdsvI#w{`j?i@6E|$xuxZVv!%wdMg{70F)wkm2J6+~IcKxwij$M1gv8S$EgEDW~ zy1Dx277deHeT${$m<=bQXg6C$Shs%d;U_?LlU0Pn*R4Hq%_jJgRo`f-TzmKiRWmn? z!f~D`2R z=-qPciR+NPa!F}$G*u&s)}6R<9g4Me)4Iz2ObJYjRW2SG98E0-FgF4zR}0R%Du~iqp7J-6w?;6r7Gu{(woFe zED)+PaXVGcF~(&xRkj=Bx|J&1j5^aum9ya{N6j%0eno{Yt3lFBc9FtOlHLyvYSbh$ z4>d}9v5l7Fh8s4$NH*-;MfJA+%2`9?qQT)`!41xMZt$4~X=|?BbBJ7MfX9W>(7A>+ zv`X&KNnKHtqq4=73f+~>u2gp0CSyxT)`)J~I7BYW0Iv*HhOMFu^+vDN8H=*1P%_gQ z3qyqHjCtAc3R#(xosk4qXPj;_o1V9a$t-%_G*cR@H%!H|F!hGHi;8)tv8D`75IlDu z9vn-3LFC}duCuUCd({q25K1OnN@R;ol5+~_wVJHPBbIGe?GejHn`jwyT5ZD61W^(k z*`(>ncB_>0AeBVTH(5Dtv&@=sDy(u?ja)9LO@fNC-{mNVnUiF})+*24`ZrA8`iVJ<_vxAzs^= zp2Y`C+356MwneLlq-WaYlU*der>$4_k@O5(FN@QyaQ>#d6Bo?%1KCT`EjAyMoNl%? zaX(2n*#(guCEaKjME8_*gRRzdm2|xtv-5H6lXatty)ra`n=JNwHJCXE%}ueFEv!8^ z#eO$5K`432QX;xx>_yd=q1W`n*l#^zp+EM5M=bhV?0L(e-34RM4NVXw!4aZjZX&aM zPl-Ka={7wo_Ou#;K(!+`$cXan!to3zmkMS4r;&1Z5GyUzsN6#CI}_Ju#|}Qi`*&;NP12C zMbwkA5)1v2TRdpdSdp78gLeBxZW@{(N^+xB648E<8|3^+CguDQ`5#&REHl$bpHyW45xP-^C!zhZ#!Mwr>Y;8<+omd_)(|&Aqy*Nvidi& zOoTNxS^a=VENZg)*B-H`w(9#WgLX|;-#0XYYqI)Yt0bZ(tM8FDNhOgrS$#KXHW{k_ z>nqEw-BGI_9hxA@^N4&1#ACedlq|12z`VPN3ai{-K6U|V>Z@|4D-}8_SICaQluSpc zzAK)2#8(+u5Xiil`CaCzz~6AL-mBPC|4`uez|R8P0~ZIj1x^iY2po?0-36J?G9TiU zz#B6^%3P7TAaf2p>rcq6&8&oP{me{0QldmM7hTp+$$?KDY@VeiY>`I=PT$@~(T!{FC`D9IUY%-M$ zB)&i#!Z#AXO+1>o8($}Wnz%Y~IXv*sNt~M4lsE=n_$zQyVSAz}F*Q+@7@bHZ0`afn zAIIN@H~!P{-^6c^-vHl*%j4(A&qmC`8CxCOFE%IE9Gix?hNEN2m@oQy^rPsT(U+o6MDLIO zGJ1VNkwRn=c3z|-{_yAF55un`D&j-oJHj{MOUe(zeb{HQDSTA; zK%Ao39&QZp9=RAQz|!j18m$KL2O_58#RMy#HbUo&FpBSNkvXpXWcre-ciZcp>wMzof+X-T(FI z`9BAk42<_LW$)7_-`?g&y>FiRQSi-;2S)o5(P}}#cZIsl`z}ue#*%dIlKH;>5}d9V zFKzcdpb{1@_1&Zr=I82tCz>Ax-wE=^oLsK4uh`HYs-|?h3|=gS_3fdFQdl4Sz7!VQLldO17`#Xd3++gBJ>6Ay@B@s>`B3qAm;mu)56qLn0R_o-414zVFDZg6|x8mG_;^Sx{lkzW3E- zlkYus+30&$T{igstS;+)@2Jb7?`?Hi@cl_$=6!EbjW0vx7utPy2r;gG*C=tm-FLeZ z=Y2mBmy3$^!3)%7F?hbZECj!+F7v_jar;` zPF*&J#;VJP&=_@zSg`7{7%Eklh0rK zohx}liSs3oi_66rn>FgPK3J_Ti@}NNvJjl0F7v@Eb(srR%F9AaP;|UGiwn&`(eZHE z6cil~myJQu@owhV%J=GMvu^l;K=UKpD<82bAGlQ$QKc zH3pR7Tth$^&eaEYlV!*i{bKT>(7t{#Wl^9|f2RQC^97&Oo5$#pdhwj>lX~+QJ5p~x z*X)ye^SLJ9FsUKe=*y_f247lT*85WGvgk{y%YrYVF7v*)xXk4XC4Wf?W>H)gO2jOR%Y2ELMcbDa z8$%~?He5E8To4P4_ASF@{h{irc!)|agf^Ppm7FUt^DQOcQJ2jn=cvo3|A)QzfYPhB z+D7L+Z|^p?8MpDw;D#&H-6*cu26r2ye)GNJr7@?526l)L1jSelC}ZP+i$wCRkf`C&L=&@IMW+`5{qXgENVum*_A~ zABtYA!#HOsdXWy}M4{+~I*gNoq8I2e&Pa-$ufsSEDXN;VZbD7%6t>ol!kI|Xb9I=Q z&e36FYSUq2YSm$4I$MW{=`0;4rWPG0rZZJ|B$a=L4paH3>oApnnhsO>r|K}3e~J!M z`6ufzm4A{BQ~4*V@CYjZ1RbXGkJn);f2$5t`CD|D%HOQRRQ_=~OyzIVVJd&43O7;t z8+4e;U$4Vd{yH6|^4IDxmA^)Zsr=PCOy#fAVJd&63O7>uD|DF3KURmS{N*}KZf^LBP!J(d5Ewo~~J>M)i6fDTjn zztUkU|9%yw^UQ+#bePJ&SBI(mU+OTGe~%7R`FHCum4BBGQ~7u5FqMCY3e)*u!7p@} z%D-KQsr;YoFqMCs4paF*(_t$AR{Fs`yRH`H<1x=c6rbZ>UyD9Bh`Ty{;1ART0KpN# z9Aj+?W}9GRFv|oRf|({*AIwmLq(oU670SQu_ob%|g(8<~TWy_s%cJzVV7kd%8%!hr z|3k`tsrLVG#p!>0;OxJL3l|lZ6zcNd`374}4^MrYdKP>6AB+9{3ds+WcO*|wE=bm3wE9wF z7e=Sk6ID3T?^%pM*TyHrcaOatyANZ_V`2@l98U7PBYJl9$mm|t1iq^83XTtEU?0E# ziaZs$8oTn3jdUveyzFIMEG;h+JVeKPJ@H}Btik~`T z#-up|+DBmKb(ATeCL&9bbEh6UX;^!cEm+S4@!XjQpYL2qV+p?WLKv?v1iq%`Lez{> zX~}dUgWB=4uX=>KVmr~~fe)HHiK}E#d!3I}7aqp)RSasc^|5NcE{r{h48z*tj%r%P zo!9fx6w|E&=hP6sv@*D8T^VpyHI<=e0ZU7!${5-XkJVliRAuP7K@T|{-EQH$snhv7 zW(;VD`)c34G~CX+d0FO7nm%iAJG@w{^=)BiWIf#6dE@5Hn>%6Lj6v;iXRS0~<0s-_ z=`w~NJbv8VLG5sC4Pl$N`~Vi)dG&9Hi)*=C?hoK5O`AEi9gePjbsuqN^*uCQ=&XaL z&7CxNa67zSd+nzxL4P^&pj>BjCe51zm#013;Q(8y?>6}|Py!!5XZ*oc?c@ooE0>`q zu*P;c!tOOrQQOZ-`m0k39D5Z_owsoAJX|u|V@-3|d_SCFa63F@%k@3M->6D)Q)W)b zR!As$csrbCdrekXq`zL3!Y9obH-4JRuxC4bXibI4mn|>L_(|iY&%s_xgWKUuYp&XU zE%C5?W6Yg5b5_6h3b?*B@+oD_$E@1~=OjLuj(jU|O4;af$~L$iZY2X1430`m7sFMF zoqs&=yvbZ`!`ger$_I_&GBp@}ZyVRIS?Qr?&6sr1^l|g1P8iVMGge+Pg7F)+ZdkZ+ z>stRJ<}R4KaNdGhP}T$fKVulUe({DiD>rRij#W0}CaW{i=z8bS0dWV-n>usG(Dv?d z3o_s(>{qn#xK)11`_CCSebPdzwIS`8ajzJs%T{o&&ey=b+TmnTK9l)ZFI>N7vxl0xs(I<+ z(R>MW@vf+$YuKwDuDg=sm{9G8a@10e{_Sw=>7g2C^}?f*}Q7)!nJEQFJA9qsi~)pn?7sdtV8AuZYNieNeo|37wRFM3z^uwv3XcK zoPCF=#$K{~CH%A&*8R}EwEwhub<|V#YKQ0VFm=s>|DoH7GmtmrFsxJ!G1UGChFZk{ z&tRXScHw_us9i`5{o3IwtU66?NvElEIt?6#Ri~-_51j^J=`?U2R-MLxORfQEr_;cf zSlw8)rJV*y+iBoYtU68Y4|N(q-A)7VV%2E?{-I6-xZ7#qYpgnrz-{9L8tOD~Jl2<7 z+G&8codyobKG5kj0NPFiM`YCnYD1j{DCf>|It_Uyb2mc{uhW#~(47X3%Bs^Khu>+C z#dex)@K;uyruK(A4X|FP*#_@r)oE%&oyNZq?ljxr$*ej}t#pF$0~pz)(`QH-aTM_Fu#M}a*F6Cu3U8;85v9Vsm%(Y7n z-Kk2m&@I2$w&kTPrdx%xaJQ=6wycyzI#y{GVyWDQ<4kDLDXm;7S$VDyIM2i&Xn}yN zZB+~0r_RVkE6T17t}82kiaqll!j5^D!smTSaawUyv9g#ed|CJdzT@9sxT?@nSW%dd zvjB$_I%8ho{rqq9cjtHH&&hAbxB3I}HTeqc3h+hl)!eV~b^eOniMi#unYq2OPN10m zd-mPzlh_~N+H5P<2^^LkmmQ8B@S>T&;EVeMnV)1X&YYZCl$nh=gnpR}b_;kb{dD@a z^!3>FZUa2|4@lRhE7OV8SG?ohZTNcLlG=b%0;i<*N>$){`IpJxC7-}9h1X$i!Mf!9 z(FS`nNRtiv9L`v*-yB~}%Dja3EDMDB_FC~{t8L*$sqE0M>_q7{)*|NDH%{vULu z>>@LN0=_PIM{K0~v74Am;B!pU$~l)U-YFO9JuFn6Ba*JRrPjEIq@=4Xv__R$iMr_d z!}Y;#iSsA$=Q;*Q4%6k5$t^c>s4kZh6m)@s;-iuWec3>fpr9{VsCTuI7cEp>ZA3W% z;+pXJ$t(2*f$HOXBF{^yHQw<%k>@N_ox2nHjfHwAj6|NbP<3EVvcdb_%C=yf+Tw$Sp4P0)ax&|&2Xs8A*6{x9!ODxo{fr~9v*T6*<>es-97OHFD z0t@x8^?VD}*Log12jh;NyI{6=xJ%g;`rhIcu7k469k6$zP1$7*SRKt%cBupQD|d(k z*0noWUom~ma~q=U-};IvL0!bR7V6bQ8MY&W*C%&ARS#u5EY!c;?G~!9wnLzG-d$Vv zFM-ynL#N9AX`$X}Q)T~Uq3W2avTrQZYu>VdSg2~=vac=FuYtc?sIGypEYz=ozgeiR zfiEr8uYtc>sIGx8EYxeRvd=A4wN}|@7V7n|vQI5k^{}!}EY!Od%l=}a>Q*fKSfI6| zynEmyf!2;v_rQl1>bDlQN7DB|t!}LkEYxqUKUt`5t@ka|Z>{$%RJYc<7V5XwA1ze3 z);kvJx7HslRJYdK7V5XwTNbKY>rD&wnjqR>p{fa@^*AN7Kl;TuzX2}c?d8a<>hxmW zU+Zf|)p*FnG~Hi0g~5pf1w7I}BQkM-fRUoWQw2OC1fC*bq$sdj$1s0FeN9scyuW~v zqQH}+KFls8)USAr9nmsINTs=odYgzlr+c) z0f!r;NlKOmX%uj{K^g=s4N@=QaD&tdSQ?~Oz~Kg|5wJAKUIGp`$Z!EmgA6lZI0X3h zJk)?GMb+~V0f*}utHyfK>jxV-n5G^i;BYwcdhRCRa6MzYRDBsz&s_u@u4n9;s=-pvodq1OXY8G- z!BWpf0f+0kAYiHIyaB^O#INU^0aJ>q=d6Ik^_&r~)N@+E;d)L9Sn4?`;BY-B1T6I& z&tQD>ROHFB;+w^%;oDE+|I>yCrvZ?(Ezq_zuj@ z?Ux&t>xupGzs|m&eKGq`_EyXav}HGE7iZ^UUSO|m?`#I=2Y!%w8J_sJWv+)8{?^RW z%t4t6nc7UBOfLOTc;3I7eiWVtH>A%`pO9XjJ|sOUU7xN>7vOd9aq9KdPhANA z`W2}KsmZCv)E=o$$?uY%;GDrHlXoSzCohIK{VG1qU_`QCa<^nz;KO?>lzVg%KW8!G!=Xu{3&=j zcqI6Funp%UoE)qS4h<#;jX~d_GfqDEH1hk%laU=}=vn+MywaxlS>#%is{ZAsU4XYY z{^PAwdVIi}N{VUC>K^#zh28#*1=|4hP#aH@rB2Nt^}tUqje&(`jC#E5Tbj4@z;7)F zgWWNDyd(6Ki>9J_;8&Id!faWOw>=BdzlB#XT@byJDO0e!V<7UNn`da=5_EM9pbon5 z?=DpaGY7l55D*8QT?2T7PWnptJKJ2vry!z#UMwRtJqGz20}Ipt z#+5-{&Bc6rm9~Miarhmw_F#UtR1@sSi7NW;0F-?zhl=}NU5YgY~S&05#u{3D< zU%D2izsI+L{%+4g^jN*9=~0fNztaN|{T-f#=zk#=JQcXfZg(wA|8w60dTigJn~a_% zME^6Pm#2%`A)4BQO`!j&myPIe5sP`cs12GamwCF}>|$thr5-nV7NWmV=;i71V-G~? zcX<|~$Gn8nLBAqd{SMc{>M@3k=c@AA!UbXHD<>P#tDTKaHlqKL zU`)Ti-nB5j+On8(nSOt*havUX2)*?Ct343WU*%bd9y4kB5>3Cq!nH6xrqC>g)nDdW zi2hQcmwtbV2O@gRnmGj#{Y7Fi{T|b08bdvp-YggR7PLL)$s7#PpC|Ov@6Yu>M1PKF zA^JA4n10{tTA2Q9-vauxJPXmc2)*?CGd&Q|pW#`E{&caJet(*4Vfs^j3+PYrEJS~@ z&`ZBR$paDniJpb%PY{dg_s6>yrr+vYK)=Pa5dCJMmwtbo2O|1So`vW)ipBK%4X%ah z*ZUUGuk$QKzgFm_->>mNM8Ddz5dA7+p-~NY*Ojh?=~ws`&>!nrh<>@Dr*hOocbNww z`lX(Q=$DAa^!vrGh3Oah7SJE#S&05D9=Ll3&mpk{gJMP>5uR&pg-KR z5dC37FZ~{0GF0yz!6wiz@GL|>Uo58IAL3e={$Sq%`hz?R(a#fl>GyLz5UHQzS%`kN zSWLg4ElfYfw}5`KXCZnu<%ajd z2s#KAwf>_ZExk_hVcO z(~tHopdaN~h+a*G5xw;L5gv%>n>-8AHyR6#vboIw0KjowYao6vDg=*{y!ETD%?;wxo}uvbfHK7oBV6}yYiRk z*JE9NO}>cp?|y@EeOqo>ZgOrwE{@Usud~~-r(kvcKH1)xe`Vglx_~RNetur2KC@f; zuj%K~KTV&PUV*RqgVHIS0PtvPd+PL5b82j=GWl)t_sM&cS0}e54@ov*U%)T1p8dAO zg^ATzDKI#Zj(-?`0^jI2#K*^rSSxT_>{RUj-!J;t=o8WFqpLBZ?i750FZ*ZXEBx@t zzazhk+!kqz932@MDU`iEtOKXK_TLAdX*KmFUTy66UyrTgtyj*#4jlSgK|Y5y^~T4B z-P#0eoNNYm;Oti)sXWyLX?$$@b>I-#a#f~vRTCI{zRa0i;FzphtIoK6`B3BcHKYSB$<=(v)LE}DA8XydhIPO%S>0biTckW)7QWba!uy;sVlu5sY2}SNN&j<(zzW8X>P}w4)`UP&*n=A z-Hrrv+@-{IvZjMPluZ`z*8G7i?C>?911`$yHmwWarj$qgy@qwbGr5|)uQ7S=dmPI> z;<|ec!T7Aad@|!hw{_@R$lGf;j@i>Uc-?=z!6~1)!D~9;q&!UBS&{({O7UTri{c#Q zV>P@3e#)v78IICEp*gru)O5g2+2;^PFaKuXUPK&yI&!pZ3CBm+qapZ88fxp*Mz9@O z1E428yLkzKH-hcRSb#n_zyV;#+m5sV@EQu0Ks(-cq;LXPJzWF86hjDgnMo-Fl@>-| z$J>sC0PxZZ0cgkDj<^Oi&>P$W>PH%(F$3_05d08c0bSZG8GRhv@# z7ooQH?I@EnJfU0$ZSC8BiU2&J3?QNHCu@N9+~fABZ_q;9PcndzPykqH`-v9d31t9; zwx1vXUnl`cX#4S6sG3u9gc5>Vw0*0T;R|I13Ed(9Unl`s=w=PzO{pCYbL+MrX8<9g z04SlGEWi`W01~=U0KQNHu+R-!sM?g;zX&aKy_De#r82lh*9pKEN&ptRmH^mv-yRR3 zdzd<}rce7C10bQijlBSr(A5^8H;;D!By^PkAT(403tdS<=^D6?h7hVnS4bHU8b(ly z9xDI{4FOo_at+`yTUebm1Q-J*-6 z3{NPR!7X}>06d`#V4+8A0QXUc18)pfm(2zc5(7fJvY zdWaUP`lx>qTIj)2hA))LV4(*Iz!ypY7CMgrSSiLr@$U?^{I?ze)uM9^fQ0%0C3KDj zG;aw5Na$<g%M0EBjL-%l@UZ`^8^t=FSDvEF@OljN*-rzBkaK2$6+H2Uk^DV5f{)A)Z? z+4p7Go9#yI=Qp)jUHHE6Ug3$tPJHWMSlFk~3%m5amcKK9DNY2KjxYP^+@Eug<+kTe z$sK{S|9W7zy_d6hXRpCG{6qEF|8;Nd|GA9)C#UNyE?WhHaj*fmW;j^ zeK2}$baQkrb_z)2Tl&Mn^}$v?_b(gybL7{N8zLt}7DV=mR72W-_gA?cLz`~36Q+-^ zu^R$Rs~tbOrha5SS5S}b7|9fe5TZ_1JSW#7c|niu7`*5-Rr8WIzj8YUDyn2Yc#+#o zlBw#ew|ByPDt^@0)z*%%KX<21t*adk13!cOh`R2N`2D9cJu);S5FvL9~bpaO=0x}QtD%FNxpgp zk@~2M@zoQC)dzy9538>?>LU&&q#hWhzRbgT>KOy|9jCY$Up-++eaFe7zP>~~fmnUV zNp4BLdImv#$B8b+S5FvH-*JLq)CR~+fj3M<{RH%Cg zUPQin!mxU*B-D4lep&e!q}5~fpe@N)PbJZv-+^U=7UQcY46DalK^iDfKeJ;6-OUx3ej3vhR^MdQV@;o6Lh6B0>amc|!FcK!L+Y_~&tiP_gkkkqs;AXA zIin_}oW}a+o_fZR`omp}ubwch{xDHr;~cgo7o^o6>XziIr;_;2U*KYV^@M@?J{>#+qCMi| zH@Uvc^iS0e41wrJdu<)*<{!HPAl-dBcmSjT`lqS`z)#f<9sn@_ibEwpaa9KfK=hj& z6r~rza{F}f5J*AvZ*oflt$jLp2*dyg4Uw==9s&Vif0L^c>Wxqgfmmp5NGJeGC=YxccqMB|AthbKz@^v^59D%4S!49(eT5U(P5Yk&?5z-R{0lhss_A(KjW2pIpSzq!6lfE9y7tA5%3ugU)_<~7j`GPsve8Dtmw6y<~ ziQvu`%t7V@Uw!EpOoG}kn0uNpnE2-H?UkhFB!IPFFlqe1uI%Ho;`_xX;r)M3aW&Td z*A%-J-Y?u)IH54JP?`TC|7gA=e`@~l{Alb0_;v2(-0iuGaw~HO`+ChksLmDrG&muO6MivKnKV*ID^3*u|y2Ve#u7yEPUNqE|y zi52<#V?BO=Ie-VEH$+d39v0mj>+rt`eiz(}z2=V#4hialE|ISy&%+bo;>gO#^vLi? zy6ofLJL0hleq{2Flk(84AC3JRN6+75M=Vys4^2*XpUDbAH$(3oQ7HpEJ<3zLel%jE z7xdl{xXBI$C4(X&6fpP{gisV^QU*4VbSMx5#r9L&WQT&1=kKxoWTAk;ryvAVY(GiL zz`m3Y1!6>TqMPhcP%6dT-Rhk}wpv0f-(@F@tP zDAq|CBRmSkh+?gq>`+iLDAouC3_b-R6vb*O1Gl=Pf^K|Jta6hb3e_*RuM`Rxdn1xClnfQig#rejf)I*gnUsMW*`c7@8Wc<2WQT&1L9s+AVDKpj zp(qwh8Mu)h3c9U9vB*t!C@2{e#|Q-sJ_R8Z#nDm*Ze)joZfj69yU7j(C4=H9p@6}s zAcUe=Xv(17YlWiL^ot|iWT8;Wpg6)%P;Qq(Ar!^oQU-2hhk|Zvs5s0`b|@$r6o(20 z3_b-R6vYB512?imLANz1=DW!b1to*x5TSsG>l0h*~ zC}8j@2%#wEN*TD39SXXwK{3Zob|@$r6tjf_2A_fuiei?Ofg9POpxYW0Gu>o|f|5Zo zLnvVIDF{InmD{J&k0cr_SZ4)2Nv;PA+ouV_4i?ljx|*=4+mr82Uvs* z76d^*Cbv&Dg9XQ7K`w*`b(Pzv*ivM$Af?b?Vf$o@kimi==*RQ+{SAUg>S{Pah&nSk z+CE7TzFtD`kLT?&z`|hO)vFMsR|Z(lw4`C7F>LjA46tZg5=Rm^gCl|PkLT?&!~(_) zjx2=qVu+<$kB`&#)zC1uayt*OXi#E5bW61=79L(^23J0T#EfMcDS00Txfi z_z2a$JiwwF;r0z9NG}ht6ha1r(lV?U11zOiwQr~pRr5T=Ql)r$`95O37-A{C+`geg zSg#DQxP8@N(A1e?kpUJj&G8XRF9uj@kjCvBMvz_%vkXE8gN8-j&lqf#^I%Z5Z>SJ; zB^Yj*QlK{sq5ByFErXE3pzyF>46YQynQ1dMuUIge(g-{FH3+2_qbNa`!LLP-UicOp zgr}EVhT9k3#7eI_+a`smD}f)eDaF%k+ZX=B2I1*t1oRHt-WMAzj+r)o8anX!K7vXsHjfe zoRTRGCBqR|mF&EuO;%Mh9Dq4@jouGmKR5ZB;qt4~Y{~qEdp?c-PmA;`!})*D7k`FR z{gxN^hyQ;WPVl?8aAjd*VRm77A)Eg&{}|=~PQe_&sQm7^zhPbfPjlzwmgXkrs!tE%x-gBE2bnSbB82D)l|D0k}EU zmRggVk!nbF!MS&@Cm%>&k6rwZ#u;}5lljCai5C+;Ph6QeE^&BbOrje5^?eY3EPi|Z zqWDSi!{Sro1L9p`f5nObT7Q3bY-4OrY`<7VEED}O`bzW{*ro5}=!)pnXj8N+&ZPT8 z@N95%aAmM5I64>`3=6W6Zz8Y4PoO<=0cHpmL`I+r{^MV#w*B#$AcYTP4Q8{4%C;B->Ge1lgVrb zQQ5YS$rRdjW9-`ZZl~+()V8Y%{a!c8qoWeRPDe{ZA~VVZ6};$#qESq zzTZwOdV#0+EuGpLbS6URcB(g-!tJ#D&H*27dHK6eZFMG-ZKqn3DcnxW22W~#`k^yA zwbhtRww?AenZoU~wBeB+fb9qw$l)kDcnxS zwEp{VcTMW()Hc{;vh6g;WD2)a^LM(+_cWPoI}J3M!tHd_dQ{%Ozv|RBz+|%Rgp(w> zoiOV3+v)HZIvqXz#Vy>?f58&2BgtN?_v;$UFTih-h+^|*C> zrR8m1byfgES#iWJXT`*bmvz%mZlbCwZ^N;?%nCp#D>nS#teEidvTpof&%Zx%;o;?N z*zSX~0uahtR9Wd%A}{NPZ}wTc{k2SaTR~+dKqzZoXT=1CpLN*v^lU6|%jv8DgtBIJ zR!ls2S=TS)K2+Y8(OCfqWlig>;dWiuapn1VP?oo)bXEXDS(7?zxLw!2wfoshiXj&RW{8QJpp1uB&(8X4?5)d0U{fmbPm|XAQUOsvdpr znf;fR^0qRawWM8JPf=NECfBRs75hxSwd?VJEN?woWhH=LO|2*Ctl@TDeq#zpGn^+^$D0{!2@rd*+n4uGLvf+jWh~N;8pOyB^V1b@kTODk}j(?Yc^54Y%upkJJOE zb*0W)+O8{f)^NKX{L;?%=KkaP^44Q@*3x!euCs>Qb?&cJ&uLwzvzE3i_VT93T5Y&p zXZ@IZ`l9kyY~@XlH3EdRF4kGY?RwxIe}&jp<*kc!)^NL4wPMb?e-i!y|MAsP)ruKw z4GCY`X7!4wYQ?OzhJ-IczY3~aF>|dU;af;Q@~c`gZ>=HWTSY(Gt6DL4tswvD5nk1b z`D+acH~j|nsIF?o?6ro3n^-@Rt6DLGts&v2)Q{e(R?K2+NVs0~Betp)bJ!XZt{43% zt!l+QwuXf3ML#mDS}~WcA>n$_kH)H2%w#Lbe|iK~wPH3~L&EiqU3{s@4Mp60R5B#j9GU z3M5=Fx+_<-VtTuOlBeRmC*t9~9{({O;)PaBZkMMxogWevt(ePJ8NA(v$1cdzm;@)* z?kamL@=+Ol|Cbc!6(&%Me`P<(zLkA0`(XAq_!L~6Jw3Z2 zyC{25cK>Wsc3`%9Hl6t=P7Qc7^DJf;Zq3|~xhQj5W_{-9%-qbxOe5wQcF!cze^37@ z{Yv_=^quKl=_}J`r?+5_z(dmqrpKg*qOQm3TWVjqGz zsqv}$RKHZWR3iB`&MbT-`B?JKOKg5U_Mrt@e@w@03*mv;d=ws2l z(6H_w?}0ad{@hvhbIIXrz(U7BQ=kKm^bE~g1{~oUFu^$ho5Wy~XH^D&j~H;63&HH= zfJ0paCMyRl5JR2fo$nZ!_Yltj-h*8O@nUxv&09BD@y>H0#5>nD5bqpim@{`)?G)16 zf0<(--u_EHL-UsYOI!nZ`(xi8;^i`!xBns+0^a_|xCZd{KRO@l(v9kfNc+8JV#L_* zRU2#G((e_Cfvexkg;*D^TPEuFk|ctq--~F-2i(T|-z!{zvu7}VLG5_*zOU}j`(JaE z>ZrP(O@`L$zBY>btlmRa!~*tGte9(JRG$@dY^-@p#cYXzrDB$<&jre>uwtepf}>)F z#6VFoU9};)hPqYyzU&x?sP9Xjp?OQ+7hMDB`u7GA@R{~}FNR+N1Q{hCLw`6+TDA+T-RFxtxb7y+mWH4uX*eIAX-A$A~ z24%`6%1qeRm0D~56#mSU>1LzE)YUMl4>*}FHkp`qvr%H|Y@+-bCeulx%v5xu&{VKd zV#*sP_30#&v&qDiwNYZqm?+;TnY2WiDdj}Ll(bP|N*E?}uVmsjnV4cWN=#ARYLn^a zEu3It#8Wul#+tVjwn_{vg)O>+Pv#~nY?efD6poV^C<>df2L(03#L2vkQR;IWCz{k} zZoGL*>Qg5Us?;ZRDxb>FWU0S60MMmAcH$sReWWF-l}HuSBuaD@2Rc#ovjc1tWEE3& z?derR6;o_7s46DgD3~htH&I^uP%%lO%rw!7f@y+{64Q9Yq}C}^jI+taG}cCmX+N#8 zzHU4}W~yzRxT>q%c=ML(N+%As>OQ&>k)JEEy21f~ue!Gr2Vr$D!_PN+#l8|{Y5O=) zNZZ>+N!l1AP2KDjqir%t8)c&;ZKPqYRnmIeI7{o{#v!e{6DMiqMjD>TTsONr0Fu_t ziIcRhhF?8}M@W>VH91j8YqU|4)?lRRCvm+^CTVpxO44d|w2q&G5p)`U7}YfpQ)IIf zZQc?&&PKr$LAU8fw>`k5DzecggDJAXM!^(WZ=(DZjI5I=Gp%)^U|M6N#I)Klsi$CM zl}#q5l{QLDD@>GcjL5MPWv1m$6imx(l$e$pCUs*(me^!sT5O}lw8%ucog&9bl$nlp zqF`#aQDQpEFsXKmEVRkQbfk?E(-CNt5B`d!zO~FyN!XO+{Cy^c9$4YbaP_OTe{j9DCot?6skFPvx%VSY-6A> zuT`~@G7}&ty*1!J$roXEnOZe$s$3Nfu{>Cv7Ti<6r1Adb|;~K!& z_i6e0UZ;PPJ>^2c+V@G<0N%b&Xv4&DbNQY~e(M;BH~BBm(7Yx2PuBq6iDueIx zpDY#nHuHg|7>*749iqitqmi6>4ze-dbeU-)HX0T%K8*nVuP( zNv7XVKb-zidTaV%?9<;V^=azq)Q_?E-@?@1sU8?>zm&W!d2Vu9a#C`S#P`^T|Cfo& zumivhoY0rT82XX;_3`85hr}D=onxP2E~Z(X!yJ z;2wDYuMcJhLxXhWgUG`;gYSgM{77SDH^?)8RXZ@n4QHCVI!yN1#U@kh>PExBOZlpH zV6Iyrs3hfrBoH{a?=s1({` zqiP3czzq?No9>S29QPmDihf6uQ6T+C8xEf4|3&fMnSHrR~ zGtLmqarv@g(6TW%ZXmvFf+*RTB)1S(wt|psOp^=5lg$v8jrnqx4NFKiW0Y(<{*qdo zL9T3tA=#Kb7lknCv=#FNbsmVKa>4NFKiW0dRzoN_$b3PZB70+*YT%JF0~gk|$OTzpl- z7erUKTI`^RCaY2i;>uPKB^#@8iAX`LYy%W(_jtLHx zBU_gPhv2Fm;~j`2TSHj(I1RyD&u607ppre-LVVf$rsNmcelEn7tso?OUkBpJW(dpP zN6UuAYwcS7PUaWb-cC85Y%Ygok8vQLY=*Gx(HeqRnlGE)aZ2_m3-M+1YmjA+bRn*6 z1tHlZ9Ec~IAuPK|%Z4Q+n=$HY8l7@H*$P9g-QYkx*$iRX^%{a#nlGE)af+zULVVf$ z8f4kEF2t3sASAoSfq1eR!m{_$vSA6yW{kR;;Z8Z8Y=t4&!yJewn;|TFsD|K`=F6sc zoFW=xA--&W4YKUPF2t3sAS8Q`1My@tgk|rkWy2DZ%@}nx1D$d_*$P9l2RIN!4IJmge?0>!2vNyADbrc&XKnUQz~X z+o7Pk2Srae*`c6hQ1lQA7<>vsD2nb<29!Azq!Se7Zn8r`$)MO>C}8j@2%#vtNf~(i zI~4R=02E!_WQT&1LD5AhVDKpjp(u8fGVrE#DCoTliq3AbLqW-)=p+;{_!NXt6h%`8 zxq=8qyshk}wpkrWCTdh$LHL6`yPoccWVo77L>`M)$Z zDb+U>N&X@EtK_x#%6>?)5xf8YHSv7nr}(D6JTW=ZA79e{7=I9R04Ky3;Cp$u*xzEm z#kcSCV=H1)@x?nG{V4iW^d@{+Uk*?ILD&iKqu{AvM{o*G(`yX6M*bFgG4k`sMUgd; z8IfTS`M>zr6al&kU}OnkBmue#U_=RE1Od7Tps57VM1b7{&{zU!BtT~YG?V}u zMmFwoR;PHcF5QOk(w(O9fKW)S*`cax964h2_&v@lI-qes2pYG?Sp^GfC@HC?p{9mP z$~&Nvk{C3u;;bAly30UpovB)D zI<>9=Gg|ePEvEaK~a5PRB0aInmiGslCHDLryl`SU- z0td{55inJ@9B&YKJ)pH*E%bt@schLQ2prQAM!;0rvPBRj^--_tW3wPi>VqE7DC0Om zl+*|9IReBcL6p=-{b;U_je;ntkNVME9~%TwQXloBxjxn#1TB*B)zWqusE>7mD5(#c zTg8>G6+}sW(2OS#YXnhJA9boeRtut}KI&9`tP(^?eblM?SSg5-`lwU&u|g0f^--tl z<5+{hSUpr9G|EPOEEhycebBfTYL^M3q&{j@eJmA3Nqy9+`dA`}lKQAs^|4qGCG}CO z>SGZjXmuNwyG*O2^}}invFf*Vl`Y2z0&82s2$(8cjur$KvV;*ZRkkz>0;^WS2$(8c zjuHfx5`_^kRkkb?1lA3O5inJ@9BB}$-@00Kzdb?_SP|rxQIB>(8HWp^q&}$M0&$oi zO6r69Ef9waqNF~k-vY5f5GD0N{T7J%f+(pE>bF1~B8ZaupneO)!3LrFty>?u-yS50 zlKP;2i!$a3qNF~k-vTjL5GD0N{T7Hhf+(pE>bF457DP#XP`?FYmLN*%gZeEHGX+sn zAJlJwm|+mA-@5go`|Wf=l+*|HTa+OqJ}nb8fQDHnsU42^iHGq}#5IgCfRcKkJ_taQ0hH7ObwL0c4WOhRs0RYj zU;ricKphZ(dJUjCZoeLQcDheXodJ~815XF{X{j}Ul6s)t2Z|a4D5(ePd;sia044Q6 zeGh=)22fHD)b(mBTZY9eI(Hd}pU}K)2EV4wU_{Pz z1lPBRfTgl!kVSBXdk9!6TlN%$>VXb|J75N5;%A~4loh|g4gfC{A1dBfyrFnu@s#44 z;=9#XiMC;XAAV_(S0ZoC)~zLI?Z;&Ma&yEGZmZm|PfH7*yzq8G>)~pXA@l zKbLxQ~zFR(?`+M$BxmV!-e`jt-?y}sOxsAC+@cy5e ztIze#b;(7uf6Km?eF?h>-k$BqUZQ>f=Vd2p-~SYL75Fpu6?g)t3;Z~9Ri-Vo6}t=` zmYJ5>Co?QlfjtJkO@ESpGyQD(SLs{fZ*XDy)bzUa(djwq@#)%hb-HsplKN}v-PB8| zU#IR!?Mz*fIy z9Ga}ajs)K&K2N-Z(+MBOz69G67bQ+jtW6x1n4K7(s7v%sbWOzLUt^DgSFuaMo$;OV z%i}HafZ~Y_6&W)0f4ajcTOCH z)vvSL7F{7ku+O6s0tk1z&v=HJ+4()O&4lC)A98&a(3i!q;X~v)TSqDJUr0xJ9X`+R{ z4^{lyTn>NUu6V?WLfXSNO41%O($x2yiU(~nNqfLXN!qXUmDD$>R(s0ES=y6s9MVv6 zEDd;GEb_RPMsdEQA9DaC&D0$MNSe{2UD@x~mjmx~x*_j#qL6m4jgquqYH7xm{T`c4 z((blVl6IH5l13%%5gTV|54&+lL&Yg+jY`^sMjGNQ?Ewcs(xmPHAZemS`Oe>IE~k;D z-Qh$b?H4vm(r!1>wD0`SZ8Ax_%|=Pu&&-uHC~5cEI7_?NjYAqLPDyJ}((WAc9V^gv>VNp)GKLs z*f>l3g&T)7RGgAlucZClNJE^Z-R1yDn$#TtBu%uaC*+UK<)|m*E+-0UJ8hJt?J&}m zD|5wmn@rL=Y?P$6n=8>z$e-FcOS{F5LmDbhNy7sVY}Gd#Y32!elLH`WQg`|ZDO%JM za+|pv^@O~^i9*_sY?P#3Z=~rbUPCp?%WRaS zU8=97u7>aZLb;8Tw8HLg9IJ}d+KkzgfTva~bk))*PB&zsi<1F-h25Mu2n(Gh&Ua*? zlZ`WB(T#(!;KYeAFNEr@EaV&j5oVn@5oRRL_emjb<4l-x;~-2raUx6zp}JQJI0u{? z4>LOS<}SpXI1xrA&aGDnY@7)rZXASVP8@{!?}bpcVE#J?0K)vgoj3^d$}fKQB-MnO zak_=kB51*kT9`zs^eZT{pG^f>W?y}`=;q6)g+h!5Rc3FC22*B?iE`Uz)H)%6`Dv0- z>x5JkOd|zMcS>f2VN&guQR{XXO-yRt4o8Wp!DQw}%hXGhHK}Dg0Q2UTnOd7lOf`l{ zHCSdZn@mi@ZIqaXnJBkbW~fA&X^0brrolE!OoI%QYN-sZFQI---X>rgXrsh5K(*V% znUhCSSIG~wapKB5>C{wtELEi&jqp^1`F`rg;5Zl1*8zYpzlReCVZK`8BN$(0<4mX) zoe{wZChX&+6JdoAj^NInSBuV61|r1DPkn_W=xvi%OTj3e4;9O+rC=OqLbVi3$Dy#C zzW=W(`&(J@_r-gPmlxM#%s;f4#_sDnd z?wR^W>gCkWvF3h7Y6`ymmnGjy-kZEKxiL8#XQ0sOp_^o)M$Wwzk3s_r~g-a-I=k(Ac4Z$n|Td zcD5!TCgL(~{>q1movn6iXKR9xb|1pttUKXsP2Q{uVqL#fDZDOWr*^ew2$Y9PA=j^+ zaJ4SSx&(%lUX1c)-Km|e705d1YbtW<+^LyIV@W{TQkIy z%@CHYovj-%Tj(>vpk-@kYl8T)38G}f*_vfD#FeceBwM>$b19x|hOlh7TC;2_rSxL7 zZ0&5#<#@8W9G0z}tr_CUW(dpH&ejc>0`-|-(6Y6&H9>sY1W~f#Y|XM6;>uPKlC52> zxfD+}Ls&LktywmeQhG63wsyAWay;2w4$Icg)(r7vGlXSpXKU<18j=lzmaUzw3F6Bp zh>{IwYnIIrSGIzXZ0%~zrFgO#!m{CN&9bQ!Up8aZlSVsRb2*-Dg`vK!ovj(-$z}-4 z*3Q;6eeE*w?6sDyovjJt%2p618_w1wTS2UB10mVk)tVuWYz<-AaJ44c3@N=B-P+pO zT7hie*5z<(YiDbQII=Z_Wou{adVB`)nPAYewX-!reAxt1vf*savKivaRuGb{U9Gtk zPc}nXHe9V)HkDF(FsY z1W~f#Y|XM6;>uPKlC52>xfD+}Ls&Lkt;?yksT5x}W7JKqovjtfZEc02n_N3vGsKh4 z5SFc-t?NVYZRMn?h_tgcL44UTXxVVKX4wpJWh)5D)~?oEiYJ>PEE}%YZ{%4=MS*|3CUGe%uaC#M`ww!)C?q66_{GlXRqGz70SUpBqt6j9zneA)aO zWZ5|v;>uPKlAU!Ro@|D&?2MKTOGq|j)YYV&ay;1zL$Xs2#FNbsmYviPywZHx^o~ttYVO(GBe{EWx8hvC4-?NO9!cDjxHYi@JK|lGI4jvZxmz-YFXmq* zKE^lmSChvjS7K-X`PfHqVsdn{COIHB93%Oju}-l>^xNo{(GRgF-mLik@x9}9@jY`X zoGS2D_T%h3*;ljA!YAOK?5)`y*=w>FWzWJ{gX^=)vPWj;We>=Xg?GTv>>k(~u#k;m zcfc<)A7FpL7c)<09?0C0xjC~fa|KQ#JUz1|vpTaVb7*E(X8+9InYzrLnLe4WnM|fE z{WZJ>-c7%relGoJ`d*w-unXrEUXpH2pPb&9J~n+6b}g8Oz4UI0cEtO{yT&u|GVH?l zN$lO&>#^rzkK#N2ZP=6GI_$;Q8ap|*vG{fIlj6I@*Ne{;A1&SsUy5DD>x!2YTd}Xg z#^SNXqp-SST5)`FB)ls66?+yt6%&PTvDV_l!rO(H3s1wl;;zCi@UOV4Z~;6ljxVf* zkHz7IIfW^OeG3hR!G)^A?uA?-$bXanEdPG~jrs(3iCr}rjEz1j7w672e-#Y=7#3> z$aRMgN$>n_`P8_H@qd<)(+d95QB2NZjYfP=2@RCc015S%P(KOvmCzm%s+LfdgeoP} zM?w`6>MfyO66z_T9un#

hfBE}?D`>MEfw657p#q8lZ&K| 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�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

j`KEV73Od^Z<-(X{}#&ypTX$%J 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

IR2nfHSR8*J!uK8g&ifFrW%Nj(F4!>LnYaZs)L1 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"&j&>c6k+UI@Y;ER7hre~EZ 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%0A53)l+k2NT^a-$sz ziiV1bh5`m(1tEl@+xWnP>`>5S4T>%|+M%FmP;?p!7<>vs2t|kSfd|>4pvM{%?QXO~ zLD8USGZZlR6oe3pn(^Vj7d)kvD5`F>L!sV_ilKb)3eC?fBLI1q}l#s?l`M+H6Bpcvyu zI}{WR6{8IW4896N2*oJl0}rx8L60>k%5JnnLD8USHWV=U6oe3pk;VreWQT$tYfxz(7H9vC)x5S_ym)%q3#|`d&1<^_;pt@r z>*clGgy0!eHbrR13rSU8+sz1HFYk%Lda<@!^zvxC?}PU%SZe;CPcM7n_3)=zgr}DgydM5kjo|$|EDh~=AuOjDgs+$P#NhStCp!rDc@_k% zhd;?8JiUzI_3$TZy|RCYe171#U8)hhe}|=^9WO-h@dn}R z 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 C4zFAQ diff --git a/slicops/pkcli/device_db.py b/slicops/pkcli/device_db.py index 375a4d5..0f012ff 100644 --- a/slicops/pkcli/device_db.py +++ b/slicops/pkcli/device_db.py @@ -44,7 +44,7 @@ _KNOWN_KEYS = PKDict( - controls_information=frozenset(("PVs", "control_name")), + controls_information=frozenset(("PVs", "control_name", "pv_cache")), metadata=frozenset( ( "area", @@ -53,6 +53,7 @@ "bpms_before_wire", "l_eff", "lblms", + "hardware", "rf_freq", "sum_l_meters", "type", @@ -161,12 +162,15 @@ def _input_fixups(name, rec): rec.controls_information.PVs.pksetdefault( "acquire", f"{rec.controls_information.control_name}:Acquire" ) + # TODO(robnagler) parse pv_cache return rec def _meta(name, raw): # TODO validation c = raw.controls_information m = raw.metadata + # TODO ignore for now + raw.metadata.pkdel("hardware") self.meta_keys.update(m.keys()) self.ctl_keys.update(c.keys()) rv = PKDict( @@ -194,7 +198,7 @@ def _validate(name, kind, raw): raise AssertionError(f"unknown type={raw.metadata.type} expect={t}") if x := set(raw.keys()) - _TOP_LEVEL_KEYS: raise AssertionError(f"unknown top level keys={s}") - for x in ("controls_information", "metadata"): + for x in _TOP_LEVEL_KEYS: if y := set(raw[x].keys()) - _KNOWN_KEYS[x]: raise AssertionError(f"unknown {x} keys={y}") if not raw.controls_information.PVs: diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index 0a0a486..5f464cf 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -159,6 +159,7 @@ def _setup(): self.__user_alert( txn, "unable to connect to camera={} error={}", camera, e ) + return txn.multi_set( _DEVICE_ENABLE + (("pv.value", self.__device.meta.pv_prefix),) ) @@ -182,7 +183,7 @@ def __device_destroy(self, txn=None): try: self.__set_acquire(txn, False) except Exception as e: - pkdlog("set_acquire(False) device={} error={}", n, e) + pkdlog("PROBABLY ignore: set_acquire(False) device={} error={}", n, e) try: self.__device.destroy() except Exception as e: @@ -242,9 +243,7 @@ def __update_plot(self, txn): ) return True - def __user_alert(txn, fmt, *args): - pkdp(txn) - pkdp(fmt) + def __user_alert(self, txn, fmt, *args): pkdlog("TODO: USER ALERT: " + fmt, *args) diff --git a/slicops/ui_api.py b/slicops/ui_api.py index 88d316e..08ce56e 100644 --- a/slicops/ui_api.py +++ b/slicops/ui_api.py @@ -46,6 +46,7 @@ async def api_ui_ctx_update(self, api_args): return None if isinstance(r, Exception): raise r + pkdp(getattr(self, "subscription", None)) self.subscription.result_put(r) finally: if "session" in self: From ce27b1863c8da47a3180085d1bb5ad423d2ff27e Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Mon, 14 Jul 2025 22:53:04 +0000 Subject: [PATCH 05/51] ckp --- slicops/device.py | 8 +-- slicops/device_db.py | 2 + slicops/device_screen.py | 98 ++++++++++++++++++++++++++++++++++--- slicops/mock_epics.py | 43 +++++++++++----- tests/device_screen_test.py | 43 ++++++++++++++++ 5 files changed, 172 insertions(+), 22 deletions(-) create mode 100644 tests/device_screen_test.py diff --git a/slicops/device.py b/slicops/device.py index 6150bc9..defafe5 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -98,7 +98,7 @@ def __init__(self, device, accessor_name): self.device = device self.meta = device.meta.accessor[accessor_name] self._callback = None - self._mutex = threading.Lock() + self._lock = threading.Lock() # TODO(pjm): connection and PV timeouts need to be configurable? self._pv = epics.PV( self.meta.pv_name, @@ -147,7 +147,7 @@ def monitor(self, callback): Args: callback (callable): accepts a single `PKDict` as ag """ - with self._mutex: + with self._lock: if self._callback: raise ValueError(f"already monitoring {self}") # should lock @@ -157,7 +157,7 @@ def monitor(self, callback): def monitor_stop(self): """Stops monitoring PV""" - with self._mutex: + with self._lock: if not self._callback: return self._callback = None @@ -226,7 +226,7 @@ def __repr__(self): def _run_callback(self, **kwargs): k = PKDict(accessor=self, **kwargs) - with self._mutex: + with self._lock: c = self._callback if c: c(k) diff --git a/slicops/device_db.py b/slicops/device_db.py index 8a66613..aeef12b 100644 --- a/slicops/device_db.py +++ b/slicops/device_db.py @@ -26,6 +26,8 @@ class DeviceDbError(Exception): n_bits=PKDict(py_type=int, pv_writable=False), n_col=PKDict(py_type=int, pv_writable=False), n_row=PKDict(py_type=int, pv_writable=False), + target_control=PKDict(py_type=int, pv_writable=True), + target_status=PKDict(py_type=int, pv_writable=False), ) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index fcd34e9..d7bb98a 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -6,17 +6,101 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdlog, pkdp -import slicops.device_db +import slicops.device +import enum +import queue +import threading +_INSERT = 1 +_IN = 2 +_OUT = 1 -def insert_prof_target(device_name): - if _already_in(device_name): - raise ValueError(f"device={device_name} already in") - _assert_upstream_in(device_name) +class Screen(slicops.device.Device): -def _already_in(device): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.__destroyed = False + self.__value = None + self.__work_q = queue.PriorityQueue() + self.__lock = threading.Lock() + self.__status = self.accessor("target_status") + self.__control = self.accessor("target_control") + self.__target_in = threading.Event() + self.__worker = threading.Thread( + target=self.__work, + args=(self.device_name, self.__work_q, self.__lock), + ) + self.__worker.start() + self.__status.monitor(self.__handle_status) + + def destroy(self): + try: + with self.__lock: + if self.__destroyed: + return + self.__destroyed = True + self.__work_q.put_nowait((_Work.destroy, None)) + self.__work_q = None + self.__target_in.set() + # cause callers to crash + try: + delattr(self, "value") + except Exception: + pass + finally: + super().destroy() + + def insert_target(self): + with self.__lock: + if self.__target_in.is_set(): + return + self.__work_q.put_nowait((_Work.control, _INSERT)) + t = self.__target_in + t.wait() + with self.__lock: + if self.__destroyed: + raise ValueError(f"destroyed device={self.device_name}") + + def __work(self, name, work_q, lock): + try: + while True: + w, v = work_q.get() + with lock: + if self.__destroyed: + return + if _Work.control == w: + self.__control.put(v) + continue + if _Work.status == w: + if v == _IN: + self.__target_in.set() + elif v == _OUT: + self.__target_in.clear() + continue + raise AssertionError(f"unknown work={w}") + except Exception as e: + pkdlog("error={} accessor={} stack={}", e, name, pkdexc()) + finally: + self.destroy() + + def __handle_status(self, work): + with self.__lock: + if self.__destroyed: + return + if e := work.get("error"): + pkdlog("error={} on {}", e, work.get("accessor")) + return + if (v := work.get("value")) is None: + return + self.__work_q.put_nowait((_Work.status, v)) + + +class _Work(enum.IntEnum): + # sort in priority value order, lowest number is highest priority + destroy = 0 + status = 1 + control = 2 - pass # = slicops.device_db.upstream_devices(device_name) diff --git a/slicops/mock_epics.py b/slicops/mock_epics.py index 7a52503..defd271 100644 --- a/slicops/mock_epics.py +++ b/slicops/mock_epics.py @@ -20,6 +20,8 @@ _X_SIZE = 50 _Y_FACTOR = 1.3 +_PV_VALUE = None + _PV = None @@ -27,15 +29,20 @@ class PV: _CB_INDEX = 1 def __init__(self, name, connection_timeout=0, connection_callback=None): + if name in _PV: + raise AssertionError(f"already exists PV={name}") self.pvname = name self.connected = True self.connection_callback = connection_callback self.monitor_callback = None self._auto_monitor = False self._monitor_queue = None + _PV[name] = self def disconnect(self): - pass + self._auto_monitor = False + if self._monitor_queue: + self._monitor_queue.put_nowait(None) def add_callback(self, callback): if self.monitor_callback: @@ -49,9 +56,8 @@ def auto_monitor(self): @auto_monitor.setter def auto_monitor(self, value): - def _acquire(): + def _simple(): self.connection_callback(conn=True) - self._monitor_queue = queue.Queue() while True: v = self._monitor_queue.get() if v is None: @@ -62,16 +68,21 @@ def _acquire(): def _image(): self.connection_callback(conn=True) for s in MONITOR_X_SIZE: + if not self._auto_monitor: + break time.sleep(MONITOR_SLEEP) - _PV.pkupdate(_pv_image(s)) - self.monitor_callback(value=_PV[self.pvname]) + _PV_VALUE.pkupdate(_pv_image(s)) + self.monitor_callback(value=_PV_VALUE[self.pvname]) self.connection_callback(conn=False) def _which(): if "ArrayData" in self.pvname: return _image - if "Acquire" in self.pvname: - return _acquire + if "Acquire" in self.pvname or "TGT_STS" in self.pvname: + self._monitor_queue = queue.Queue() + if (v := _PV_VALUE.get(self.pvname)) is not None: + self._monitor_queue.put_nowait(v) + return _simple raise ValueError(f"cannot monitor pv={self.pvname}") if "IMAGE" in self.pvname: @@ -80,14 +91,21 @@ def _which(): return self._auto_monitor = value if value: + # we don't care the thread gets killed since this is a mock for unit threading.Thread(target=_which()).start() def get(self, timeout=0): # TOOD(robnagler) need to be more sophisticated - return _PV.get(self.pvname, None) + return _PV_VALUE.get(self.pvname, None) def put(self, value): - _PV[self.pvname] = value + n = self.pvname + if "PNEUMATIC" in self.pvname: + # TODO(robnagler) set to MOVING (0?) for a few ms + n = self.pvname.replace("PNEUMATIC", "TGT_STS") + value = 1 if value == 0 else 2 + self = _PV[n] + _PV_VALUE[n] = value if self._monitor_queue: self._monitor_queue.put_nowait(value) return 1 @@ -99,16 +117,19 @@ def remove_callback(self, index): def reset_state(): - global _PV + global _PV_VALUE, _PV - _PV = PKDict( + _PV_VALUE = PKDict( { "13SIM1:cam1:Acquire": 0, "13SIM1:cam1:N_OF_BITS": 8, "YAGS:IN20:211:N_OF_COL": 100, "YAGS:IN20:211:N_OF_ROW": 100, + "OTRS:DIAG0:525:TGT_STS": 1, + "OTRS:DIAG0:525:Acquire": 0, } ).pkupdate(_pv_image(_X_SIZE)) + _PV = PKDict() def _gaussian(x_size): diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py new file mode 100644 index 0000000..605b088 --- /dev/null +++ b/tests/device_screen_test.py @@ -0,0 +1,43 @@ +"""Test slicops.device + +:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + + +def test_target(): + # Must be first + from slicops import mock_epics + from pykern import pkdebug, pkunit + from slicops import device_screen + import time + + status = None + + def _status(update): + nonlocal status + + if "connected" in update: + return + status = update.value + + mock_epics.reset_state() + d = None + try: + d = device_screen.Screen("OTRDG04") + pkunit.pkeq(1, d.accessor("target_status").get()) + d.insert_target() + pkunit.pkeq(2, d.accessor("target_status").get()) + return + pkunit.pkeq(False, d.get("acquire")) + s = d.accessor("target_status") + s.monitor(_status) + time.sleep(0.1) + pkunit.pkeq(1, status) + c = d.accessor("target_control") + c.put(1) + time.sleep(0.1) + pkunit.pkeq(2, status) + finally: + if d: + d.destroy() From 425ad76b93912986665373a1d62821f34b55af18 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Mon, 14 Jul 2025 22:53:16 +0000 Subject: [PATCH 06/51] ckp --- tests/device_screen_test.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 605b088..ba596d6 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -28,16 +28,6 @@ def _status(update): pkunit.pkeq(1, d.accessor("target_status").get()) d.insert_target() pkunit.pkeq(2, d.accessor("target_status").get()) - return - pkunit.pkeq(False, d.get("acquire")) - s = d.accessor("target_status") - s.monitor(_status) - time.sleep(0.1) - pkunit.pkeq(1, status) - c = d.accessor("target_control") - c.put(1) - time.sleep(0.1) - pkunit.pkeq(2, status) finally: if d: d.destroy() From ed056fbdaaed6a1a9a01024badfa59f74cd53a4b Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Wed, 16 Jul 2025 15:40:45 -0700 Subject: [PATCH 07/51] Added assertion that device is in beampath for upstream devices to prevent nonsense results. --- slicops/device_sql_db.py | 18 ++++++++++++++++++ tests/device_db_test.py | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index 1d46457..6a449b4 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -61,6 +61,7 @@ def upstream_devices(device_type, beam_path, device_name): with _session() as s: # select device.device_name from device_meta_float, device where device_meta_name = 'sum_l_meters' and device_meta_value < 33 and device.device_type = 'PROF' and device.device_name = device_meta_float.device_name; c = s.t.device_meta_float.c.device_name + _assert_on_beampath(device_name, beam_path, s) return tuple( r.device_name for r in s.select( @@ -85,6 +86,23 @@ def upstream_devices(device_type, beam_path, device_name): ) ) +def _assert_on_beampath(device, beam_path, s): + c = s.t.device.c.device_name + v = s.select_one_or_none( + sqlalchemy.select(c) + .select_from( + s.t.device.join( + s.t.beam_path, + s.t.beam_path.c.beam_area == s.t.device.c.beam_area, + ) + ).where( + s.t.device.c.device_name == device, + s.t.beam_path.c.beam_path == beam_path, + ), + None + ) + if v is None: + raise ValueError(f"device={device} is not in beam_path={beam_path}") def _device_meta(device, meta, s): return s.select_one( diff --git a/tests/device_db_test.py b/tests/device_db_test.py index 35b0f80..4087a60 100644 --- a/tests/device_db_test.py +++ b/tests/device_db_test.py @@ -38,7 +38,7 @@ def test_upstream(): from pykern import pkdebug, pkunit from slicops import device_db - a = device_db.upstream_devices("PROF", "CU_HXR", "YAGH2") - pkunit.pkeq(9, len(a)) + a = device_db.upstream_devices("PROF", "CU_HXR", "OTR11") + pkunit.pkeq(10, len(a)) pkunit.pkok("VCC", a[0]) pkunit.pkok("OTR4", a[-1]) From 5b49ab1e41f981dcb25379f422c796a93f17e3da Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:43:58 -0700 Subject: [PATCH 08/51] Upstream devices now accepts parameter for accessor --- slicops/device_db.py | 3 ++- slicops/device_screen.py | 1 - slicops/device_sql_db.py | 6 +++++- tests/device_db_test.py | 8 ++++---- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/slicops/device_db.py b/slicops/device_db.py index aeef12b..70b2d14 100644 --- a/slicops/device_db.py +++ b/slicops/device_db.py @@ -240,10 +240,11 @@ def _static(device, accessor): return rv -def upstream_devices(device_type, beam_path, device_name): +def upstream_devices(device_type, accessor_name, beam_path, device_name): """returns in z order""" return slicops.device_sql_db.upstream_devices( _assert_device_type(device_type), + accessor_name, beam_path, device_name, ) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index d7bb98a..b541696 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -102,5 +102,4 @@ class _Work(enum.IntEnum): status = 1 control = 2 - # = slicops.device_db.upstream_devices(device_name) diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index 6a449b4..00eecb4 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -57,7 +57,7 @@ def device_names(device_type, beam_path): ) -def upstream_devices(device_type, beam_path, device_name): +def upstream_devices(device_type, accessor_name, beam_path, device_name): with _session() as s: # select device.device_name from device_meta_float, device where device_meta_name = 'sum_l_meters' and device_meta_value < 33 and device.device_type = 'PROF' and device.device_name = device_meta_float.device_name; c = s.t.device_meta_float.c.device_name @@ -73,6 +73,9 @@ def upstream_devices(device_type, beam_path, device_name): ).join( s.t.beam_path, s.t.beam_path.c.beam_area == s.t.device.c.beam_area, + ).join( + s.t.device_pv, + s.t.device_pv.c.device_name == c, ) ) .where( @@ -81,6 +84,7 @@ def upstream_devices(device_type, beam_path, device_name): s.t.device_meta_float.c.device_meta_value < _device_meta(device_name, "sum_l_meters", s), s.t.device.c.device_type == device_type, + s.t.device_pv.c.accessor_name == accessor_name, ) .order_by(s.t.device_meta_float.c.device_meta_value) ) diff --git a/tests/device_db_test.py b/tests/device_db_test.py index 4087a60..697d5a3 100644 --- a/tests/device_db_test.py +++ b/tests/device_db_test.py @@ -38,7 +38,7 @@ def test_upstream(): from pykern import pkdebug, pkunit from slicops import device_db - a = device_db.upstream_devices("PROF", "CU_HXR", "OTR11") - pkunit.pkeq(10, len(a)) - pkunit.pkok("VCC", a[0]) - pkunit.pkok("OTR4", a[-1]) + a = device_db.upstream_devices("PROF", "target_control","CU_HXR", "OTR11") + pkunit.pkeq(9, len(a)) + pkunit.pkok("YAG01" == a[0], "Expected first device=YAG01, got={}", a[0]) + pkunit.pkok("OTR4" == a[-1], "Expected last device=OTR4, got={}", a[-1]) From c4329aed560913908111460b968829487a22b7cb Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Fri, 18 Jul 2025 18:11:59 -0700 Subject: [PATCH 09/51] Added remove_target to device.device_screen. --- slicops/device_screen.py | 17 +++++++++++++++++ tests/device_screen_test.py | 4 +++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index b541696..334c104 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -7,10 +7,12 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdlog, pkdp import slicops.device +import slicops.device_db import enum import queue import threading +_REMOVE = 0 _INSERT = 1 _IN = 2 _OUT = 1 @@ -20,6 +22,7 @@ class Screen(slicops.device.Device): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) + self.__beamline = beamline self.__destroyed = False self.__value = None self.__work_q = queue.PriorityQueue() @@ -27,6 +30,7 @@ def __init__(self, *args, **kwargs): self.__status = self.accessor("target_status") self.__control = self.accessor("target_control") self.__target_in = threading.Event() + self.__target_out = threading.Event() self.__worker = threading.Thread( target=self.__work, args=(self.device_name, self.__work_q, self.__lock), @@ -62,6 +66,17 @@ def insert_target(self): if self.__destroyed: raise ValueError(f"destroyed device={self.device_name}") + def remove_target(self): + with self.__lock: + if self.__target_out.is_set(): + return + self.__work_q.put_nowait((_Work.control, _REMOVE)) + t = self.__target_out + t.wait() + with self.__lock: + if self.__destroyed: + raise ValueError(f"destroyed device={self.device_name}") + def __work(self, name, work_q, lock): try: while True: @@ -75,8 +90,10 @@ def __work(self, name, work_q, lock): if _Work.status == w: if v == _IN: self.__target_in.set() + self.__target_out.clear() elif v == _OUT: self.__target_in.clear() + self.__target_out.set() continue raise AssertionError(f"unknown work={w}") except Exception as e: diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index ba596d6..bc48ff6 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -28,6 +28,8 @@ def _status(update): pkunit.pkeq(1, d.accessor("target_status").get()) d.insert_target() pkunit.pkeq(2, d.accessor("target_status").get()) + d.remove_target() + pkunit.pkeq(1, d.accessor("target_status").get()) finally: if d: - d.destroy() + d.destroy() From b0554891e83c016bc3a1dbccaeef97ca00a4a550 Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Mon, 21 Jul 2025 15:52:49 -0700 Subject: [PATCH 10/51] Typo line. --- slicops/device_screen.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 334c104..437bd83 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -55,6 +55,19 @@ def destroy(self): finally: super().destroy() + def _get_upstream(self): + if self.beam_line is None: + return None + upstream_names = slicops.device_db.upstream_devices( + "PROF", + "target_control", + self.beam_path, + self.device_name + ) + return { + name: slicops.device.Device(name) for n in upstream_names + } + def insert_target(self): with self.__lock: if self.__target_in.is_set(): From aa9d68ea674f578b9d1fbab84cf8d8c7d2cc757b Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Mon, 21 Jul 2025 15:55:21 -0700 Subject: [PATCH 11/51] forgot beamline argument --- slicops/device_screen.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 437bd83..b57a55c 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -20,7 +20,7 @@ class Screen(slicops.device.Device): - def __init__(self, *args, **kwargs): + def __init__(self, beamline=None, *args, **kwargs): super().__init__(*args, **kwargs) self.__beamline = beamline self.__destroyed = False @@ -88,7 +88,7 @@ def remove_target(self): t.wait() with self.__lock: if self.__destroyed: - raise ValueError(f"destroyed device={self.device_name}") +p raise ValueError(f"destroyed device={self.device_name}") def __work(self, name, work_q, lock): try: From f655cc945e83462b53b904e55091272e79d559e3 Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Mon, 21 Jul 2025 16:39:21 -0700 Subject: [PATCH 12/51] Fixed beamline/beam_path typo. --- slicops/device_screen.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index b57a55c..029b084 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -20,9 +20,9 @@ class Screen(slicops.device.Device): - def __init__(self, beamline=None, *args, **kwargs): + def __init__(self, beam_path, *args, **kwargs): super().__init__(*args, **kwargs) - self.__beamline = beamline + self.__beam_path = beam_path self.__destroyed = False self.__value = None self.__work_q = queue.PriorityQueue() @@ -56,8 +56,6 @@ def destroy(self): super().destroy() def _get_upstream(self): - if self.beam_line is None: - return None upstream_names = slicops.device_db.upstream_devices( "PROF", "target_control", From de88830afbf5386ac5287a558d2b4ac278e7ea08 Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Mon, 21 Jul 2025 17:29:28 -0700 Subject: [PATCH 13/51] Removed upstream_device and beam_path from screen. First attempt at writing an ansynchronous get function. --- slicops/device_screen.py | 41 +++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 029b084..a796c13 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -5,7 +5,7 @@ """ from pykern.pkcollections import PKDict -from pykern.pkdebug import pkdc, pkdlog, pkdp +from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp import slicops.device import slicops.device_db import enum @@ -20,9 +20,8 @@ class Screen(slicops.device.Device): - def __init__(self, beam_path, *args, **kwargs): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.__beam_path = beam_path self.__destroyed = False self.__value = None self.__work_q = queue.PriorityQueue() @@ -31,6 +30,8 @@ def __init__(self, beam_path, *args, **kwargs): self.__control = self.accessor("target_control") self.__target_in = threading.Event() self.__target_out = threading.Event() + self.__get_complete = threading.Event() + self.__last_status = None self.__worker = threading.Thread( target=self.__work, args=(self.device_name, self.__work_q, self.__lock), @@ -55,16 +56,21 @@ def destroy(self): finally: super().destroy() - def _get_upstream(self): - upstream_names = slicops.device_db.upstream_devices( - "PROF", - "target_control", - self.beam_path, - self.device_name - ) - return { - name: slicops.device.Device(name) for n in upstream_names - } + def get_status_async(self): + with self.__lock: + self.__work_q.put_nowait((_Work.get, None)) + + def get_status_complete(self): + with self.__lock: + if self.__destroyed: + raise ValueError(f"destroyed device={self.device_name}") + c = self.__get_complete + c.wait() + with self.__lock: + if self.__last_status is None: + raise ValueError(f"device={self.device_name} got no status.") + self.__get_complete.clear() + return self.__last_status def insert_target(self): with self.__lock: @@ -86,7 +92,7 @@ def remove_target(self): t.wait() with self.__lock: if self.__destroyed: -p raise ValueError(f"destroyed device={self.device_name}") + raise ValueError(f"destroyed device={self.device_name}") def __work(self, name, work_q, lock): try: @@ -98,6 +104,10 @@ def __work(self, name, work_q, lock): if _Work.control == w: self.__control.put(v) continue + if _Work.get == w: + self.__last_status = self.__control.get(v) + self.__get_complete.set() + continue if _Work.status == w: if v == _IN: self.__target_in.set() @@ -128,6 +138,7 @@ class _Work(enum.IntEnum): # sort in priority value order, lowest number is highest priority destroy = 0 status = 1 - control = 2 + get = 2 + control = 3 # = slicops.device_db.upstream_devices(device_name) From 9b1a183a24205fdf3916e412cc01848182834e89 Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Mon, 21 Jul 2025 17:39:47 -0700 Subject: [PATCH 14/51] Responding to git comments. --- slicops/device_sql_db.py | 28 ++++++++++++++-------------- tests/device_db_test.py | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index 00eecb4..06768f0 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -57,11 +57,11 @@ def device_names(device_type, beam_path): ) -def upstream_devices(device_type, accessor_name, beam_path, device_name): +def upstream_devices(device_type, required_accessor, beam_path, end_device): with _session() as s: # select device.device_name from device_meta_float, device where device_meta_name = 'sum_l_meters' and device_meta_value < 33 and device.device_type = 'PROF' and device.device_name = device_meta_float.device_name; c = s.t.device_meta_float.c.device_name - _assert_on_beampath(device_name, beam_path, s) + _assert_on_beampath(end_device, beam_path, s) return tuple( r.device_name for r in s.select( @@ -82,34 +82,34 @@ def upstream_devices(device_type, accessor_name, beam_path, device_name): s.t.beam_path.c.beam_path == beam_path, s.t.device_meta_float.c.device_meta_name == "sum_l_meters", s.t.device_meta_float.c.device_meta_value - < _device_meta(device_name, "sum_l_meters", s), + < _device_meta(end_device, "sum_l_meters", s), s.t.device.c.device_type == device_type, - s.t.device_pv.c.accessor_name == accessor_name, + s.t.device_pv.c.accessor_name == required_accessor, ) .order_by(s.t.device_meta_float.c.device_meta_value) ) ) -def _assert_on_beampath(device, beam_path, s): - c = s.t.device.c.device_name - v = s.select_one_or_none( +def _assert_on_beampath(device, beam_path, select): + c = select.t.device.c.device_name + v = select.select_one_or_none( sqlalchemy.select(c) .select_from( - s.t.device.join( - s.t.beam_path, - s.t.beam_path.c.beam_area == s.t.device.c.beam_area, + select.t.device.join( + select.t.beam_path, + select.t.beam_path.c.beam_area == select.t.device.c.beam_area, ) ).where( - s.t.device.c.device_name == device, - s.t.beam_path.c.beam_path == beam_path, + select.t.device.c.device_name == device, + select.t.beam_path.c.beam_path == beam_path, ), None ) if v is None: raise ValueError(f"device={device} is not in beam_path={beam_path}") -def _device_meta(device, meta, s): - return s.select_one( +def _device_meta(device, meta, select): + return select.select_one( "device_meta_float", PKDict(device_name=device, device_meta_name=meta) ).device_meta_value diff --git a/tests/device_db_test.py b/tests/device_db_test.py index 697d5a3..a70e194 100644 --- a/tests/device_db_test.py +++ b/tests/device_db_test.py @@ -40,5 +40,5 @@ def test_upstream(): a = device_db.upstream_devices("PROF", "target_control","CU_HXR", "OTR11") pkunit.pkeq(9, len(a)) - pkunit.pkok("YAG01" == a[0], "Expected first device=YAG01, got={}", a[0]) - pkunit.pkok("OTR4" == a[-1], "Expected last device=OTR4, got={}", a[-1]) + pkunit.pkeq("YAG01", a[0], "Lowest Z Prof") + pkunit.pkeq("OTR4", a[-1], "Closest Z Prof") From 4bdb9315a3bb3fa623fd19e4a6f6a73041e56f8d Mon Sep 17 00:00:00 2001 From: "Eloise Y." <98988862+eloise-nebula@users.noreply.github.com> Date: Thu, 24 Jul 2025 17:01:49 -0700 Subject: [PATCH 15/51] First attempt at a device_screen method that removes all upstream targets. --- slicops/device_screen.py | 142 +++++++++++++++++++++++++++++++----- slicops/mock_epics.py | 4 +- tests/device_screen_test.py | 10 ++- 3 files changed, 133 insertions(+), 23 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index a796c13..2534f5a 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -6,6 +6,8 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp +import logging +from slicops.device import DeviceError import slicops.device import slicops.device_db import enum @@ -20,24 +22,37 @@ class Screen(slicops.device.Device): - def __init__(self, *args, **kwargs): + def __init__(self, beam_path, *args, **kwargs): super().__init__(*args, **kwargs) + self.beam_path = beam_path self.__destroyed = False self.__value = None self.__work_q = queue.PriorityQueue() self.__lock = threading.Lock() + self.__upstream_devices = {} self.__status = self.accessor("target_status") self.__control = self.accessor("target_control") - self.__target_in = threading.Event() - self.__target_out = threading.Event() + self.__blocking_devices = set() self.__get_complete = threading.Event() + self.__control_lock = False + self.__control_done = threading.Event() self.__last_status = None self.__worker = threading.Thread( target=self.__work, args=(self.device_name, self.__work_q, self.__lock), ) + n = self._upstream_names() + # The following line has to come before __status.monitor. Why? + self.__upstream_devices = self._get_upstream_devices(n) self.__worker.start() self.__status.monitor(self.__handle_status) + self._upstream_monitor() + + def blocking_devices(self): + return self.__blocking_devices + + def upstream_devices(self): + return self.__upstream_devices def destroy(self): try: @@ -47,12 +62,16 @@ def destroy(self): self.__destroyed = True self.__work_q.put_nowait((_Work.destroy, None)) self.__work_q = None - self.__target_in.set() + self.__control_done.set() + for _, u in self.__upstream_devices.items(): + u.destroy() # cause callers to crash try: delattr(self, "value") except Exception: pass + except Exception as e: + pkdlog("error={} accessor={} stack={}", e, name, pkdexc()) finally: super().destroy() @@ -73,26 +92,44 @@ def get_status_complete(self): return self.__last_status def insert_target(self): + self._move_target(_INSERT) + + def remove_target(self): + self._move_target(_REMOVE) + + def unblock_upstream(self): with self.__lock: - if self.__target_in.is_set(): - return - self.__work_q.put_nowait((_Work.control, _INSERT)) - t = self.__target_in + self._assert_control_unlock() + self.__work_q.put_nowait((_Work.upstream_out, None)) + t = self.__control_done t.wait() with self.__lock: if self.__destroyed: raise ValueError(f"destroyed device={self.device_name}") + self.__control_lock = False + self.__control_done.clear() - def remove_target(self): + def _move_target(self, position): with self.__lock: - if self.__target_out.is_set(): - return - self.__work_q.put_nowait((_Work.control, _REMOVE)) - t = self.__target_out + self._assert_control_unlock() + self.__work_q.put_nowait((_Work.control, position)) + t = self.__control_done t.wait() with self.__lock: if self.__destroyed: raise ValueError(f"destroyed device={self.device_name}") + self.__control_lock = False + self.__control_done.clear() + + def _assert_control_unlock(self): + if self.__control_lock: + raise DeviceError( + f"command already issued with device={self.device_name}" + ) + if self.__control_done.is_set(): + raise DeviceError( + f"control did not complete on device={self.device_name}" + ) def __work(self, name, work_q, lock): try: @@ -103,6 +140,7 @@ def __work(self, name, work_q, lock): return if _Work.control == w: self.__control.put(v) + self.__control_lock = True continue if _Work.get == w: self.__last_status = self.__control.get(v) @@ -110,11 +148,23 @@ def __work(self, name, work_q, lock): continue if _Work.status == w: if v == _IN: - self.__target_in.set() - self.__target_out.clear() + if self.__control_lock: + self.__control_done.set() elif v == _OUT: - self.__target_in.clear() - self.__target_out.set() + if self.__control_lock: + self.__control_done.set() + continue + if _Work.upstream == w: + if len(self.__blocking_devices) == 0: + if self.__control_lock: + self.__control_done.set() + continue + if _Work.upstream_out == w: + # We want a threaded solution instead? + for n in self.__blocking_devices: + u = self.__upstream_devices.get(n) + u.target_out() + self.__control_lock = True continue raise AssertionError(f"unknown work={w}") except Exception as e: @@ -133,12 +183,64 @@ def __handle_status(self, work): return self.__work_q.put_nowait((_Work.status, v)) + def _handle_upstream_status(self, upstream, value): + with self.__lock: + if self.__destroyed: + return + if value is _IN: + self.__blocking_devices.add(upstream) + if value is _OUT: + if upstream in self.__blocking_devices: + self.__blocking_devices.remove(upstream) + self.__work_q.put_nowait((_Work.upstream, None)) + + def _upstream_names(self): + return slicops.device_db.upstream_devices( + "PROF", + "target_control", + self.beam_path, + self.device_name + ) + + def _get_upstream_devices(self, upstream_devices): + return PKDict({u: _UpstreamScreen(self, u) for u in upstream_devices}) + + def _upstream_monitor(self): + for n, s in self.__upstream_devices.items(): + s.start_monitor() + + class _Work(enum.IntEnum): # sort in priority value order, lowest number is highest priority + # This is getting unwieldy. How to make functions w/ priority? destroy = 0 status = 1 - get = 2 - control = 3 + upstream = 2 + get = 3 + control = 4 + upstream_out = 5 + +class _UpstreamScreen: + def __init__(self, parent, device_name): + self.device = slicops.device.Device(device_name) + self.parent = parent + self.status = self.device.accessor("target_status") + self.__lock = threading.Lock() -# = slicops.device_db.upstream_devices(device_name) + def start_monitor(self): + # _UpstreamScreen must exist before monitor so it can be destroyed. + self.status.monitor(self.__handle_status) + + def target_out(self): + with self.__lock: + a = self.device.accessor("target_control") + a.put(_REMOVE) + + def __handle_status(self, value, **kwargs): + v = value.get('value') + self.parent._handle_upstream_status(self.device.device_name, v) + + def destroy(self): + with self.__lock: + self.device.destroy() diff --git a/slicops/mock_epics.py b/slicops/mock_epics.py index defd271..d6081c3 100644 --- a/slicops/mock_epics.py +++ b/slicops/mock_epics.py @@ -125,7 +125,9 @@ def reset_state(): "13SIM1:cam1:N_OF_BITS": 8, "YAGS:IN20:211:N_OF_COL": 100, "YAGS:IN20:211:N_OF_ROW": 100, - "OTRS:DIAG0:525:TGT_STS": 1, + "YAGS:IN20:351:TGT_STS": 1, + "YAGS:IN20:241:TGT_STS": 1, + "YAGS:IN20:211:TGT_STS": 2, "OTRS:DIAG0:525:Acquire": 0, } ).pkupdate(_pv_image(_X_SIZE)) diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index bc48ff6..91c6fd1 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -24,12 +24,18 @@ def _status(update): mock_epics.reset_state() d = None try: - d = device_screen.Screen("OTRDG04") + d = device_screen.Screen("CU_HXR", "YAG03") pkunit.pkeq(1, d.accessor("target_status").get()) d.insert_target() pkunit.pkeq(2, d.accessor("target_status").get()) d.remove_target() pkunit.pkeq(1, d.accessor("target_status").get()) + u = d.upstream_devices() + pkunit.pkeq(list(u.keys()), ["YAG01", "YAG02"]) + pkunit.pkeq(d.blocking_devices(), {"YAG01"}) + d.unblock_upstream() + a = u.get("YAG01").device.accessor("target_status") + pkunit.pkeq(1, a.get()) finally: if d: - d.destroy() + d.destroy() From cef21173b070ff5d5d2562c904cd36f69b2201cb Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 25 Jul 2025 23:26:57 +0000 Subject: [PATCH 16/51] ckp --- slicops/device_screen.py | 291 ++++++++++++++++++++++++++------------ slicops/sliclet/screen.py | 11 ++ 2 files changed, 208 insertions(+), 94 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 2534f5a..e0b33b8 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -1,4 +1,4 @@ -"""Accessing meta data about devices +"""Control a Screen :copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. :license: http://github.com/slaclab/slicops/LICENSE @@ -14,10 +14,11 @@ import queue import threading -_REMOVE = 0 -_INSERT = 1 -_IN = 2 -_OUT = 1 +# rjn these should be reused for both cases +_CONTROL_REMOVE = 0 +_CONTROL_INSERT = 1 +_STATUS_IN = 2 +_STATUS_OUT = 1 class Screen(slicops.device.Device): @@ -25,29 +26,25 @@ class Screen(slicops.device.Device): def __init__(self, beam_path, *args, **kwargs): super().__init__(*args, **kwargs) self.beam_path = beam_path + # rjn there are a lot of values here, which indicates a problem: too much scope for one object? self.__destroyed = False self.__value = None - self.__work_q = queue.PriorityQueue() + self.__work_q = queue.Queue() self.__lock = threading.Lock() - self.__upstream_devices = {} - self.__status = self.accessor("target_status") - self.__control = self.accessor("target_control") - self.__blocking_devices = set() - self.__get_complete = threading.Event() self.__control_lock = False - self.__control_done = threading.Event() - self.__last_status = None + self.__status_accessor = None self.__worker = threading.Thread( target=self.__work, args=(self.device_name, self.__work_q, self.__lock), ) n = self._upstream_names() # The following line has to come before __status.monitor. Why? - self.__upstream_devices = self._get_upstream_devices(n) + # rjn you always need to initialize an object before starting threads self.__worker.start() - self.__status.monitor(self.__handle_status) - self._upstream_monitor() + # rjn if the target is already in, then we don't need to check monitors + # rjn so let's defer this operation until we need it. + # rjn refrain from getters. unit tests are not blackbox so they can reach inside def blocking_devices(self): return self.__blocking_devices @@ -71,14 +68,20 @@ def destroy(self): except Exception: pass except Exception as e: - pkdlog("error={} accessor={} stack={}", e, name, pkdexc()) + pkdlog("error={} accessor={} stack={}", e, name, pkdexc(simplify=True)) finally: super().destroy() + # rjn i think this would be embedded in a single function since get_complete blocks anyway + # rjn however, at this point, i think we want to integrate in sliclet/screen so we can + # rjn have a driver for the api we are creating. i suspect we'll want it to work a lot + # rjn like image and acquire +#rjn don't need def get_status_async(self): with self.__lock: self.__work_q.put_nowait((_Work.get, None)) +#rjn don't need def get_status_complete(self): with self.__lock: if self.__destroyed: @@ -91,125 +94,224 @@ def get_status_complete(self): self.__get_complete.clear() return self.__last_status - def insert_target(self): - self._move_target(_INSERT) - - def remove_target(self): - self._move_target(_REMOVE) - - def unblock_upstream(self): + def move_target(self, want_in, callback): + """Check beam, unblock upstream, move target + """ with self.__lock: self._assert_control_unlock() - self.__work_q.put_nowait((_Work.upstream_out, None)) - t = self.__control_done - t.wait() - with self.__lock: - if self.__destroyed: - raise ValueError(f"destroyed device={self.device_name}") - self.__control_lock = False - self.__control_done.clear() + # rjn this is when we lock so we make sure the caller doesn't call this twice + self.__control_lock = True + self.__work_q.put_nowait( + PKDict(op=self.__work_control, want_in=want_in, callback=callback), + ) - def _move_target(self, position): + def unblock_upstream(self): + # rjn i think this is where we want to do work in the thread + # rjn there's a user interface question here: + # rjn do we want to just have the user try to move the target + # rjn and present a popup when there are blocking upstream devicesb + # rjn then the user would get to respond abort/retry/ignore and + # rjn sliclet/screen would handle appropriately. there are times + # rjn when it's ok for the target to get moved (beam off) without checking targets + # rjn in fact we may want that in here too, that is we check beam on/off + # rjn first, because that's the most critical operation. if the beam is on + # rjn i don't think we allow them to move the target without an are you sure at least + # rjn popups are a thing we have to add to vue, but that should be easy with self.__lock: self._assert_control_unlock() - self.__work_q.put_nowait((_Work.control, position)) - t = self.__control_done - t.wait() + # rjn there's a race condition here. we need to consider the + # rjn owner of the lock. i think what should be done is this +# self.__work_q.put_nowait((_Work.upstream_out, q := queue.Queue())) +# who owns the lock here + + # rjn self.__control_lock = False + # rjn what if we could not unblock the upstream. this probably wants a result + # rjn we want a timeout i think + v = q.wait(timeout=N) with self.__lock: if self.__destroyed: raise ValueError(f"destroyed device={self.device_name}") - self.__control_lock = False - self.__control_done.clear() + + # rjn this should be done as soon as control_done is set + # self.__control_lock = False + # self.__control_done.clear() + def _assert_control_unlock(self): if self.__control_lock: - raise DeviceError( - f"command already issued with device={self.device_name}" - ) + raise DeviceError(f"command already issued with device={self.device_name}") + # rjn not sure this is right here. if self.__control_done.is_set(): - raise DeviceError( - f"control did not complete on device={self.device_name}" - ) + raise DeviceError(f"control did not complete on device={self.device_name}") def __work(self, name, work_q, lock): try: while True: - w, v = work_q.get() + w = work_q.get() with lock: + # rjn when there are this many if statements, move to dispatch if self.__destroyed: return - if _Work.control == w: - self.__control.put(v) - self.__control_lock = True - continue - if _Work.get == w: - self.__last_status = self.__control.get(v) - self.__get_complete.set() - continue - if _Work.status == w: - if v == _IN: - if self.__control_lock: - self.__control_done.set() - elif v == _OUT: - if self.__control_lock: - self.__control_done.set() - continue - if _Work.upstream == w: - if len(self.__blocking_devices) == 0: - if self.__control_lock: - self.__control_done.set() - continue - if _Work.upstream_out == w: - # We want a threaded solution instead? - for n in self.__blocking_devices: - u = self.__upstream_devices.get(n) - u.target_out() - self.__control_lock = True - continue - raise AssertionError(f"unknown work={w}") + w.op(w) except Exception as e: pkdlog("error={} accessor={} stack={}", e, name, pkdexc()) finally: self.destroy() - def __handle_status(self, work): + def _state_target_out(self, event): + event.arg.callback(TARGET_OUT) + + def _state_target_status_unknown(self, event): + self.__status_accessor = self.accessor("target_status") + self.__control_accessor = self.accessor("target_control") + self.__last_status = None + self.__status_accessor.monitor(self.__handle_status) + self.__state.event("monitoring_status", event.arg) + + def _state_target(): + # check status + if self.__status_accessor is None: + self.__init_status() +# self.__work_q.put_nowait(PKDict(op=self.__ + # check beam + if work.want_in: + pass # check upstream + self.__control.put(_IN if work.want_in else _OUT) + + + def __work_move_target(self, work): + if target status unknown: + wait status was known + + + self.__state.event("move_target_in" if work.want_in "move_target_out", work) + + + def __work_control(self, work): + # Do epics + self.__control.put(v) + self.__control_lock = True + + def __work_get(self): + self.__last_status = self.__control.get(v) + self.__get_complete.set() + + def __work_status(self, value): + if value == _IN: + if self.__control_lock: + self.__control_done.set() + elif value == _OUT: + if self.__control_lock: + self.__control_done.set() + else: + pkdlog("WARNING: unexpected value={}", value) + def __work_handle_status(self, value): with self.__lock: if self.__destroyed: return - if e := work.get("error"): - pkdlog("error={} on {}", e, work.get("accessor")) - return - if (v := work.get("value")) is None: + c = self.__client.handle_screen_status + c(value) + + def __work_upstream(self): + if len(self.__blocking_devices) == 0: + if self.__control_lock: + self.__control_done.set() + + def __work_upstream(self): + # rjn since you are pulling out the screen here, it seems + # rjn that this logic could be in _Upstream.handle_status + # We want a threaded solution instead? + for n in self.__blocking_devices: + # rjn definitely needs to be async + u = self.__upstream_devices.get(n) + u.target_out() + self.__control_lock = True + + def __handle_status(self, value): + with self.__lock: + if self.__destroyed: return - self.__work_q.put_nowait((_Work.status, v)) + self.__work_q.put_nowait(PKDict(op=self.__work_handle_status, value=value)) def _handle_upstream_status(self, upstream, value): with self.__lock: if self.__destroyed: return - if value is _IN: + # rjn i think "is" incorrect. "value" is coming from epics + # rjn and _IN is defined internally so _IN only works here + # rjn if _IN is an int or bool. If it were an enum, i don't think it would work. + if value == _IN: self.__blocking_devices.add(upstream) if value is _OUT: - if upstream in self.__blocking_devices: - self.__blocking_devices.remove(upstream) + # rjn self.__blocking_devices.discard(upstream) + self.__blocking_devices.discard(upstream) self.__work_q.put_nowait((_Work.upstream, None)) - def _upstream_names(self): - return slicops.device_db.upstream_devices( - "PROF", - "target_control", - self.beam_path, - self.device_name - ) + def __init_upstream(self): + def _upstream_names(): + return slicops.device_db.upstream_devices( + "PROF", "target_control", self.beam_path, self.device_name + ) - def _get_upstream_devices(self, upstream_devices): - return PKDict({u: _UpstreamScreen(self, u) for u in upstream_devices}) + self.__blocking_devices = set() + self.__upstream_devices = PKDict({u: _UpstreamScreen(self, u) for u in _upstream_names()}) def _upstream_monitor(self): + for n, s in self.__upstream_devices.items(): s.start_monitor() - + +class _Event: + def __init__(self, event, arg): + self.event = self.__assert_event(event) + self.arg = arg + self.old_state = _state + self.new_state = self._next_state() + + def __assert_event(self, value): + if value in self._EVENTS: + return value; + raise AssertionError(f"invalid event={value}") + + def __assert_state(self, value): + if value in self._STATES: + return value; + raise AssertionError(f"invalid state={value}") + + def _next_state(self): + if rv := self._TRANSITIONS[self._oldState][self._event]: + return rv; + raise AssertionError(f"invalid transition oldState={self._old_state} event={self._event}") + +class _State: + def __init__(self): + self.beam = None + self.target = None + self.upstream = None + self.acquire = None + self.event = None + + def on_change_target(self, value): + if value == _IN: + self.target = True + how does callback work + elif value == _OUT: + self.target = False + def _event(self, name): + if name == "target_status": + if self.target is None: + self.event_target_status() + + + def event(self, event_name, work): + e = _Event(self._state, event_name, work) + self._state = e.new_state + if h := getattr(self._device, f"_state_{self._new_state}", None): + h(e) + + + class _Work(enum.IntEnum): # sort in priority value order, lowest number is highest priority @@ -221,6 +323,7 @@ class _Work(enum.IntEnum): control = 4 upstream_out = 5 + class _UpstreamScreen: def __init__(self, parent, device_name): self.device = slicops.device.Device(device_name) @@ -238,7 +341,7 @@ def target_out(self): a.put(_REMOVE) def __handle_status(self, value, **kwargs): - v = value.get('value') + v = value.get("value") self.parent._handle_upstream_status(self.device.device_name, v) def destroy(self): diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index 5f464cf..d6fd3e5 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -86,6 +86,9 @@ def on_click_single_button(self, txn, **kwargs): def on_click_start_button(self, txn, **kwargs): self.__set_acquire(txn, True) + def on_change_target(self, txn, value, **kwargs): + self.__device.target_move(want_in=value, self.__target_moved) + def on_click_filter_in(self, txn, **kwargs): pass @@ -230,6 +233,14 @@ def __set_acquire(self, txn, acquire): ) raise pykern.util.APIError(e) + def __target_moved(self, status): + if status is failed: + display error + if status is out: + disable buttons + if status is in: + enable buttons + def __update_plot(self, txn): if not self.__device: return False From dd7d3052886acb719041f0b7dfbf062dd7ed3ddf Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sat, 26 Jul 2025 00:39:50 +0000 Subject: [PATCH 17/51] ckp starting multivariate FSM --- slicops/device_screen.py | 356 +++++++++++---------------------------- 1 file changed, 94 insertions(+), 262 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index e0b33b8..77725a3 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -20,36 +20,17 @@ _STATUS_IN = 2 _STATUS_OUT = 1 +_BLOCKING = "blocking" + class Screen(slicops.device.Device): def __init__(self, beam_path, *args, **kwargs): super().__init__(*args, **kwargs) self.beam_path = beam_path - # rjn there are a lot of values here, which indicates a problem: too much scope for one object? self.__destroyed = False - self.__value = None - self.__work_q = queue.Queue() - self.__lock = threading.Lock() - self.__control_lock = False + self.__control_in_work = False self.__status_accessor = None - self.__worker = threading.Thread( - target=self.__work, - args=(self.device_name, self.__work_q, self.__lock), - ) - n = self._upstream_names() - # The following line has to come before __status.monitor. Why? - # rjn you always need to initialize an object before starting threads - self.__worker.start() - # rjn if the target is already in, then we don't need to check monitors - # rjn so let's defer this operation until we need it. - - # rjn refrain from getters. unit tests are not blackbox so they can reach inside - def blocking_devices(self): - return self.__blocking_devices - - def upstream_devices(self): - return self.__upstream_devices def destroy(self): try: @@ -72,77 +53,31 @@ def destroy(self): finally: super().destroy() - # rjn i think this would be embedded in a single function since get_complete blocks anyway - # rjn however, at this point, i think we want to integrate in sliclet/screen so we can - # rjn have a driver for the api we are creating. i suspect we'll want it to work a lot - # rjn like image and acquire -#rjn don't need - def get_status_async(self): - with self.__lock: - self.__work_q.put_nowait((_Work.get, None)) - -#rjn don't need - def get_status_complete(self): - with self.__lock: - if self.__destroyed: - raise ValueError(f"destroyed device={self.device_name}") - c = self.__get_complete - c.wait() - with self.__lock: - if self.__last_status is None: - raise ValueError(f"device={self.device_name} got no status.") - self.__get_complete.clear() - return self.__last_status - def move_target(self, want_in, callback): - """Check beam, unblock upstream, move target - """ + """Check beam, unblock upstream, move target""" with self.__lock: - self._assert_control_unlock() - # rjn this is when we lock so we make sure the caller doesn't call this twice - self.__control_lock = True - self.__work_q.put_nowait( - PKDict(op=self.__work_control, want_in=want_in, callback=callback), - ) + self.__fsm.event("move_target", PKDict(want_in=want_in, callback=callback)) - def unblock_upstream(self): - # rjn i think this is where we want to do work in the thread - # rjn there's a user interface question here: - # rjn do we want to just have the user try to move the target - # rjn and present a popup when there are blocking upstream devicesb - # rjn then the user would get to respond abort/retry/ignore and - # rjn sliclet/screen would handle appropriately. there are times - # rjn when it's ok for the target to get moved (beam off) without checking targets - # rjn in fact we may want that in here too, that is we check beam on/off - # rjn first, because that's the most critical operation. if the beam is on - # rjn i don't think we allow them to move the target without an are you sure at least - # rjn popups are a thing we have to add to vue, but that should be easy - with self.__lock: - self._assert_control_unlock() - # rjn there's a race condition here. we need to consider the - # rjn owner of the lock. i think what should be done is this -# self.__work_q.put_nowait((_Work.upstream_out, q := queue.Queue())) -# who owns the lock here - # rjn self.__control_lock = False - # rjn what if we could not unblock the upstream. this probably wants a result - # rjn we want a timeout i think - v = q.wait(timeout=N) +class _Worker: + def __init__(self, device): + self.device = device + self.__queue = queue.Queue() + self.__lock = threading.Lock() + self.__thread = threading.Thread( + target=self.__do, + args=(self.device.device_name, self.__work_q, self.__lock), + ) + self.__thread.start() + + def __handle_upstream_status(self, problems): with self.__lock: if self.__destroyed: - raise ValueError(f"destroyed device={self.device_name}") - - # rjn this should be done as soon as control_done is set - # self.__control_lock = False - # self.__control_done.clear() - - - def _assert_control_unlock(self): - if self.__control_lock: - raise DeviceError(f"command already issued with device={self.device_name}") - # rjn not sure this is right here. - if self.__control_done.is_set(): - raise DeviceError(f"control did not complete on device={self.device_name}") + return + if not problems: + self.__state.event("upstream_clear", None) + else: + self.__state.event("upstream_problems", problems) def __work(self, name, work_q, lock): try: @@ -158,192 +93,89 @@ def __work(self, name, work_q, lock): finally: self.destroy() - def _state_target_out(self, event): - event.arg.callback(TARGET_OUT) - - def _state_target_status_unknown(self, event): - self.__status_accessor = self.accessor("target_status") - self.__control_accessor = self.accessor("target_control") - self.__last_status = None - self.__status_accessor.monitor(self.__handle_status) - self.__state.event("monitoring_status", event.arg) - - def _state_target(): - # check status - if self.__status_accessor is None: - self.__init_status() -# self.__work_q.put_nowait(PKDict(op=self.__ - # check beam - if work.want_in: - pass # check upstream - self.__control.put(_IN if work.want_in else _OUT) - - - def __work_move_target(self, work): - if target status unknown: - wait status was known - - - self.__state.event("move_target_in" if work.want_in "move_target_out", work) - - def __work_control(self, work): - # Do epics - self.__control.put(v) - self.__control_lock = True +class _FSM: + __SIMPLE = PKDict( + target_in=PKDict(target=True), + target_out=PKDict(target=False), + upstream_clear=PKDict(upstream=True), + upstream_problems=PKDict(upstream=False), + ) - def __work_get(self): - self.__last_status = self.__control.get(v) - self.__get_complete.set() - - def __work_status(self, value): - if value == _IN: - if self.__control_lock: - self.__control_done.set() - elif value == _OUT: - if self.__control_lock: - self.__control_done.set() + def __init__(self): + self.curr = PKDict( + beam=None, target=None, upstream=None, acquire=None, want_in=False + ) + self.prev = self.curr.copy() + + def event(self, name, arg): + self.prev = self.curr.copy() + if t := self.___SIMPLE.get(name): + self.curr.update(t) + if t := getattr(self, f"_event_{name}"): + t(arg) + + def _event_move_target(self, arg): + if self.curr.move_target is not None: + raise AssertionError("already moving target") + if self.curr.target_in == arg.want_in: + return + self.curr.move_target = arg + if self.curr.target_in is None: + self.event("check_target", None) + elif arg.want_in: + self.event("check_upstream", None) else: - pkdlog("WARNING: unexpected value={}", value) - def __work_handle_status(self, value): - with self.__lock: - if self.__destroyed: - return - c = self.__client.handle_screen_status - c(value) - - def __work_upstream(self): - if len(self.__blocking_devices) == 0: - if self.__control_lock: - self.__control_done.set() - - def __work_upstream(self): - # rjn since you are pulling out the screen here, it seems - # rjn that this logic could be in _Upstream.handle_status - # We want a threaded solution instead? - for n in self.__blocking_devices: - # rjn definitely needs to be async - u = self.__upstream_devices.get(n) - u.target_out() - self.__control_lock = True - - def __handle_status(self, value): - with self.__lock: - if self.__destroyed: - return - self.__work_q.put_nowait(PKDict(op=self.__work_handle_status, value=value)) + self.event("move_target_out", None) + + def _event_target_in(self, arg): + self.curr.target = True + if not (m := self.curr.move_target): + return + self.curr.move_target = None + if m.want_in: + self.curr.move_target = None + m.callback(True) + else: + self.event("move_target", m) - def _handle_upstream_status(self, upstream, value): - with self.__lock: - if self.__destroyed: - return - # rjn i think "is" incorrect. "value" is coming from epics - # rjn and _IN is defined internally so _IN only works here - # rjn if _IN is an int or bool. If it were an enum, i don't think it would work. - if value == _IN: - self.__blocking_devices.add(upstream) - if value is _OUT: - # rjn self.__blocking_devices.discard(upstream) - self.__blocking_devices.discard(upstream) - self.__work_q.put_nowait((_Work.upstream, None)) - def __init_upstream(self): - def _upstream_names(): +class _Upstream: + def __init__(self, parent): + def _names(): return slicops.device_db.upstream_devices( - "PROF", "target_control", self.beam_path, self.device_name + "PROF", "target_control", parent.beam_path, parent.device_name ) - self.__blocking_devices = set() - self.__upstream_devices = PKDict({u: _UpstreamScreen(self, u) for u in _upstream_names()}) - - def _upstream_monitor(self): - - for n, s in self.__upstream_devices.items(): - s.start_monitor() - - -class _Event: - def __init__(self, event, arg): - self.event = self.__assert_event(event) - self.arg = arg - self.old_state = _state - self.new_state = self._next_state() - - def __assert_event(self, value): - if value in self._EVENTS: - return value; - raise AssertionError(f"invalid event={value}") - - def __assert_state(self, value): - if value in self._STATES: - return value; - raise AssertionError(f"invalid state={value}") - - def _next_state(self): - if rv := self._TRANSITIONS[self._oldState][self._event]: - return rv; - raise AssertionError(f"invalid transition oldState={self._old_state} event={self._event}") - -class _State: - def __init__(self): - self.beam = None - self.target = None - self.upstream = None - self.acquire = None - self.event = None - - def on_change_target(self, value): - if value == _IN: - self.target = True - how does callback work - elif value == _OUT: - self.target = False - def _event(self, name): - if name == "target_status": - if self.target is None: - self.event_target_status() - - - def event(self, event_name, work): - e = _Event(self._state, event_name, work) - self._state = e.new_state - if h := getattr(self._device, f"_state_{self._new_state}", None): - h(e) - - - - -class _Work(enum.IntEnum): - # sort in priority value order, lowest number is highest priority - # This is getting unwieldy. How to make functions w/ priority? - destroy = 0 - status = 1 - upstream = 2 - get = 3 - control = 4 - upstream_out = 5 - - -class _UpstreamScreen: - def __init__(self, parent, device_name): - self.device = slicops.device.Device(device_name) - self.parent = parent - self.status = self.device.accessor("target_status") + self.__parent = parent + self.__destroyed = False + # Allows calling destroy in __handle_status self.__lock = threading.Lock() + self.__problems = PKDict() + self.__devices = PKDict({u: slicops.device.Device(u) for u in _names()}) - def start_monitor(self): - # _UpstreamScreen must exist before monitor so it can be destroyed. - self.status.monitor(self.__handle_status) + def check(self): + for n, d in self.__devices.items(): + d.accessor("target_status").monitor(self.__handle_status) - def target_out(self): + def destroy(self): with self.__lock: - a = self.device.accessor("target_control") - a.put(_REMOVE) - - def __handle_status(self, value, **kwargs): - v = value.get("value") - self.parent._handle_upstream_status(self.device.device_name, v) + if self.__destroyed: + return + self.__destroyed = True + for d in self.__devices.values(): + d.destroy() - def destroy(self): + def __handle_status(self, **kwargs): with self.__lock: - self.device.destroy() + n = kwargs["accessor"].device.device_name + self.__devices.pkdel(n).destroy() + if e := kwargs.get("error"): + pkdlog("device={} error={}", n, e) + self.__problems[n] = e + elif kwargs["value"] == "_IN": + self.__problems[n] = _BLOCKING + if not self.__devices: + self.__parent._handle_upstream_status(self.__problems) + # no devices so destroyed + self.__destroyed = True From a0f79b59f879b7f6f792cbf6da9308e19d691aa8 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 27 Jul 2025 15:58:31 +0000 Subject: [PATCH 18/51] ckp --- slicops/device.py | 3 + slicops/device_screen.py | 278 ++++++++++++++++++++++++--------------- 2 files changed, 176 insertions(+), 105 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index defafe5..662cba5 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -85,6 +85,9 @@ def put(self, accessor_name, value): """ return self.accessor(accessor_name).put(value) + def __repr__(self): + return f"" + class _Accessor: """Container for a PV, metadata, and dynamic state diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 77725a3..f3156ae 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -20,100 +20,49 @@ _STATUS_IN = 2 _STATUS_OUT = 1 -_BLOCKING = "blocking" +_BLOCKING_MSG = "upstream target is in" +_TIMEOUT_MSG = "upstream target status accessor timed out" -class Screen(slicops.device.Device): +class DeviceScreen(slicops.device.Device): + """Augment Device with screen specific operations""" def __init__(self, beam_path, *args, **kwargs): super().__init__(*args, **kwargs) - self.beam_path = beam_path - self.__destroyed = False - self.__control_in_work = False - self.__status_accessor = None + self.__worker = _Worker(self, beam_path) def destroy(self): - try: - with self.__lock: - if self.__destroyed: - return - self.__destroyed = True - self.__work_q.put_nowait((_Work.destroy, None)) - self.__work_q = None - self.__control_done.set() - for _, u in self.__upstream_devices.items(): - u.destroy() - # cause callers to crash - try: - delattr(self, "value") - except Exception: - pass - except Exception as e: - pkdlog("error={} accessor={} stack={}", e, name, pkdexc(simplify=True)) - finally: - super().destroy() + self.__worker.destroy() + super().destroy() def move_target(self, want_in, callback): - """Check beam, unblock upstream, move target""" - with self.__lock: - self.__fsm.event("move_target", PKDict(want_in=want_in, callback=callback)) - - -class _Worker: - def __init__(self, device): - self.device = device - self.__queue = queue.Queue() - self.__lock = threading.Lock() - self.__thread = threading.Thread( - target=self.__do, - args=(self.device.device_name, self.__work_q, self.__lock), + self.__worker.req_action( + self.action_req_move_target, PKDict(want_in=want_in, callback=callback) ) - self.__thread.start() - - def __handle_upstream_status(self, problems): - with self.__lock: - if self.__destroyed: - return - if not problems: - self.__state.event("upstream_clear", None) - else: - self.__state.event("upstream_problems", problems) - def __work(self, name, work_q, lock): - try: - while True: - w = work_q.get() - with lock: - # rjn when there are this many if statements, move to dispatch - if self.__destroyed: - return - w.op(w) - except Exception as e: - pkdlog("error={} accessor={} stack={}", e, name, pkdexc()) - finally: - self.destroy() + def target_status(self, callback): + self.__worker.req_action(self.work_req_target_status, PKDict(callback=callback)) class _FSM: - __SIMPLE = PKDict( - target_in=PKDict(target=True), - target_out=PKDict(target=False), - upstream_clear=PKDict(upstream=True), - upstream_problems=PKDict(upstream=False), - ) - - def __init__(self): + def __init__(self, worker): + self.worker = worker self.curr = PKDict( - beam=None, target=None, upstream=None, acquire=None, want_in=False + checking_target=False, + target_is_in=None, ) self.prev = self.curr.copy() def event(self, name, arg): self.prev = self.curr.copy() - if t := self.___SIMPLE.get(name): - self.curr.update(t) - if t := getattr(self, f"_event_{name}"): - t(arg) + if u := getattr(self, f"_event_{name}")(arg, **self.curr): + self.curr.update(u) + + def __repr__(self): + def _states(curr): + return " ".join(f"{k}={curr[k]}" for k in sorted(curr.keys())) + + return f"<_FSM {_states(self.curr)}>" def _event_move_target(self, arg): if self.curr.move_target is not None: @@ -129,53 +78,172 @@ def _event_move_target(self, arg): self.event("move_target_out", None) def _event_target_in(self, arg): - self.curr.target = True - if not (m := self.curr.move_target): + curr.target = True + if not (m := curr.move_target): return - self.curr.move_target = None + curr.move_target = None if m.want_in: self.curr.move_target = None m.callback(True) else: self.event("move_target", m) + def _event_req_target_status(self, arg, checking_target, target_is_in, **kwargs): + if target_is_in is not None: + arg.callback(PKDict(target_is_in=self.curr.target)) + return + if checking_target: + # TODO(robnagler) don't crash here, but how to force callback to crash? + arg.callback(PKDict(error="Already checking target")) + return + self.worker.action("check_target", arg) + return PKDict(checking_target=True) -class _Upstream: - def __init__(self, parent): + +class _Thread: + def __init__(self): + self.destroyed = False + self.__lock = threading.Lock() + self.__actions = queue.Queue() + self.__thread = threading.Thread(target=self._loop) + if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): + raise AssertionError(f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout") + self.__thread.start() + + def action(self, method, arg): + self.__actions.put_nowait((method, arg)) + + def destroy(self): + try: + with self.__lock: + if self.destroyed: + return + self.destroyed = True + self.__actions.put_nowait(None, None) + self._destroy() + except Exception as e: + pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) + + def _destroy(self): + pass + + def _loop(self): + try: + while True: + m, a = self.__actions.get(timeout=self._loop_timeout_secs) + with self.__lock: + if self.destroyed: + return + m(a) + except queue.Empty: + self.action_loop_timeout() + except Exception as e: + pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) + finally: + self.destroy() + + def __repr__(self): + def _destroyed(): + return " DESTROYED" if self.destroyed else "" + + return f"<{self.__class__.__name}{_destroyed()} self._repr()>" + + +class _Upstream(_Thread): + def __init__(self, worker, req_arg): def _names(): return slicops.device_db.upstream_devices( "PROF", "target_control", parent.beam_path, parent.device_name ) - self.__parent = parent - self.__destroyed = False - # Allows calling destroy in __handle_status - self.__lock = threading.Lock() + self.__worker = worker + self.__callback_arg = req_arg self.__problems = PKDict() self.__devices = PKDict({u: slicops.device.Device(u) for u in _names()}) + self._loop_timeout_secs = _cfg.upstream_tim + super().__init__() + + def action_handle_status(self, arg): + n = arg.accessor.device.device_name + self.__devices.pkdel(n).destroy() + if e := arg.get("error"): + pkdlog("device={} error={}", n, e) + # TODO(robnagler) prefix with something? + self.__problems[n] = e + elif arg.value == _STATUS_IN: + self.__problems[n] = _BLOCKING_MSG + if not self.__devices: + self.__done() + + def action_loop_timeout(self): + for n in self.__devices: + self.__problems[n] = _TIMEOUT_MSG + # clear all devices but not destroying object itself + self._destroy() + self.__done() + + def _destroy(self): + (d, self.__devices) = (self.__devices, PKDict()) + for x in d.values(): + x.destroy() + + def __done(self): + self.__worker.action( + self.work_upstream_status, + PKDict(req_arg=self.__req_arg, problems=self.__problems) + ) + # no devices so destroyed implicitly + self.__destroyed = True + + def __handle_status(self, **kwargs): + self.action(self.action_handle_status, PKDict(kwargs)) - def check(self): - for n, d in self.__devices.items(): + def _loop(self, *args, **kwargs): + for d in self.__devices.values(): d.accessor("target_status").monitor(self.__handle_status) + super()._loop(*args, **kwargs) - def destroy(self): - with self.__lock: - if self.__destroyed: - return - self.__destroyed = True - for d in self.__devices.values(): - d.destroy() + def _repr(self): + return f"pending={sorted(self.__devices)} problems={sorted(self.__problems)}" - def __handle_status(self, **kwargs): - with self.__lock: - n = kwargs["accessor"].device.device_name - self.__devices.pkdel(n).destroy() - if e := kwargs.get("error"): - pkdlog("device={} error={}", n, e) - self.__problems[n] = e - elif kwargs["value"] == "_IN": - self.__problems[n] = _BLOCKING - if not self.__devices: - self.__parent._handle_upstream_status(self.__problems) - # no devices so destroyed - self.__destroyed = True + +class _Worker(_Thread): + """Implements actions of DeviceScreen""" + + def __init__(self, device, beam_path): + self.__device = device + self.__beam_path = beam_path + self.__upstream = None + self.__fsm = __FSM(self) + self._loop_timeout_secs = 0 + super().__init__() + + def action_check_target(self, arg): + if self.__upstream: + raise AssertionError("already have upstream {} {}", self.__fsm, self.device) + self.__upstream = _Upstream(self, arg) + + def action_req_move_target(self, arg): + pass + + def action_req_target_status(self, arg): + self.__fsm.event("req_target_status", arg) + + def req_action(self, method, arg): + """Called by DeviceScreen which has separate life cycle""" + if self.destroyed: + raise AssertionError("already destroyed") + self.action(method, arg) + + def _destroy(self): + if self.__upstream: + (u, self.__upstream) = (self.__upstream, None) + u.destroy() + + def _repr(self): + return f"device={self.__device.device_name}" + + +_cfg = pykern.pkconfig.init( + upstream_timeout_secs=(15, pykern.pkconfig.parse_seconds, "how long to wait for devices to return"), +) From b9c42de9543f4c0f77b4a08e2d9f383d34970939 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 27 Jul 2025 18:07:20 +0000 Subject: [PATCH 19/51] ckp --- slicops/device.py | 1 + slicops/device_screen.py | 142 +++++++++++++++++++++++---------------- 2 files changed, 84 insertions(+), 59 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index 662cba5..c4add72 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -99,6 +99,7 @@ class _Accessor: def __init__(self, device, accessor_name): self.device = device + self.accessor_name = accessor_name self.meta = device.meta.accessor[accessor_name] self._callback = None self._lock = threading.Lock() diff --git a/slicops/device_screen.py b/slicops/device_screen.py index f3156ae..bff8b6c 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -22,14 +22,15 @@ _BLOCKING_MSG = "upstream target is in" _TIMEOUT_MSG = "upstream target status accessor timed out" +_ERROR_PREFIX_MSG = "upstream target error: " class DeviceScreen(slicops.device.Device): """Augment Device with screen specific operations""" - def __init__(self, beam_path, *args, **kwargs): + def __init__(self, beam_path, handler, *args, **kwargs): super().__init__(*args, **kwargs) - self.__worker = _Worker(self, beam_path) + self.__worker = _Worker(beam_path, handler, self) def destroy(self): self.__worker.destroy() @@ -40,16 +41,15 @@ def move_target(self, want_in, callback): self.action_req_move_target, PKDict(want_in=want_in, callback=callback) ) - def target_status(self, callback): - self.__worker.req_action(self.work_req_target_status, PKDict(callback=callback)) - class _FSM: def __init__(self, worker): self.worker = worker self.curr = PKDict( - checking_target=False, + check_target=False, + check_upstream=False, target_is_in=None, + upstream_problems=None, ) self.prev = self.curr.copy() @@ -64,43 +64,27 @@ def _states(curr): return f"<_FSM {_states(self.curr)}>" - def _event_move_target(self, arg): - if self.curr.move_target is not None: - raise AssertionError("already moving target") - if self.curr.target_in == arg.want_in: - return - self.curr.move_target = arg - if self.curr.target_in is None: - self.event("check_target", None) - elif arg.want_in: - self.event("check_upstream", None) - else: - self.event("move_target_out", None) - - def _event_target_in(self, arg): - curr.target = True - if not (m := curr.move_target): - return - curr.move_target = None - if m.want_in: - self.curr.move_target = None - m.callback(True) - else: - self.event("move_target", m) - - def _event_req_target_status(self, arg, checking_target, target_is_in, **kwargs): - if target_is_in is not None: - arg.callback(PKDict(target_is_in=self.curr.target)) + def _event_req_upstream_status(self, arg, check_upstream, upstream_problems, **kwargs): + if upstream_problems is not None: + arg.callback(PKDict(upstream_problems=upstream_problems)) return - if checking_target: + if check_upstream: # TODO(robnagler) don't crash here, but how to force callback to crash? - arg.callback(PKDict(error="Already checking target")) + arg.callback(PKDict(error="Already in check_upstream")) return - self.worker.action("check_target", arg) - return PKDict(checking_target=True) + self.worker.action(self.worker.action_check_upstream, arg) + return PKDict(check_upstream=True) + + def _event_upstream_status_done(self, arg, check_upstream, **kwargs): + if not check_upstream: + raise AssertionError("not in check_upstream") + self.worker.handler.screen_cb_upstream(problems=arg.problems) + return PKDict(upstream_problems=arg.problems, check_upstream=False) class _Thread: + _LOOP_END = object() + def __init__(self): self.destroyed = False self.__lock = threading.Lock() @@ -130,13 +114,15 @@ def _destroy(self): def _loop(self): try: while True: - m, a = self.__actions.get(timeout=self._loop_timeout_secs) + try: + m, a = self.__actions.get(timeout=self._loop_timeout_secs) + except queue.Empty: + m, a = self.action_loop_timeout(), None with self.__lock: if self.destroyed: return - m(a) - except queue.Empty: - self.action_loop_timeout() + if m(a) is self._LOOP_END: + return except Exception as e: pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) finally: @@ -168,19 +154,17 @@ def action_handle_status(self, arg): self.__devices.pkdel(n).destroy() if e := arg.get("error"): pkdlog("device={} error={}", n, e) - # TODO(robnagler) prefix with something? - self.__problems[n] = e + self.__problems[n] = f"{_ERROR_PREFIX_MSG}{e}" elif arg.value == _STATUS_IN: self.__problems[n] = _BLOCKING_MSG if not self.__devices: - self.__done() + return self.__done() + return None def action_loop_timeout(self): for n in self.__devices: self.__problems[n] = _TIMEOUT_MSG - # clear all devices but not destroying object itself - self._destroy() - self.__done() + return self.__done() def _destroy(self): (d, self.__devices) = (self.__devices, PKDict()) @@ -188,12 +172,9 @@ def _destroy(self): x.destroy() def __done(self): - self.__worker.action( - self.work_upstream_status, - PKDict(req_arg=self.__req_arg, problems=self.__problems) - ) - # no devices so destroyed implicitly - self.__destroyed = True + self.req_arg.problems = self.__problems + self.__worker.action(self.__worker.action_upstream_status, self.__req_arg) + return self._LOOP_END def __handle_status(self, **kwargs): self.action(self.action_handle_status, PKDict(kwargs)) @@ -210,24 +191,36 @@ def _repr(self): class _Worker(_Thread): """Implements actions of DeviceScreen""" - def __init__(self, device, beam_path): - self.__device = device + def __init__(self, beam_path, handler, device): self.__beam_path = beam_path + self.__handler = handler + self.__device = device self.__upstream = None + self.__status = None self.__fsm = __FSM(self) self._loop_timeout_secs = 0 super().__init__() - def action_check_target(self, arg): - if self.__upstream: - raise AssertionError("already have upstream {} {}", self.__fsm, self.device) + def action_check_upstream(self, arg): self.__upstream = _Upstream(self, arg) + return None + + def action_check_target(self, arg): + if not self.__status: + self.__status = self.accessor("target_status") + self.__status_accessor.monitor(self.__handle_status) + return None def action_req_move_target(self, arg): - pass + return None def action_req_target_status(self, arg): self.__fsm.event("req_target_status", arg) + return None + + def action_upstream_status(self, arg): + self.__fsm.event("upstream_status", arg) + return None def req_action(self, method, arg): """Called by DeviceScreen which has separate life cycle""" @@ -240,6 +233,37 @@ def _destroy(self): (u, self.__upstream) = (self.__upstream, None) u.destroy() + def __handle_monitor(self, **kwargs): + a = PKDict(kwargs) + if "error" in arg: + self.action(self.action_monitor_error,, arg) + elif "connected" in arg: + pass + else: + self.action(getattr(self, f"action_monitor_{a.accessor.accessor_name}"), a) + + def action_monitor_acquire(self, arg): + self.__handler.on_screen_acquire(is_acquiring=arg.value) + self.__fsm.event("monitor_acquire", arg.value) + return None + + def action_monitor_image(self, arg): + self.__handler.on_screen_image(image=arg.value) + return None + + def action_monitor_target_status(self, arg): + v = _STATUS_IN == arg.value + self.__handler.on_screen_target_status(target_is_in=v) + self.__fsm.event("monitor_target_status", v) + return None + + def _loop(self, *args, **kwargs): + for a in "acquire", "image", "target_status": + self.accessor(a).monitor(self.__handle_monitor) + self.accessor("image").monitor(self.__handle_image) + self.accessor("target_status").monitor(self.__handle_target_status) + super()._loop(*args, **kwargs) + def _repr(self): return f"device={self.__device.device_name}" From 38d9c7ae0e1556c457eecd6a76895cc3de8aefc3 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 27 Jul 2025 18:34:44 +0000 Subject: [PATCH 20/51] ckp --- slicops/device_screen.py | 90 ++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 49 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index bff8b6c..52a708e 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -15,8 +15,7 @@ import threading # rjn these should be reused for both cases -_CONTROL_REMOVE = 0 -_CONTROL_INSERT = 1 +_MOVE_TARGET_IN = PKDict(False=0, True=1) _STATUS_IN = 2 _STATUS_OUT = 1 @@ -36,10 +35,8 @@ def destroy(self): self.__worker.destroy() super().destroy() - def move_target(self, want_in, callback): - self.__worker.req_action( - self.action_req_move_target, PKDict(want_in=want_in, callback=callback) - ) + def move_target(self, want_in): + self.__worker.req_action(self.action_req_move_target, PKDict(want_in=want_in)) class _FSM: @@ -48,6 +45,7 @@ def __init__(self, worker): self.curr = PKDict( check_target=False, check_upstream=False, + move_target=False, target_is_in=None, upstream_problems=None, ) @@ -63,23 +61,23 @@ def _states(curr): return " ".join(f"{k}={curr[k]}" for k in sorted(curr.keys())) return f"<_FSM {_states(self.curr)}>" - - def _event_req_upstream_status(self, arg, check_upstream, upstream_problems, **kwargs): - if upstream_problems is not None: - arg.callback(PKDict(upstream_problems=upstream_problems)) - return - if check_upstream: - # TODO(robnagler) don't crash here, but how to force callback to crash? - arg.callback(PKDict(error="Already in check_upstream")) + def _event_move_target(self, arg, move_target, check_upstream, upstream_problems, **kwargs): + if move_target: + self.worker.handler.on_screen_fsm_error("target already moving") return - self.worker.action(self.worker.action_check_upstream, arg) - return PKDict(check_upstream=True) + #TODO(robnagler) allow moving without checking upstream + rv = PKDict(move_target=True) + if arg.want_in and upstream_problems is None or upstream_problems: + self.worker.action(self.worker.action_check_upstream, None) + rv.check_upstream = True + return rv def _event_upstream_status_done(self, arg, check_upstream, **kwargs): - if not check_upstream: - raise AssertionError("not in check_upstream") - self.worker.handler.screen_cb_upstream(problems=arg.problems) - return PKDict(upstream_problems=arg.problems, check_upstream=False) + if arg.problems: + self.worker.handler.on_screen_upstream_problems(problems=arg.problems) + return PKDict(check_upstream=False, move_target=None) + self.worker.action(self.worker.action_move_target, None) + return PKDict(check_upstream=False) class _Thread: @@ -201,25 +199,36 @@ def __init__(self, beam_path, handler, device): self._loop_timeout_secs = 0 super().__init__() - def action_check_upstream(self, arg): - self.__upstream = _Upstream(self, arg) + def action_monitor_acquire(self, arg): + self.__handler.on_screen_acquire(is_acquiring=arg.value) + self.__fsm.event("monitor_acquire", arg.value) return None - def action_check_target(self, arg): - if not self.__status: - self.__status = self.accessor("target_status") - self.__status_accessor.monitor(self.__handle_status) + def action_monitor_error(self, arg): + self.__handler.on_screen_monitor_error(accessor=arg.accessor, error=arg.error) return None - def action_req_move_target(self, arg): + def action_monitor_image(self, arg): + self.__handler.on_screen_image(image=arg.value) return None - def action_req_target_status(self, arg): - self.__fsm.event("req_target_status", arg) + def action_monitor_target_status(self, arg): + v = _STATUS_IN == arg.value + self.__handler.on_screen_target_status(target_is_in=v) + self.__fsm.event("monitor_target_status", v) + return None + + def action_check_upstream(self, arg): + self.__upstream = _Upstream(self, arg) return None - def action_upstream_status(self, arg): - self.__fsm.event("upstream_status", arg) + def action_move_target(self, arg): + if self.__target_control: + self.__target_control = self.accessor("target_control") + self.__target_control.put(_MOVE_TARGET_IN[arg.want_in]) + + def action_req_move_target(self, arg): + self.__fsm.event("move_target", arg) return None def req_action(self, method, arg): @@ -236,32 +245,15 @@ def _destroy(self): def __handle_monitor(self, **kwargs): a = PKDict(kwargs) if "error" in arg: - self.action(self.action_monitor_error,, arg) + self.action(self.action_monitor_error, arg) elif "connected" in arg: pass else: self.action(getattr(self, f"action_monitor_{a.accessor.accessor_name}"), a) - def action_monitor_acquire(self, arg): - self.__handler.on_screen_acquire(is_acquiring=arg.value) - self.__fsm.event("monitor_acquire", arg.value) - return None - - def action_monitor_image(self, arg): - self.__handler.on_screen_image(image=arg.value) - return None - - def action_monitor_target_status(self, arg): - v = _STATUS_IN == arg.value - self.__handler.on_screen_target_status(target_is_in=v) - self.__fsm.event("monitor_target_status", v) - return None - def _loop(self, *args, **kwargs): for a in "acquire", "image", "target_status": self.accessor(a).monitor(self.__handle_monitor) - self.accessor("image").monitor(self.__handle_image) - self.accessor("target_status").monitor(self.__handle_target_status) super()._loop(*args, **kwargs) def _repr(self): From 40a80cd222dc33c1e03af9becd2a6c59c0e8323a Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 27 Jul 2025 20:25:57 +0000 Subject: [PATCH 21/51] basically coded --- slicops/device_screen.py | 111 ++++++++++++++++++++++----------------- 1 file changed, 63 insertions(+), 48 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 52a708e..1994e12 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -40,13 +40,14 @@ def move_target(self, want_in): class _FSM: - def __init__(self, worker): + def __init__(self, worker, handler): self.worker = worker + self.handler = handler self.curr = PKDict( - check_target=False, + acquire=False, check_upstream=False, - move_target=False, - target_is_in=None, + move_target_arg=None, + target_status=None, upstream_problems=None, ) self.prev = self.curr.copy() @@ -56,28 +57,57 @@ def event(self, name, arg): if u := getattr(self, f"_event_{name}")(arg, **self.curr): self.curr.update(u) - def __repr__(self): - def _states(curr): - return " ".join(f"{k}={curr[k]}" for k in sorted(curr.keys())) - - return f"<_FSM {_states(self.curr)}>" - def _event_move_target(self, arg, move_target, check_upstream, upstream_problems, **kwargs): - if move_target: - self.worker.handler.on_screen_fsm_error("target already moving") + def _event_handle_monitor(self, arg): + n = arg.accessor.accessor_name + if "error" in arg: + self.handler.on_screen_device_error(kind="monitor", accessor_name=n, error=arg.error) + if n == "target_status": + #TODO(robnagler) is resetting move_target_arg right? + return PKDict(target_status=None, move_target_arg=None) + return + if "connected" in arg: + return + if n == "image": + self.handler.on_screen_device_update(kind=n, value=arg.value) return + if n == "acquire": + self.handler.on_screen_device_update(kind=n, value=arg.value) + return PKDict(acquire=arg.value) + if n == "target_status": + v = _STATUS_IN == arg.value + self.handler.on_screen_device_update(kind=n, value=v) + return PKDict(move_target_arg=None, target_status=v) + raise AssertionError(f"unsupported accessor={n} {self}") + + def _event_move_target(self, arg, check_upstream, move_target_arg, target_status, upstream_problems, **kwargs): + if move_target_arg: + self.handler.on_screen_device_error(kind="fsm", error="target already moving") + return + if target_status is not None: + if self.want_in == target_status: + # TODO(robnagler) could be a race condition so probably fine to do nothing + return #TODO(robnagler) allow moving without checking upstream - rv = PKDict(move_target=True) + rv = PKDict(move_target_arg=arg.want_in) if arg.want_in and upstream_problems is None or upstream_problems: + # Recheck the upstream self.worker.action(self.worker.action_check_upstream, None) rv.check_upstream = True return rv - def _event_upstream_status_done(self, arg, check_upstream, **kwargs): + def _event_upstream_status(self, arg, **kwargs): + rv = PKDict(check_upstream=False, upstream_problems=arg.problems) if arg.problems: - self.worker.handler.on_screen_upstream_problems(problems=arg.problems) - return PKDict(check_upstream=False, move_target=None) - self.worker.action(self.worker.action_move_target, None) - return PKDict(check_upstream=False) + self.handler.on_screen_device_error(kind="upstream", error=arg.problems) + return rv.pkupdate(move_target_arg=None) + self.worker.action(self.worker.action_move_target, move_target_arg) + return rv + + def __repr__(self): + def _states(curr): + return " ".join(f"{k}={curr[k]}" for k in sorted(curr.keys())) + + return f"<_FSM {self.worker.device.device_name} {_states(self.curr)}>" class _Thread: @@ -144,7 +174,7 @@ def _names(): self.__callback_arg = req_arg self.__problems = PKDict() self.__devices = PKDict({u: slicops.device.Device(u) for u in _names()}) - self._loop_timeout_secs = _cfg.upstream_tim + self._loop_timeout_secs = _cfg.upstream_timeout_secs super().__init__() def action_handle_status(self, arg): @@ -191,50 +221,41 @@ class _Worker(_Thread): def __init__(self, beam_path, handler, device): self.__beam_path = beam_path - self.__handler = handler self.__device = device self.__upstream = None self.__status = None - self.__fsm = __FSM(self) + self.__fsm = __FSM(self, handler) self._loop_timeout_secs = 0 super().__init__() - def action_monitor_acquire(self, arg): - self.__handler.on_screen_acquire(is_acquiring=arg.value) - self.__fsm.event("monitor_acquire", arg.value) - return None - - def action_monitor_error(self, arg): - self.__handler.on_screen_monitor_error(accessor=arg.accessor, error=arg.error) - return None - - def action_monitor_image(self, arg): - self.__handler.on_screen_image(image=arg.value) - return None - - def action_monitor_target_status(self, arg): - v = _STATUS_IN == arg.value - self.__handler.on_screen_target_status(target_is_in=v) - self.__fsm.event("monitor_target_status", v) - return None def action_check_upstream(self, arg): self.__upstream = _Upstream(self, arg) return None + def action_handle_monitor(self, arg): + self.__fsm.event("handle_monitor", arg) + return None + def action_move_target(self, arg): if self.__target_control: self.__target_control = self.accessor("target_control") self.__target_control.put(_MOVE_TARGET_IN[arg.want_in]) + return None def action_req_move_target(self, arg): self.__fsm.event("move_target", arg) return None + def action_upstream_status(self, arg): + self.__fsm.event("upstream_status", arg.problems) + self.__upstream = None + return None + def req_action(self, method, arg): """Called by DeviceScreen which has separate life cycle""" if self.destroyed: - raise AssertionError("already destroyed") + raise AssertionError("object is destroyed") self.action(method, arg) def _destroy(self): @@ -243,13 +264,7 @@ def _destroy(self): u.destroy() def __handle_monitor(self, **kwargs): - a = PKDict(kwargs) - if "error" in arg: - self.action(self.action_monitor_error, arg) - elif "connected" in arg: - pass - else: - self.action(getattr(self, f"action_monitor_{a.accessor.accessor_name}"), a) + self.action(self.action_handle_monitor, PKDict(kwargs) def _loop(self, *args, **kwargs): for a in "acquire", "image", "target_status": @@ -261,5 +276,5 @@ def _repr(self): _cfg = pykern.pkconfig.init( - upstream_timeout_secs=(15, pykern.pkconfig.parse_seconds, "how long to wait for devices to return"), + upstream_timeout_secs=(15, pykern.pkconfig.parse_seconds, "how long to wait for updates from devices"), ) From e7af727664b4f20c96b64db0980e150c464a7b79 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 27 Jul 2025 21:42:42 +0000 Subject: [PATCH 22/51] starting #130 mocking epics --- slicops/pkcli/epics.py | 112 +++++++++++++++++++++++++++++ slicops/unit_util.py | 14 +++- tests/screen_device_data/base.yaml | 16 +++++ 3 files changed, 139 insertions(+), 3 deletions(-) create mode 100644 tests/screen_device_data/base.yaml diff --git a/slicops/pkcli/epics.py b/slicops/pkcli/epics.py index 18235ce..47506e7 100644 --- a/slicops/pkcli/epics.py +++ b/slicops/pkcli/epics.py @@ -107,3 +107,115 @@ def _st_cmd(dir_path): p.terminate() time.sleep(1) p.kill() + + +def unit(): + from pykern import fconf, pkio + from caproto import server + import asyncio + +class SleepIOC(PVGroup): + pv1 = pvproperty(value=1) + pv2 = pvproperty(value=2) + + async def group_read(self, instance): + await asyncio.sleep(2 * instance.value) + return instance.value + +async def _func(*args, **kwargs): + pkdp(args) + pkdp(kwargs) + rv = await getter(*args, **kwargs) + pkdp(type(rv)) + return rv + +if __name__ == '__main__': + ioc_options, run_options = ioc_arg_parser( + default_prefix='TEST:', + desc='IOC with two PVs that sleep on put' + ) + pkdp(ioc_options) + pkdp(run_options) + ioc = SleepIOC(**ioc_options) + getter = ioc.pvdb['TEST:pv1'].getter + ioc.pvdb['TEST:pv1'].getter = _func + run(ioc.pvdb, **run_options) +randomly gets this: + +tes2.py:6:_read start TEST:pv1 +tes2.py:6:_read start TEST:pv2 +tes2.py:13: started +Exception in thread Thread-1: +Traceback (most recent call last): + File "/home/vagrant/.pyenv/versions/3.9.15/lib/python3.9/threading.py", line 980, in _bootstrap_inner + self.run() + File "/home/vagrant/.pyenv/versions/3.9.15/lib/python3.9/threading.py", line 917, in run + self._target(*self._args, **self._kwargs) + File "/home/vagrant/tmp/tes2.py", line 8, in _read + pkdlog("got {}={}", pv, p.get(timeout=5)) + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 505, in get + data = self.get_with_metadata(count=count, as_string=as_string, + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 41, in wrapped + return func(self, *args, **kwargs) + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 584, in get_with_metadata + metad = ca.get_with_metadata( + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 687, in wrapper + return fcn(*args, **kwds) + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 1499, in get_with_metadata + return get_complete_with_metadata(chid, count=count, ftype=ftype, + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 687, in wrapper + return fcn(*args, **kwds) + File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 1640, in get_complete_with_metadata + raise get_failure_reason +epics.ca.ChannelAccessGetFailure: Get failed; status code: 142 +tes2.py:8:_read got TEST:pv2=2 +tes2.py:16: joined + + + + + + + +ioc = BasicIOC(prefix='prefix:') +class MyGroup(PVGroup): + async def group_write(self, instance, value): + """Generic write called for channels without `put` defined.""" + print(f"{instance.pvspec.attr} was written to with {value}.") + + + async def group_read(self, instance: PvpropertyData): + 'Generic read called for channels without `get` defined' + + async def group_write(self, instance: PvpropertyData, value: Any): + + + + pvproperty( + get: Optional[Getter] = None, + put: Optional[Putter] = None, + +.server import pvproperty, PVGroup, ioc_arg_parser, run + class SleepIOC(server.NPVGroup): + pv1 = server.pvproperty(value=1) + pv2 = server.pvproperty(value=2) + + @pv1.getter + async def pv1(self, instance): + await asyncio.sleep(2 * instance.value) + return instance.value + + @pv2.getter + async def pv2(self, instance): + await asyncio.sleep(2 * instance.value) + return instance.value + + if __name__ == '__main__': + ioc_options, run_options = ioc_arg_parser( + default_prefix='TEST:', + desc='IOC with two PVs that sleep on put' + ) + ioc = SleepIOC(**ioc_options) + run(ioc.pvdb, **run_options) + + pvs = fconf.parse_all(pkio.py_path()) diff --git a/slicops/unit_util.py b/slicops/unit_util.py index 78dbd08..7a13bbd 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -11,9 +11,12 @@ class Setup(pykern.api.unit_util.Setup): def __init__(self, sliclet, *args, **kwargs): + if c := kwargs.get("caproto"): + del kwargs["caproto"] super().__init__(*args, **kwargs) self.__sliclet = sliclet self.__update_q = asyncio.Queue() + self.__caproto = c async def ctx_update(self): from pykern import pkunit @@ -51,10 +54,12 @@ def _http_config(self, *args, **kwargs): return config.cfg().ui_api.copy() def _server_config(self, *args, **kwargs): - from slicops import mock_epics - - mock_epics.reset_state() + if self.__caproto: + self.__start_caproto() + else: + from slicops import mock_epics + mock_epics.reset_state() return super()._server_config(*args, **kwargs) def _server_start(self, *args, **kwargs): @@ -71,6 +76,9 @@ def __caller(self): c = m.group(1) pkdebug.pkdlog("{} op={}", c, pkinspect.caller_func_name()) + def __start_caproto(self): + pass + async def __subscribe(self): from pykern import pkdebug from pykern.pkcollections import PKDict diff --git a/tests/screen_device_data/base.yaml b/tests/screen_device_data/base.yaml new file mode 100644 index 0000000..6f1fb74 --- /dev/null +++ b/tests/screen_device_data/base.yaml @@ -0,0 +1,16 @@ +"OTRS:HTR:330:Image:ArrayData": + monitor_secs: 2 + value: [] +"OTRS:HTR:330:Image:ArraySize1_RBV": + value: 64 +"OTRS:HTR:330:Image:ArraySize0_RBV": + value: 64 +"OTRS:HTR:330:PNEUMATIC": + updates: + "OTRS:HTR:330:TGT_STS": + 1: 2 + 2: 0 +"OTRS:HTR:330:TGT_STS": + value: 0 +"OTRS:HTR:330:Acquire": + value: 0 From e746c55009df55cac8eddb5332664a979156cac6 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Wed, 30 Jul 2025 22:53:49 +0000 Subject: [PATCH 23/51] remove mock_ioc --- slicops/pkcli/epics.py | 112 ----------------------------------------- 1 file changed, 112 deletions(-) diff --git a/slicops/pkcli/epics.py b/slicops/pkcli/epics.py index 47506e7..18235ce 100644 --- a/slicops/pkcli/epics.py +++ b/slicops/pkcli/epics.py @@ -107,115 +107,3 @@ def _st_cmd(dir_path): p.terminate() time.sleep(1) p.kill() - - -def unit(): - from pykern import fconf, pkio - from caproto import server - import asyncio - -class SleepIOC(PVGroup): - pv1 = pvproperty(value=1) - pv2 = pvproperty(value=2) - - async def group_read(self, instance): - await asyncio.sleep(2 * instance.value) - return instance.value - -async def _func(*args, **kwargs): - pkdp(args) - pkdp(kwargs) - rv = await getter(*args, **kwargs) - pkdp(type(rv)) - return rv - -if __name__ == '__main__': - ioc_options, run_options = ioc_arg_parser( - default_prefix='TEST:', - desc='IOC with two PVs that sleep on put' - ) - pkdp(ioc_options) - pkdp(run_options) - ioc = SleepIOC(**ioc_options) - getter = ioc.pvdb['TEST:pv1'].getter - ioc.pvdb['TEST:pv1'].getter = _func - run(ioc.pvdb, **run_options) -randomly gets this: - -tes2.py:6:_read start TEST:pv1 -tes2.py:6:_read start TEST:pv2 -tes2.py:13: started -Exception in thread Thread-1: -Traceback (most recent call last): - File "/home/vagrant/.pyenv/versions/3.9.15/lib/python3.9/threading.py", line 980, in _bootstrap_inner - self.run() - File "/home/vagrant/.pyenv/versions/3.9.15/lib/python3.9/threading.py", line 917, in run - self._target(*self._args, **self._kwargs) - File "/home/vagrant/tmp/tes2.py", line 8, in _read - pkdlog("got {}={}", pv, p.get(timeout=5)) - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 505, in get - data = self.get_with_metadata(count=count, as_string=as_string, - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 41, in wrapped - return func(self, *args, **kwargs) - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/pv.py", line 584, in get_with_metadata - metad = ca.get_with_metadata( - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 687, in wrapper - return fcn(*args, **kwds) - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 1499, in get_with_metadata - return get_complete_with_metadata(chid, count=count, ftype=ftype, - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 687, in wrapper - return fcn(*args, **kwds) - File "/home/vagrant/.pyenv/versions/py3/lib/python3.9/site-packages/epics/ca.py", line 1640, in get_complete_with_metadata - raise get_failure_reason -epics.ca.ChannelAccessGetFailure: Get failed; status code: 142 -tes2.py:8:_read got TEST:pv2=2 -tes2.py:16: joined - - - - - - - -ioc = BasicIOC(prefix='prefix:') -class MyGroup(PVGroup): - async def group_write(self, instance, value): - """Generic write called for channels without `put` defined.""" - print(f"{instance.pvspec.attr} was written to with {value}.") - - - async def group_read(self, instance: PvpropertyData): - 'Generic read called for channels without `get` defined' - - async def group_write(self, instance: PvpropertyData, value: Any): - - - - pvproperty( - get: Optional[Getter] = None, - put: Optional[Putter] = None, - -.server import pvproperty, PVGroup, ioc_arg_parser, run - class SleepIOC(server.NPVGroup): - pv1 = server.pvproperty(value=1) - pv2 = server.pvproperty(value=2) - - @pv1.getter - async def pv1(self, instance): - await asyncio.sleep(2 * instance.value) - return instance.value - - @pv2.getter - async def pv2(self, instance): - await asyncio.sleep(2 * instance.value) - return instance.value - - if __name__ == '__main__': - ioc_options, run_options = ioc_arg_parser( - default_prefix='TEST:', - desc='IOC with two PVs that sleep on put' - ) - ioc = SleepIOC(**ioc_options) - run(ioc.pvdb, **run_options) - - pvs = fconf.parse_all(pkio.py_path()) From b897729a22d220a9a1bf74043f1dc95fef02d0e0 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Wed, 30 Jul 2025 22:54:01 +0000 Subject: [PATCH 24/51] cleaned up --- tests/screen_device_data/base.yaml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tests/screen_device_data/base.yaml b/tests/screen_device_data/base.yaml index 6f1fb74..ff2bbb0 100644 --- a/tests/screen_device_data/base.yaml +++ b/tests/screen_device_data/base.yaml @@ -1,16 +1,17 @@ +--- "OTRS:HTR:330:Image:ArrayData": - monitor_secs: 2 - value: [] -"OTRS:HTR:330:Image:ArraySize1_RBV": - value: 64 -"OTRS:HTR:330:Image:ArraySize0_RBV": - value: 64 + delay: 2 + values: + - 1 + - 2 +"OTRS:HTR:330:Image:ArraySize1_RBV": 64 +"OTRS:HTR:330:Image:ArraySize0_RBV": 64 "OTRS:HTR:330:PNEUMATIC": - updates: - "OTRS:HTR:330:TGT_STS": - 1: 2 - 2: 0 -"OTRS:HTR:330:TGT_STS": - value: 0 -"OTRS:HTR:330:Acquire": - value: 0 + triggers: + - pv: "OTRS:HTR:330:TGT_STS" + delay: 2 + value_map: + 1: 2 + 2: 0 +"OTRS:HTR:330:TGT_STS": 0 +"OTRS:HTR:330:Acquire": 0 From e2d92021c4992bd0db1fecf87639f93c3750033b Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Wed, 30 Jul 2025 22:54:11 +0000 Subject: [PATCH 25/51] working for basic get --- slicops/pkcli/mock_ioc.py | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 slicops/pkcli/mock_ioc.py diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/mock_ioc.py new file mode 100644 index 0000000..a2de0e9 --- /dev/null +++ b/slicops/pkcli/mock_ioc.py @@ -0,0 +1,69 @@ +"""IOC configured from a YAML file + +:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + +from pykern.pkcollections import PKDict +from pykern.pkdebug import pkdc, pkdlog, pkdp +import asyncio +import caproto.server +import pykern.fconf +import pykern.pkio + + +def run(config_dir): + def _normalize(raw): + for k, v in raw.items(): + if not isinstance(v, dict): + v = PKDict(values=[v], delay=0, read_only=False) + v.pksetdefault(delay=1) + v.pksetdefault(values=[None]) + for t in v.get("triggers", []): + t.pksetdefault(delay=1) + yield k, v + + def _pvgroup(config): + return PKDict( + # Need to hardwire the defaults, because ioc_arg_parser uses + # argparse globally which causes a mess with argh (which uses argparse) + pvdb=_PVGroup(config, macros={}, prefix='').pvdb, + interfaces=['0.0.0.0'], + module_name='caproto.asyncio.server', + log_pv_names=False, + ) + + caproto.server.run( + **_pvgroup( + PKDict(_normalize(pykern.fconf.parse_all(pykern.pkio.py_path()))), + ), + ) + + +class _PVGroup(caproto.server.PVGroup): + + def __init__(self, config, *args, **kwargs): + self.__config = config + for k, v in self.__config.items(): + self._pvs_[k] = p = caproto.server.pvproperty( + value=v["values"][0], + startup=self.__startup, + ) + p.__set_name__(self, k) + super().__init__(*args, **kwargs) + + # async def group_write(self, instance, value): + + async def __startup(self, _ignore_self, pv, async_lib): + # async_lib doesn't have create taxsk + # _ignore_self needed to match signature checking in caproto + # pkdp("{} {}", pv.name, async_lib) + # asyncio.create_task(self.__publish(pv)) + pass + + async def __publish(self, pv): + pkdp("{}", pv.name) + for _ in range(10): + await asyncio.sleep(pv.value) + await pv.write(2 * pv.value) + pkdp("value={}", pv.value) From d09eb59c9153de0c5fac4d30a5760eda1b63d3fa Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Wed, 30 Jul 2025 23:06:44 +0000 Subject: [PATCH 26/51] doc ideas --- slicops/pkcli/mock_ioc.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/mock_ioc.py index a2de0e9..8b04e47 100644 --- a/slicops/pkcli/mock_ioc.py +++ b/slicops/pkcli/mock_ioc.py @@ -16,9 +16,8 @@ def run(config_dir): def _normalize(raw): for k, v in raw.items(): if not isinstance(v, dict): - v = PKDict(values=[v], delay=0, read_only=False) - v.pksetdefault(delay=1) - v.pksetdefault(values=[None]) + v = PKDict(values=[v]) + v.pksetdefault(delay=1, values=[None]) for t in v.get("triggers", []): t.pksetdefault(delay=1) yield k, v @@ -27,9 +26,9 @@ def _pvgroup(config): return PKDict( # Need to hardwire the defaults, because ioc_arg_parser uses # argparse globally which causes a mess with argh (which uses argparse) - pvdb=_PVGroup(config, macros={}, prefix='').pvdb, - interfaces=['0.0.0.0'], - module_name='caproto.asyncio.server', + pvdb=_PVGroup(config, macros={}, prefix="").pvdb, + interfaces=["0.0.0.0"], + module_name="caproto.asyncio.server", log_pv_names=False, ) @@ -62,6 +61,11 @@ async def __startup(self, _ignore_self, pv, async_lib): pass async def __publish(self, pv): + # TODO(robnagler) should values be triggered on each _read() + # event? there's caching in caproto so that makes it difficult. + # acquire triggers images which would come back with a delay of + # say .1 so we could check the results. Delay has to be slow enough + # so that we don't lose updates in testing pkdp("{}", pv.name) for _ in range(10): await asyncio.sleep(pv.value) From 99c55f87652b6b9242e37e7c84a32d457d7dece6 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 3 Aug 2025 17:30:27 +0000 Subject: [PATCH 27/51] test starts but no events published --- slicops/device_screen.py | 92 ++++++++++++++----- slicops/pkcli/mock_ioc.py | 2 +- slicops/sliclet/screen.py | 1 - slicops/unit_util.py | 26 +++++- .../base.yaml | 0 tests/device_screen_test.py | 64 +++++++------ tests/sliclet/screen_test.py | 2 +- tests/sliclet/yaml_db_test.py | 2 +- 8 files changed, 131 insertions(+), 58 deletions(-) rename tests/{screen_device_data => device_screen_data}/base.yaml (100%) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 1994e12..71b3c2d 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -6,16 +6,18 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp -import logging from slicops.device import DeviceError -import slicops.device -import slicops.device_db +import abc import enum +import logging +import pykern.pkconfig import queue +import slicops.device +import slicops.device_db import threading -# rjn these should be reused for both cases -_MOVE_TARGET_IN = PKDict(False=0, True=1) +# TODO(robnagler) these should be reused for both cases +_MOVE_TARGET_IN = PKDict({False: 0, True: 1}) _STATUS_IN = 2 _STATUS_OUT = 1 @@ -27,8 +29,12 @@ class DeviceScreen(slicops.device.Device): """Augment Device with screen specific operations""" - def __init__(self, beam_path, handler, *args, **kwargs): - super().__init__(*args, **kwargs) + def __init__(self, beam_path, device_name, handler, *args, **kwargs): + super().__init__(device_name, *args, **kwargs) + if not isinstance(handler, EventHandler): + raise AssertionError( + f"handler is not subclass EventHandler type={type(handler)}" + ) self.__worker = _Worker(beam_path, handler, self) def destroy(self): @@ -39,6 +45,23 @@ def move_target(self, want_in): self.__worker.req_action(self.action_req_move_target, PKDict(want_in=want_in)) +class ErrorKind(enum.Enum): + fsm = enum.auto() + monitor = enum.auto() + upstream = enum.auto() + + +class EventHandler: + + @abc.abstractmethod + def on_screen_device_error(self, accessor_name, error_kind, error_msg): + pass + + @abc.abstractmethod + def on_screen_device_update(self, accessor_name, value): + pass + + class _FSM: def __init__(self, worker, handler): self.worker = worker @@ -60,34 +83,46 @@ def event(self, name, arg): def _event_handle_monitor(self, arg): n = arg.accessor.accessor_name if "error" in arg: - self.handler.on_screen_device_error(kind="monitor", accessor_name=n, error=arg.error) + self.handler.on_screen_device_error( + error_kind=ErrorKind.monitor, accessor_name=n, error_msg=arg.error + ) if n == "target_status": - #TODO(robnagler) is resetting move_target_arg right? + # TODO(robnagler) is resetting move_target_arg right? return PKDict(target_status=None, move_target_arg=None) return if "connected" in arg: return if n == "image": - self.handler.on_screen_device_update(kind=n, value=arg.value) + self.handler.on_screen_device_update(value=arg.value) return if n == "acquire": - self.handler.on_screen_device_update(kind=n, value=arg.value) + self.handler.on_screen_device_update(accessor_name=n, value=arg.value) return PKDict(acquire=arg.value) if n == "target_status": v = _STATUS_IN == arg.value - self.handler.on_screen_device_update(kind=n, value=v) + self.handler.on_screen_device_update(accessor_name=n, value=v) return PKDict(move_target_arg=None, target_status=v) raise AssertionError(f"unsupported accessor={n} {self}") - def _event_move_target(self, arg, check_upstream, move_target_arg, target_status, upstream_problems, **kwargs): + def _event_move_target( + self, + arg, + check_upstream, + move_target_arg, + target_status, + upstream_problems, + **kwargs, + ): if move_target_arg: - self.handler.on_screen_device_error(kind="fsm", error="target already moving") + self.handler.on_screen_device_error( + error_kind="fsm", error_msg="target already moving" + ) return if target_status is not None: if self.want_in == target_status: # TODO(robnagler) could be a race condition so probably fine to do nothing return - #TODO(robnagler) allow moving without checking upstream + # TODO(robnagler) allow moving without checking upstream rv = PKDict(move_target_arg=arg.want_in) if arg.want_in and upstream_problems is None or upstream_problems: # Recheck the upstream @@ -98,7 +133,9 @@ def _event_move_target(self, arg, check_upstream, move_target_arg, target_status def _event_upstream_status(self, arg, **kwargs): rv = PKDict(check_upstream=False, upstream_problems=arg.problems) if arg.problems: - self.handler.on_screen_device_error(kind="upstream", error=arg.problems) + self.handler.on_screen_device_error( + error_kind="upstream", error_msg=arg.problems + ) return rv.pkupdate(move_target_arg=None) self.worker.action(self.worker.action_move_target, move_target_arg) return rv @@ -117,9 +154,11 @@ def __init__(self): self.destroyed = False self.__lock = threading.Lock() self.__actions = queue.Queue() - self.__thread = threading.Thread(target=self._loop) + self.__thread = threading.Thread(target=self._loop, daemon=True) if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): - raise AssertionError(f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout") + raise AssertionError( + f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout" + ) self.__thread.start() def action(self, method, arg): @@ -131,7 +170,7 @@ def destroy(self): if self.destroyed: return self.destroyed = True - self.__actions.put_nowait(None, None) + self.__actions.put_nowait((None, None)) self._destroy() except Exception as e: pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) @@ -160,7 +199,7 @@ def __repr__(self): def _destroyed(): return " DESTROYED" if self.destroyed else "" - return f"<{self.__class__.__name}{_destroyed()} self._repr()>" + return f"<{self.__class__.__name__}{_destroyed()} self._repr()>" class _Upstream(_Thread): @@ -224,11 +263,10 @@ def __init__(self, beam_path, handler, device): self.__device = device self.__upstream = None self.__status = None - self.__fsm = __FSM(self, handler) + self.__fsm = _FSM(self, handler) self._loop_timeout_secs = 0 super().__init__() - def action_check_upstream(self, arg): self.__upstream = _Upstream(self, arg) return None @@ -264,11 +302,11 @@ def _destroy(self): u.destroy() def __handle_monitor(self, **kwargs): - self.action(self.action_handle_monitor, PKDict(kwargs) + self.action(self.action_handle_monitor, PKDict(kwargs)) def _loop(self, *args, **kwargs): for a in "acquire", "image", "target_status": - self.accessor(a).monitor(self.__handle_monitor) + self.__device.accessor(a).monitor(self.__handle_monitor) super()._loop(*args, **kwargs) def _repr(self): @@ -276,5 +314,9 @@ def _repr(self): _cfg = pykern.pkconfig.init( - upstream_timeout_secs=(15, pykern.pkconfig.parse_seconds, "how long to wait for updates from devices"), + upstream_timeout_secs=( + 15, + pykern.pkconfig.parse_seconds, + "how long to wait for updates from devices", + ), ) diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/mock_ioc.py index 8b04e47..1ca9b2f 100644 --- a/slicops/pkcli/mock_ioc.py +++ b/slicops/pkcli/mock_ioc.py @@ -34,7 +34,7 @@ def _pvgroup(config): caproto.server.run( **_pvgroup( - PKDict(_normalize(pykern.fconf.parse_all(pykern.pkio.py_path()))), + PKDict(_normalize(pykern.fconf.parse_all(pykern.pkio.py_path(config_dir)))), ), ) diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index 1d95f48..d93ad12 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -6,7 +6,6 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp -import enum import pykern.pkconfig import pykern.util import queue diff --git a/slicops/unit_util.py b/slicops/unit_util.py index 7a13bbd..3e85bfc 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -7,9 +7,33 @@ # limit imports that might touch config import asyncio import pykern.api.unit_util +import contextlib -class Setup(pykern.api.unit_util.Setup): +@contextlib.contextmanager +def start_mock_ioc(config_dir): + from pykern import pkdebug + from pykern.pkcollections import PKDict + import os, signal, time + + p = os.fork() + if p == 0: + try: + from slicops.pkcli import mock_ioc + + mock_ioc.run(config_dir) + except Exception as e: + pkdebug.pkdlog("server exception={} stack={}", e, pkdebug.pkdexc()) + finally: + os._exit(0) + try: + time.sleep(1) + yield None + finally: + os.kill(p, signal.SIGKILL) + + +class SlicletSetup(pykern.api.unit_util.Setup): def __init__(self, sliclet, *args, **kwargs): if c := kwargs.get("caproto"): del kwargs["caproto"] diff --git a/tests/screen_device_data/base.yaml b/tests/device_screen_data/base.yaml similarity index 100% rename from tests/screen_device_data/base.yaml rename to tests/device_screen_data/base.yaml diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 91c6fd1..78d65ba 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -6,36 +6,44 @@ def test_target(): - # Must be first - from slicops import mock_epics from pykern import pkdebug, pkunit - from slicops import device_screen - import time + from slicops import device_screen, unit_util + import queue, time - status = None + class _Handler(device_screen.EventHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.event_q = queue.Queue() - def _status(update): - nonlocal status + def on_screen_device_error(self, **kwargs): + self.event_q.put_nowait(PKDict(kwargs)) - if "connected" in update: + def on_screen_device_update(self, **kwargs): + self.event_q.put_nowait(PKDict(kwargs)) + + with unit_util.start_mock_ioc(pkunit.data_dir()): + + d = None + h = _Handler() + try: + d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) + v = h.event_q.get(timeout=0.5) + pkdebug.pkdp(v) + # pkunit.pkeq(1, d.accessor("target_status").get()) + # d.move_target(want_in=True) + # pkunit.pkeq(2, d.accessor("target_status").get()) + # d.remove_target() + # pkunit.pkeq(1, d.accessor("target_status").get()) + # u = device_db.upstream_devices("PROF", "target_control", "CU_HXR", "YAG03") + # pkunit.pkeq(list(u.keys()), ["YAG01", "YAG02"]) + # pkunit.pkeq(d.blocking_devices(), {"YAG01"}) + # d.unblock_upstream() + # a = u.get("YAG01").device.accessor("target_status") + # pkunit.pkeq(1, a.get()) return - status = update.value - - mock_epics.reset_state() - d = None - try: - d = device_screen.Screen("CU_HXR", "YAG03") - pkunit.pkeq(1, d.accessor("target_status").get()) - d.insert_target() - pkunit.pkeq(2, d.accessor("target_status").get()) - d.remove_target() - pkunit.pkeq(1, d.accessor("target_status").get()) - u = d.upstream_devices() - pkunit.pkeq(list(u.keys()), ["YAG01", "YAG02"]) - pkunit.pkeq(d.blocking_devices(), {"YAG01"}) - d.unblock_upstream() - a = u.get("YAG01").device.accessor("target_status") - pkunit.pkeq(1, a.get()) - finally: - if d: - d.destroy() + except queue.Empty: + pass + finally: + if d: + d.destroy() + pkunit.pkfail(f"timeout waiting on event_q") diff --git a/tests/sliclet/screen_test.py b/tests/sliclet/screen_test.py index f463a5d..f502c50 100644 --- a/tests/sliclet/screen_test.py +++ b/tests/sliclet/screen_test.py @@ -22,7 +22,7 @@ async def _buttons(s, expect, msg): ) return rv - async with unit_util.Setup("screen") as s: + async with unit_util.SlicletSetup("screen") as s: from pykern import pkunit, pkdebug from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp import asyncio diff --git a/tests/sliclet/yaml_db_test.py b/tests/sliclet/yaml_db_test.py index 9d1f865..09ed445 100644 --- a/tests/sliclet/yaml_db_test.py +++ b/tests/sliclet/yaml_db_test.py @@ -11,7 +11,7 @@ async def test_basic(): from slicops import unit_util - async with unit_util.Setup("yaml_db") as s: + async with unit_util.SlicletSetup("yaml_db") as s: from pykern import pkunit, pkdebug from slicops.pkcli import yaml_db import asyncio From 5da94006be9774efb079a0a53f580eef93c00c5a Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 3 Aug 2025 22:28:27 +0000 Subject: [PATCH 28/51] working sometimes; pyepics seems to lose responses --- slicops/device.py | 59 +++++++++++++++++++++++------- slicops/device_screen.py | 31 +++++++++------- slicops/pkcli/device_db.py | 24 +++++++++--- slicops/pkcli/mock_ioc.py | 21 ++++------- tests/device_screen_data/base.yaml | 29 ++++++++------- tests/device_screen_test.py | 8 +++- 6 files changed, 113 insertions(+), 59 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index c4add72..7c4a49c 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -34,6 +34,7 @@ class Device: def __init__(self, device_name): self.device_name = device_name self.meta = slicops.device_db.meta_for_device(device_name) + self._destroyed = False self._accessor = PKDict() self.connected = False @@ -45,16 +46,21 @@ def accessor(self, accessor_name): Returns: _Accessor: object holding PV state """ + if self._destroyed: + raise AssertionError(f"destroyed {self}") return self._accessor.pksetdefault( accessor_name, lambda: _Accessor(self, accessor_name) )[accessor_name] def destroy(self): """Disconnect from PV's and remove state about device""" + if self._destroyed: + return + self._destroyed = True x = list(self._accessor.values()) self._accessor = PKDict() for a in x: - a.disconnect() + a.destroy() def get(self, accessor_name): """Read from PV @@ -102,6 +108,7 @@ def __init__(self, device, accessor_name): self.accessor_name = accessor_name self.meta = device.meta.accessor[accessor_name] self._callback = None + self._destroyed = False self._lock = threading.Lock() # TODO(pjm): connection and PV timeouts need to be configurable? self._pv = epics.PV( @@ -114,12 +121,19 @@ def __init__(self, device, accessor_name): # from within a monitor callback self._image_shape = (self.device.get("n_row"), self.device.get("n_col")) - def disconnect(self): + def destroy(self): """Stop all monitoring and disconnect from PV""" - self._callback = None + if self._destroyed: + return + with self._lock: + if self._destroyed: + return + self._destroyed = True + p = self._pv + self._callback = None try: # Clears all callbacks - self._pv.disconnect() + p.disconnect() except Exception as e: pkdlog("error={} {} stack={}", e, self, pkdexc()) @@ -129,7 +143,7 @@ def get(self): Returns: object: the value from the PV converted to a Python type """ - + self._assert_destroyed() # TODO(pjm): connection and PV timeouts need to be configurable? if (rv := self._pv.get(timeout=5.0)) is None: raise DeviceError(f"unable to get {self}") @@ -152,22 +166,36 @@ def monitor(self, callback): callback (callable): accepts a single `PKDict` as ag """ with self._lock: + self._assert_destroyed() if self._callback: raise ValueError(f"already monitoring {self}") - # should lock - self._callback_index = self._pv.add_callback(self._on_value) - self._pv.auto_monitor = True - self._callback = callback + v = self._on_value + p = self._pv + # Sanity check below. Callers should protect against race conditions + c = self._callback = PKDict(op=callback) + # These calls may block so can't call _lock + i = p.add_callback(v) + p.auto_monitor = True + with self._lock: + if self._destroyed or self._callback is None: + # destroy/monitor_stop inside the callback caused by add_callback + return + if c is not self._callback: + # Otherwise the index will be wrong. + raise AssertionError(f"overlapping calls monitor {self}") + self._callback_index = i def monitor_stop(self): """Stops monitoring PV""" with self._lock: - if not self._callback: + if self._destroyed or not self._callback: return self._callback = None - self._pv.auto_monitor = False - self._pv.remove_callback(self._callback_index) + i = self._callback_index self._callback_index = None + self._pv.auto_monitor = False + self._pv.remove_callback(i) + self._callback_index = None def put(self, value): """Set PV to value @@ -175,6 +203,7 @@ def put(self, value): Args: value (object): Value to write to PV """ + self._assert_destroyed() if not self.meta.pv_writable: raise AccessorPutError(f"read-only {self}") if self.meta.py_type == bool: @@ -189,6 +218,10 @@ def put(self, value): if not self._pv.connected: raise DeviceError(f"disconnected {self}") + def _assert_destroyed(self): + if self._destroyed: + raise AssertionError(f"destroyed {self}") + def _fixup_value(self, raw): def _reshape(image): return image.reshape(self._image_shape) @@ -233,4 +266,4 @@ def _run_callback(self, **kwargs): with self._lock: c = self._callback if c: - c(k) + c.op(k) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 71b3c2d..f583059 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -80,7 +80,7 @@ def event(self, name, arg): if u := getattr(self, f"_event_{name}")(arg, **self.curr): self.curr.update(u) - def _event_handle_monitor(self, arg): + def _event_handle_monitor(self, arg, **kwargs): n = arg.accessor.accessor_name if "error" in arg: self.handler.on_screen_device_error( @@ -93,16 +93,18 @@ def _event_handle_monitor(self, arg): if "connected" in arg: return if n == "image": - self.handler.on_screen_device_update(value=arg.value) - return - if n == "acquire": - self.handler.on_screen_device_update(accessor_name=n, value=arg.value) - return PKDict(acquire=arg.value) - if n == "target_status": + v = arg.value + rv = None + elif n == "acquire": + v = arg.value + rv = PKDict(acquire=arg.value) + elif n == "target_status": v = _STATUS_IN == arg.value - self.handler.on_screen_device_update(accessor_name=n, value=v) - return PKDict(move_target_arg=None, target_status=v) - raise AssertionError(f"unsupported accessor={n} {self}") + rv = PKDict(move_target_arg=None, target_status=v) + else: + raise AssertionError(f"unsupported accessor={n} {self}") + self.handler.on_screen_device_update(accessor_name=n, value=v) + return rv def _event_move_target( self, @@ -179,10 +181,13 @@ def _destroy(self): pass def _loop(self): + timeout_kwarg = PKDict() + if self._loop_timeout_secs: + timeout_kwarg.timeout = self._loop_timeout_secs try: while True: try: - m, a = self.__actions.get(timeout=self._loop_timeout_secs) + m, a = self.__actions.get(**timeout_kwarg) except queue.Empty: m, a = self.action_loop_timeout(), None with self.__lock: @@ -301,8 +306,8 @@ def _destroy(self): (u, self.__upstream) = (self.__upstream, None) u.destroy() - def __handle_monitor(self, **kwargs): - self.action(self.action_handle_monitor, PKDict(kwargs)) + def __handle_monitor(self, change): + self.action(self.action_handle_monitor, change) def _loop(self, *args, **kwargs): for a in "acquire", "image", "target_status": diff --git a/slicops/pkcli/device_db.py b/slicops/pkcli/device_db.py index 0f012ff..e696cfa 100644 --- a/slicops/pkcli/device_db.py +++ b/slicops/pkcli/device_db.py @@ -73,11 +73,6 @@ ) -def yaml_to_sql(): - """Convert device yaml file to db""" - return slicops.device_sql_db.recreate(_Parser()) - - def parse(): from pykern import pkjson @@ -93,6 +88,25 @@ def parse(): ) +def query(func_name, *args): + """Call func_name in `slicops.device_db` + + Args: + func_name (str): valid function + args (str): passed verbatim to function + Returns: + object: result of function + """ + from slicops import device_db + + return getattr(device_db, func_name)(*args) + + +def yaml_to_sql(): + """Convert device yaml file to db""" + return slicops.device_sql_db.recreate(_Parser()) + + class _Ignore(Exception): pass diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/mock_ioc.py index 1ca9b2f..377d8eb 100644 --- a/slicops/pkcli/mock_ioc.py +++ b/slicops/pkcli/mock_ioc.py @@ -16,8 +16,8 @@ def run(config_dir): def _normalize(raw): for k, v in raw.items(): if not isinstance(v, dict): - v = PKDict(values=[v]) - v.pksetdefault(delay=1, values=[None]) + v = PKDict(value=v) + v.pksetdefault(delay=1, value=None) for t in v.get("triggers", []): t.pksetdefault(delay=1) yield k, v @@ -45,13 +45,15 @@ def __init__(self, config, *args, **kwargs): self.__config = config for k, v in self.__config.items(): self._pvs_[k] = p = caproto.server.pvproperty( - value=v["values"][0], startup=self.__startup, + value=v.value, ) p.__set_name__(self, k) super().__init__(*args, **kwargs) - # async def group_write(self, instance, value): + async def xgroup_write(self, instance, value): + pkdp((instance, value)) + return async def __startup(self, _ignore_self, pv, async_lib): # async_lib doesn't have create taxsk @@ -61,13 +63,4 @@ async def __startup(self, _ignore_self, pv, async_lib): pass async def __publish(self, pv): - # TODO(robnagler) should values be triggered on each _read() - # event? there's caching in caproto so that makes it difficult. - # acquire triggers images which would come back with a delay of - # say .1 so we could check the results. Delay has to be slow enough - # so that we don't lose updates in testing - pkdp("{}", pv.name) - for _ in range(10): - await asyncio.sleep(pv.value) - await pv.write(2 * pv.value) - pkdp("value={}", pv.value) + pass diff --git a/tests/device_screen_data/base.yaml b/tests/device_screen_data/base.yaml index ff2bbb0..dca6d47 100644 --- a/tests/device_screen_data/base.yaml +++ b/tests/device_screen_data/base.yaml @@ -1,17 +1,20 @@ --- -"OTRS:HTR:330:Image:ArrayData": - delay: 2 - values: - - 1 - - 2 -"OTRS:HTR:330:Image:ArraySize1_RBV": 64 -"OTRS:HTR:330:Image:ArraySize0_RBV": 64 -"OTRS:HTR:330:PNEUMATIC": +"YAGS:IN20:351:Acquire": + value: 0 triggers: - - pv: "OTRS:HTR:330:TGT_STS" - delay: 2 + - pv: "YAGS:IN20:351:IMAGE" + delay: .2 value_map: + 0: [0, 0, 0, 0] + 1: [0, 1, 2, 3] +"YAGS:IN20:351:IMAGE": [0, 0, 0, 0] +"YAGS:IN20:351:N_OF_ROW": 2 +"YAGS:IN20:351:N_OF_COL": 2 +"YAGS:IN20:351:PNEUMATIC": + triggers: + - pv: "YAGS:IN20:351:TGT_STS" + delay: 1 + value_map: + 0: 1 1: 2 - 2: 0 -"OTRS:HTR:330:TGT_STS": 0 -"OTRS:HTR:330:Acquire": 0 +"YAGS:IN20:351:TGT_STS": 1 diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 78d65ba..1bd96d1 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -6,6 +6,7 @@ def test_target(): + from pykern.pkcollections import PKDict from pykern import pkdebug, pkunit from slicops import device_screen, unit_util import queue, time @@ -27,7 +28,11 @@ def on_screen_device_update(self, **kwargs): h = _Handler() try: d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) - v = h.event_q.get(timeout=0.5) + v = h.event_q.get(timeout=1) + pkdebug.pkdp(v) + v = h.event_q.get(timeout=1) + pkdebug.pkdp(v) + v = h.event_q.get(timeout=1) pkdebug.pkdp(v) # pkunit.pkeq(1, d.accessor("target_status").get()) # d.move_target(want_in=True) @@ -42,6 +47,7 @@ def on_screen_device_update(self, **kwargs): # pkunit.pkeq(1, a.get()) return except queue.Empty: + pkdebug.pkdp(time.time()) pass finally: if d: From e65ed0160719eaf0ed239a04ccc68458aea80365 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Sun, 3 Aug 2025 22:45:14 +0000 Subject: [PATCH 29/51] try CAThread but fails every few times. pretty much same --- slicops/device_screen.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index f583059..9794eb6 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -156,7 +156,9 @@ def __init__(self): self.destroyed = False self.__lock = threading.Lock() self.__actions = queue.Queue() - self.__thread = threading.Thread(target=self._loop, daemon=True) + from epics import ca + + self.__thread = ca.CAThread(target=self._loop, daemon=True) if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): raise AssertionError( f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout" From 8469a323052709a588a4106bb6f63e3219eef243 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Mon, 4 Aug 2025 00:06:19 +0000 Subject: [PATCH 30/51] defer initialization of device pv so all callbacks can be caught; mock_epics updated and device_test passes --- slicops/device.py | 101 ++++++++++++++++++++++----------------- slicops/device_screen.py | 4 +- slicops/mock_epics.py | 14 +++++- 3 files changed, 70 insertions(+), 49 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index 7c4a49c..dfa59b4 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -10,6 +10,9 @@ import slicops.device_db import threading +# TODO(robnagler) configure via device_db +_TIMEOUT = 5 + class AccessorPutError(RuntimeError): """The PV for this accessor is not writable""" @@ -110,16 +113,10 @@ def __init__(self, device, accessor_name): self._callback = None self._destroyed = False self._lock = threading.Lock() - # TODO(pjm): connection and PV timeouts need to be configurable? - self._pv = epics.PV( - self.meta.pv_name, - connection_callback=self._on_connection, - connection_timeout=4.0, - ) - if accessor_name == "image": - # TODO(robnagler) this has to be done here, because you can't get pvs - # from within a monitor callback - self._image_shape = (self.device.get("n_row"), self.device.get("n_col")) + self._initialized = threading.Event() + self._initializing = False + # Defer initialization + self._pv = None def destroy(self): """Stop all monitoring and disconnect from PV""" @@ -129,8 +126,12 @@ def destroy(self): if self._destroyed: return self._destroyed = True - p = self._pv + self._initializing = False self._callback = None + if (p := self._pv) is None: + return + self._pv = None + self._initialized.set() try: # Clears all callbacks p.disconnect() @@ -143,11 +144,10 @@ def get(self): Returns: object: the value from the PV converted to a Python type """ - self._assert_destroyed() - # TODO(pjm): connection and PV timeouts need to be configurable? - if (rv := self._pv.get(timeout=5.0)) is None: + p = self.__pv() + if (rv := p.get(timeout=_TIMEOUT)) is None: raise DeviceError(f"unable to get {self}") - if not self._pv.connected: + if not p.connected: raise DeviceError(f"disconnected {self}") return self._fixup_value(rv) @@ -166,24 +166,13 @@ def monitor(self, callback): callback (callable): accepts a single `PKDict` as ag """ with self._lock: - self._assert_destroyed() + self._assert_not_destroyed() if self._callback: - raise ValueError(f"already monitoring {self}") - v = self._on_value - p = self._pv - # Sanity check below. Callers should protect against race conditions - c = self._callback = PKDict(op=callback) - # These calls may block so can't call _lock - i = p.add_callback(v) - p.auto_monitor = True - with self._lock: - if self._destroyed or self._callback is None: - # destroy/monitor_stop inside the callback caused by add_callback - return - if c is not self._callback: - # Otherwise the index will be wrong. - raise AssertionError(f"overlapping calls monitor {self}") - self._callback_index = i + raise AssertionError("may only call monitor once") + if self._pv or self._initializing: + raise AssertionError("monitor must be called before get/put") + self._callback = callback + self.__pv() def monitor_stop(self): """Stops monitoring PV""" @@ -191,11 +180,6 @@ def monitor_stop(self): if self._destroyed or not self._callback: return self._callback = None - i = self._callback_index - self._callback_index = None - self._pv.auto_monitor = False - self._pv.remove_callback(i) - self._callback_index = None def put(self, value): """Set PV to value @@ -203,7 +187,6 @@ def put(self, value): Args: value (object): Value to write to PV """ - self._assert_destroyed() if not self.meta.pv_writable: raise AccessorPutError(f"read-only {self}") if self.meta.py_type == bool: @@ -213,12 +196,13 @@ def put(self, value): else: raise AccessorPutError(f"unhandled py_type={self.meta.py_type} {self}") # ECA_NORMAL == 0 and None is normal, too, apparently - if (e := self._pv.put(v)) != 1: + p = self.__pv() + if (e := p.put(v)) != 1: raise DeviceError(f"put error={e} value={v} {self}") - if not self._pv.connected: + if not p.connected: raise DeviceError(f"disconnected {self}") - def _assert_destroyed(self): + def _assert_not_destroyed(self): if self._destroyed: raise AssertionError(f"destroyed {self}") @@ -228,7 +212,7 @@ def _reshape(image): if self.meta.py_type == bool: return bool(raw) - if self.meta.accessor_name == "image": + if self.accessor_name == "image": return _reshape(raw) return raw @@ -258,12 +242,41 @@ def _on_value(self, **kwargs): pkdlog("error={} {} stack={}", e, self, pkdexc()) raise + def __pv(self): + with self._lock: + self._assert_not_destroyed() + if self._pv: + return self._pv + if not (i := self._initializing): + self._initializing = True + if i: + self._initialized.wait(timeout=_TIMEOUT) + else: + k = ( + PKDict(callback=self._on_value, auto_monitor=True) + if self._callback + else PKDict() + ) + if self.accessor_name == "image": + # TODO(robnagler) this has to be done here, because you can't get pvs + # from within a monitor callback. + # TODO(robnagler) need a better way of dealing with this + self._image_shape = (self.device.get("n_row"), self.device.get("n_col")) + self._pv = epics.PV( + self.meta.pv_name, + connection_callback=self._on_connection, + connection_timeout=_TIMEOUT, + **k, + ) + self._initialized.set() + return self._pv + def __repr__(self): - return f"<_Accessor {self.device.device_name}.{self.meta.accessor_name} {self.meta.pv_name}>" + return f"<_Accessor {self.device.device_name}.{self.accessor_name} {self.meta.pv_name}>" def _run_callback(self, **kwargs): k = PKDict(accessor=self, **kwargs) with self._lock: c = self._callback if c: - c.op(k) + c(k) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 9794eb6..f583059 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -156,9 +156,7 @@ def __init__(self): self.destroyed = False self.__lock = threading.Lock() self.__actions = queue.Queue() - from epics import ca - - self.__thread = ca.CAThread(target=self._loop, daemon=True) + self.__thread = threading.Thread(target=self._loop, daemon=True) if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): raise AssertionError( f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout" diff --git a/slicops/mock_epics.py b/slicops/mock_epics.py index d6081c3..b19a432 100644 --- a/slicops/mock_epics.py +++ b/slicops/mock_epics.py @@ -28,16 +28,26 @@ class PV: _CB_INDEX = 1 - def __init__(self, name, connection_timeout=0, connection_callback=None): + def __init__( + self, + name, + connection_timeout=0, + callback=None, + auto_monitor=False, + connection_callback=None, + ): if name in _PV: raise AssertionError(f"already exists PV={name}") self.pvname = name self.connected = True self.connection_callback = connection_callback self.monitor_callback = None - self._auto_monitor = False self._monitor_queue = None + self._auto_monitor = False _PV[name] = self + if callback: + self.add_callback(callback) + self.auto_monitor = auto_monitor def disconnect(self): self._auto_monitor = False From 448c0a96c5048cb331043c3c3d5ca7f7e2d84bea Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Mon, 4 Aug 2025 00:07:42 +0000 Subject: [PATCH 31/51] remove pkdp --- slicops/pkcli/mock_ioc.py | 1 - slicops/ui_api.py | 1 - tests/device_screen_test.py | 4 ---- 3 files changed, 6 deletions(-) diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/mock_ioc.py index 377d8eb..aea105d 100644 --- a/slicops/pkcli/mock_ioc.py +++ b/slicops/pkcli/mock_ioc.py @@ -52,7 +52,6 @@ def __init__(self, config, *args, **kwargs): super().__init__(*args, **kwargs) async def xgroup_write(self, instance, value): - pkdp((instance, value)) return async def __startup(self, _ignore_self, pv, async_lib): diff --git a/slicops/ui_api.py b/slicops/ui_api.py index 35e57e0..cbd40fd 100644 --- a/slicops/ui_api.py +++ b/slicops/ui_api.py @@ -46,7 +46,6 @@ async def api_ui_ctx_update(self, api_args): return None if isinstance(r, Exception): raise r - pkdp(getattr(self, "subscription", None)) self.subscription.result_put(r) finally: if "session" in self: diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 1bd96d1..5b48754 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -29,11 +29,8 @@ def on_screen_device_update(self, **kwargs): try: d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) v = h.event_q.get(timeout=1) - pkdebug.pkdp(v) v = h.event_q.get(timeout=1) - pkdebug.pkdp(v) v = h.event_q.get(timeout=1) - pkdebug.pkdp(v) # pkunit.pkeq(1, d.accessor("target_status").get()) # d.move_target(want_in=True) # pkunit.pkeq(2, d.accessor("target_status").get()) @@ -47,7 +44,6 @@ def on_screen_device_update(self, **kwargs): # pkunit.pkeq(1, a.get()) return except queue.Empty: - pkdebug.pkdp(time.time()) pass finally: if d: From 999c66750ce3139cb7a3205bccec21f83c655ec7 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Wed, 6 Aug 2025 00:06:34 +0000 Subject: [PATCH 32/51] device_screen_test passes with separate queues --- tests/device_screen_test.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 5b48754..eb7ead1 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -4,6 +4,8 @@ :license: http://github.com/slaclab/slicops/LICENSE """ +_ACCESSORS = ("acquire", "image", "target_status") + def test_target(): from pykern.pkcollections import PKDict @@ -14,23 +16,24 @@ def test_target(): class _Handler(device_screen.EventHandler): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - self.event_q = queue.Queue() + self.q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) def on_screen_device_error(self, **kwargs): - self.event_q.put_nowait(PKDict(kwargs)) + pkdebug.pkdp(kwargs) + self.q.error.put_nowait(PKDict(kwargs)) def on_screen_device_update(self, **kwargs): - self.event_q.put_nowait(PKDict(kwargs)) + self.q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) with unit_util.start_mock_ioc(pkunit.data_dir()): d = None h = _Handler() + a = None try: d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) - v = h.event_q.get(timeout=1) - v = h.event_q.get(timeout=1) - v = h.event_q.get(timeout=1) + for a in _ACCESSORS: + h.q[a].get(timeout=2) # pkunit.pkeq(1, d.accessor("target_status").get()) # d.move_target(want_in=True) # pkunit.pkeq(2, d.accessor("target_status").get()) @@ -48,4 +51,4 @@ def on_screen_device_update(self, **kwargs): finally: if d: d.destroy() - pkunit.pkfail(f"timeout waiting on event_q") + pkunit.pkfail(f"timeout waiting on q.{a}") From 913b4d9839989ad387cba41790a2d16b71c7f483 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Thu, 7 Aug 2025 00:05:20 +0000 Subject: [PATCH 33/51] rename mock_ioc to ioc --- slicops/pkcli/{mock_ioc.py => ioc.py} | 0 slicops/sliclet/yaml_db.py | 1 + slicops/unit_util.py | 6 +++--- tests/device_screen_test.py | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) rename slicops/pkcli/{mock_ioc.py => ioc.py} (100%) diff --git a/slicops/pkcli/mock_ioc.py b/slicops/pkcli/ioc.py similarity index 100% rename from slicops/pkcli/mock_ioc.py rename to slicops/pkcli/ioc.py diff --git a/slicops/sliclet/yaml_db.py b/slicops/sliclet/yaml_db.py index 1f03780..e4febf8 100644 --- a/slicops/sliclet/yaml_db.py +++ b/slicops/sliclet/yaml_db.py @@ -148,6 +148,7 @@ def on_any_event(self, event): if event.event_type in _EVENT_TYPES and ( event.src_path in self.__paths or event.dest_path in self.__paths ): + pkdp(event.event_type) self.__update_op() def destroy(self): diff --git a/slicops/unit_util.py b/slicops/unit_util.py index 3e85bfc..d5b6e25 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -11,7 +11,7 @@ @contextlib.contextmanager -def start_mock_ioc(config_dir): +def start_ioc(config_dir): from pykern import pkdebug from pykern.pkcollections import PKDict import os, signal, time @@ -19,9 +19,9 @@ def start_mock_ioc(config_dir): p = os.fork() if p == 0: try: - from slicops.pkcli import mock_ioc + from slicops.pkcli import ioc - mock_ioc.run(config_dir) + ioc.run(config_dir) except Exception as e: pkdebug.pkdlog("server exception={} stack={}", e, pkdebug.pkdexc()) finally: diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index eb7ead1..7bf5fb9 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -25,7 +25,7 @@ def on_screen_device_error(self, **kwargs): def on_screen_device_update(self, **kwargs): self.q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) - with unit_util.start_mock_ioc(pkunit.data_dir()): + with unit_util.start_ioc(pkunit.data_dir()): d = None h = _Handler() From 0c410be86c7e145a69d4fed2d48d3583b0990dcf Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Thu, 7 Aug 2025 00:19:13 +0000 Subject: [PATCH 34/51] ckp: trying to put in target --- slicops/device_screen.py | 25 ++++++++++++------------- slicops/pkcli/ioc.py | 5 +++-- tests/device_screen_test.py | 5 ++++- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index f583059..fd6d654 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -42,7 +42,9 @@ def destroy(self): super().destroy() def move_target(self, want_in): - self.__worker.req_action(self.action_req_move_target, PKDict(want_in=want_in)) + self.__worker.req_action( + self.__worker.action_req_move_target, PKDict(want_in=want_in) + ) class ErrorKind(enum.Enum): @@ -120,10 +122,10 @@ def _event_move_target( error_kind="fsm", error_msg="target already moving" ) return - if target_status is not None: - if self.want_in == target_status: - # TODO(robnagler) could be a race condition so probably fine to do nothing - return + if target_status is not None and arg.want_in == target_status: + # TODO(robnagler) could be a race condition so probably fine to do nothing + pkdlog("same target_status={} self.want_in={}", target_status, arg.want_in) + return # TODO(robnagler) allow moving without checking upstream rv = PKDict(move_target_arg=arg.want_in) if arg.want_in and upstream_problems is None or upstream_problems: @@ -177,9 +179,6 @@ def destroy(self): except Exception as e: pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) - def _destroy(self): - pass - def _loop(self): timeout_kwarg = PKDict() if self._loop_timeout_secs: @@ -211,7 +210,7 @@ class _Upstream(_Thread): def __init__(self, worker, req_arg): def _names(): return slicops.device_db.upstream_devices( - "PROF", "target_control", parent.beam_path, parent.device_name + "PROF", "target_control", worker.beam_path, worker.device.device_name ) self.__worker = worker @@ -264,8 +263,8 @@ class _Worker(_Thread): """Implements actions of DeviceScreen""" def __init__(self, beam_path, handler, device): - self.__beam_path = beam_path - self.__device = device + self.beam_path = beam_path + self.device = device self.__upstream = None self.__status = None self.__fsm = _FSM(self, handler) @@ -311,11 +310,11 @@ def __handle_monitor(self, change): def _loop(self, *args, **kwargs): for a in "acquire", "image", "target_status": - self.__device.accessor(a).monitor(self.__handle_monitor) + self.device.accessor(a).monitor(self.__handle_monitor) super()._loop(*args, **kwargs) def _repr(self): - return f"device={self.__device.device_name}" + return f"device={self.device.device_name}" _cfg = pykern.pkconfig.init( diff --git a/slicops/pkcli/ioc.py b/slicops/pkcli/ioc.py index aea105d..ab612e5 100644 --- a/slicops/pkcli/ioc.py +++ b/slicops/pkcli/ioc.py @@ -51,8 +51,9 @@ def __init__(self, config, *args, **kwargs): p.__set_name__(self, k) super().__init__(*args, **kwargs) - async def xgroup_write(self, instance, value): - return + async def group_write(self, instance, value, **kwargs): + pkdp((instance, value)) + return super().group_write(instance, value, **kwargs) async def __startup(self, _ignore_self, pv, async_lib): # async_lib doesn't have create taxsk diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 7bf5fb9..5ed5812 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -34,8 +34,11 @@ def on_screen_device_update(self, **kwargs): d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) for a in _ACCESSORS: h.q[a].get(timeout=2) + d.move_target(want_in=True) + time.sleep(3) + assert 0 # pkunit.pkeq(1, d.accessor("target_status").get()) - # d.move_target(want_in=True) + # # pkunit.pkeq(2, d.accessor("target_status").get()) # d.remove_target() # pkunit.pkeq(1, d.accessor("target_status").get()) From 6968042023e01acb93159dfe1726072cc6046120 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:04:45 +0000 Subject: [PATCH 35/51] put is seen in group_write --- slicops/device.py | 2 +- slicops/device_screen.py | 33 ++++++++++++++++++------------ tests/device_screen_data/base.yaml | 2 ++ tests/device_screen_test.py | 4 ++-- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index dfa59b4..e23a170 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -263,7 +263,7 @@ def __pv(self): # TODO(robnagler) need a better way of dealing with this self._image_shape = (self.device.get("n_row"), self.device.get("n_col")) self._pv = epics.PV( - self.meta.pv_name, + pkdp(self.meta.pv_name), connection_callback=self._on_connection, connection_timeout=_TIMEOUT, **k, diff --git a/slicops/device_screen.py b/slicops/device_screen.py index fd6d654..a71bab8 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -79,8 +79,10 @@ def __init__(self, worker, handler): def event(self, name, arg): self.prev = self.curr.copy() + pkdp((name, arg)) if u := getattr(self, f"_event_{name}")(arg, **self.curr): self.curr.update(u) + pkdp(u) def _event_handle_monitor(self, arg, **kwargs): n = arg.accessor.accessor_name @@ -127,14 +129,14 @@ def _event_move_target( pkdlog("same target_status={} self.want_in={}", target_status, arg.want_in) return # TODO(robnagler) allow moving without checking upstream - rv = PKDict(move_target_arg=arg.want_in) + rv = PKDict(move_target_arg=arg) if arg.want_in and upstream_problems is None or upstream_problems: # Recheck the upstream self.worker.action(self.worker.action_check_upstream, None) rv.check_upstream = True return rv - def _event_upstream_status(self, arg, **kwargs): + def _event_upstream_status(self, arg, move_target_arg, **kwargs): rv = PKDict(check_upstream=False, upstream_problems=arg.problems) if arg.problems: self.handler.on_screen_device_error( @@ -207,14 +209,13 @@ def _destroyed(): class _Upstream(_Thread): - def __init__(self, worker, req_arg): + def __init__(self, worker): def _names(): return slicops.device_db.upstream_devices( "PROF", "target_control", worker.beam_path, worker.device.device_name ) self.__worker = worker - self.__callback_arg = req_arg self.__problems = PKDict() self.__devices = PKDict({u: slicops.device.Device(u) for u in _names()}) self._loop_timeout_secs = _cfg.upstream_timeout_secs @@ -243,12 +244,15 @@ def _destroy(self): x.destroy() def __done(self): - self.req_arg.problems = self.__problems - self.__worker.action(self.__worker.action_upstream_status, self.__req_arg) + self.__worker.action( + self.__worker.action_upstream_status, PKDict(problems=self.__problems) + ) return self._LOOP_END - def __handle_status(self, **kwargs): - self.action(self.action_handle_status, PKDict(kwargs)) + def __handle_status(self, kwargs): + if "connected" in kwargs: + return + self.action(self.action_handle_status, kwargs) def _loop(self, *args, **kwargs): for d in self.__devices.values(): @@ -268,11 +272,12 @@ def __init__(self, beam_path, handler, device): self.__upstream = None self.__status = None self.__fsm = _FSM(self, handler) + self.__target_control = None self._loop_timeout_secs = 0 super().__init__() def action_check_upstream(self, arg): - self.__upstream = _Upstream(self, arg) + self.__upstream = _Upstream(self) return None def action_handle_monitor(self, arg): @@ -280,17 +285,19 @@ def action_handle_monitor(self, arg): return None def action_move_target(self, arg): - if self.__target_control: - self.__target_control = self.accessor("target_control") - self.__target_control.put(_MOVE_TARGET_IN[arg.want_in]) + pkdp(arg) + if not self.__target_control: + self.__target_control = self.device.accessor("target_control") + self.__target_control.put(pkdp(_MOVE_TARGET_IN[arg.want_in])) return None def action_req_move_target(self, arg): + pkdp(arg) self.__fsm.event("move_target", arg) return None def action_upstream_status(self, arg): - self.__fsm.event("upstream_status", arg.problems) + self.__fsm.event("upstream_status", arg) self.__upstream = None return None diff --git a/tests/device_screen_data/base.yaml b/tests/device_screen_data/base.yaml index dca6d47..50e5508 100644 --- a/tests/device_screen_data/base.yaml +++ b/tests/device_screen_data/base.yaml @@ -18,3 +18,5 @@ 0: 1 1: 2 "YAGS:IN20:351:TGT_STS": 1 +"YAGS:IN20:211:TGT_STS": 1 +"YAGS:IN20:241:TGT_STS": 1 diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index 5ed5812..d6cc0ad 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -33,9 +33,9 @@ def on_screen_device_update(self, **kwargs): try: d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) for a in _ACCESSORS: - h.q[a].get(timeout=2) + h.q[a].get(timeout=0.2) d.move_target(want_in=True) - time.sleep(3) + pkunit.pkok(h.q.target_status.get(timeout=0.2)) assert 0 # pkunit.pkeq(1, d.accessor("target_status").get()) # From 03ca141c3ae3bd694dfce4ddac110bf30b4937f4 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Thu, 7 Aug 2025 22:27:24 +0000 Subject: [PATCH 36/51] ckp --- slicops/device.py | 2 +- slicops/device_screen.py | 4 +++- slicops/pkcli/ioc.py | 18 ++++++++++++------ tests/device_screen_data/base.yaml | 20 ++++++++------------ tests/device_screen_test.py | 13 +++++++------ 5 files changed, 31 insertions(+), 26 deletions(-) diff --git a/slicops/device.py b/slicops/device.py index e23a170..dfa59b4 100644 --- a/slicops/device.py +++ b/slicops/device.py @@ -263,7 +263,7 @@ def __pv(self): # TODO(robnagler) need a better way of dealing with this self._image_shape = (self.device.get("n_row"), self.device.get("n_col")) self._pv = epics.PV( - pkdp(self.meta.pv_name), + self.meta.pv_name, connection_callback=self._on_connection, connection_timeout=_TIMEOUT, **k, diff --git a/slicops/device_screen.py b/slicops/device_screen.py index a71bab8..9533460 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -82,6 +82,7 @@ def event(self, name, arg): pkdp((name, arg)) if u := getattr(self, f"_event_{name}")(arg, **self.curr): self.curr.update(u) + pkdp(self.curr) pkdp(u) def _event_handle_monitor(self, arg, **kwargs): @@ -103,8 +104,9 @@ def _event_handle_monitor(self, arg, **kwargs): v = arg.value rv = PKDict(acquire=arg.value) elif n == "target_status": + pkdp(arg.value) v = _STATUS_IN == arg.value - rv = PKDict(move_target_arg=None, target_status=v) + rv = pkdp(PKDict(move_target_arg=None, target_status=v)) else: raise AssertionError(f"unsupported accessor={n} {self}") self.handler.on_screen_device_update(accessor_name=n, value=v) diff --git a/slicops/pkcli/ioc.py b/slicops/pkcli/ioc.py index ab612e5..5372a01 100644 --- a/slicops/pkcli/ioc.py +++ b/slicops/pkcli/ioc.py @@ -5,7 +5,7 @@ """ from pykern.pkcollections import PKDict -from pykern.pkdebug import pkdc, pkdlog, pkdp +from pykern.pkdebug import pkdc, pkdlog, pkdp, pkdexc import asyncio import caproto.server import pykern.fconf @@ -17,9 +17,7 @@ def _normalize(raw): for k, v in raw.items(): if not isinstance(v, dict): v = PKDict(value=v) - v.pksetdefault(delay=1, value=None) - for t in v.get("triggers", []): - t.pksetdefault(delay=1) + v.pksetdefault(delay=1, value=None, dispatch=PKDict) yield k, v def _pvgroup(config): @@ -52,8 +50,16 @@ def __init__(self, config, *args, **kwargs): super().__init__(*args, **kwargs) async def group_write(self, instance, value, **kwargs): - pkdp((instance, value)) - return super().group_write(instance, value, **kwargs) + try: + if c := self.__config.get(instance.pvname): + for k, v in c.dispatch.items(): + await self.pvdb[k].write(v[value]) + return await super().group_write(instance, value, **kwargs) + except Exception as e: + pkdlog( + "error={} pv={} value={} stack={}", e, instance.name, value, pkdexc() + ) + raise async def __startup(self, _ignore_self, pv, async_lib): # async_lib doesn't have create taxsk diff --git a/tests/device_screen_data/base.yaml b/tests/device_screen_data/base.yaml index 50e5508..617fbc8 100644 --- a/tests/device_screen_data/base.yaml +++ b/tests/device_screen_data/base.yaml @@ -1,22 +1,18 @@ --- "YAGS:IN20:351:Acquire": value: 0 - triggers: - - pv: "YAGS:IN20:351:IMAGE" - delay: .2 - value_map: - 0: [0, 0, 0, 0] - 1: [0, 1, 2, 3] + dispatch: + "YAGS:IN20:351:IMAGE": + 0: [0, 0, 0, 0] + 1: [0, 1, 2, 3] "YAGS:IN20:351:IMAGE": [0, 0, 0, 0] "YAGS:IN20:351:N_OF_ROW": 2 "YAGS:IN20:351:N_OF_COL": 2 "YAGS:IN20:351:PNEUMATIC": - triggers: - - pv: "YAGS:IN20:351:TGT_STS" - delay: 1 - value_map: - 0: 1 - 1: 2 + dispatch: + "YAGS:IN20:351:TGT_STS": + 0: 1 + 1: 2 "YAGS:IN20:351:TGT_STS": 1 "YAGS:IN20:211:TGT_STS": 1 "YAGS:IN20:241:TGT_STS": 1 diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py index d6cc0ad..b262a45 100644 --- a/tests/device_screen_test.py +++ b/tests/device_screen_test.py @@ -35,12 +35,13 @@ def on_screen_device_update(self, **kwargs): for a in _ACCESSORS: h.q[a].get(timeout=0.2) d.move_target(want_in=True) - pkunit.pkok(h.q.target_status.get(timeout=0.2)) - assert 0 - # pkunit.pkeq(1, d.accessor("target_status").get()) - # - # pkunit.pkeq(2, d.accessor("target_status").get()) - # d.remove_target() + pkunit.pkok( + h.q.target_status.get(timeout=0.2), "target_status should be true" + ) + d.move_target(want_in=False) + pkunit.pkok( + not h.q.target_status.get(timeout=0.2), "target_status should be false" + ) # pkunit.pkeq(1, d.accessor("target_status").get()) # u = device_db.upstream_devices("PROF", "target_control", "CU_HXR", "YAG03") # pkunit.pkeq(list(u.keys()), ["YAG01", "YAG02"]) From 4d1a1b5b63cf3138559d1100c3c533a254d87a65 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Thu, 7 Aug 2025 23:24:35 +0000 Subject: [PATCH 37/51] basically sort of working --- slicops/device_screen.py | 10 +---- slicops/sliclet/screen.py | 81 +++++++++++++++--------------------- slicops/sliclet/yaml_db.py | 4 -- slicops/unit_util.py | 12 ++++-- tests/sliclet/screen_test.py | 6 +-- 5 files changed, 46 insertions(+), 67 deletions(-) diff --git a/slicops/device_screen.py b/slicops/device_screen.py index 9533460..caa691e 100644 --- a/slicops/device_screen.py +++ b/slicops/device_screen.py @@ -79,11 +79,8 @@ def __init__(self, worker, handler): def event(self, name, arg): self.prev = self.curr.copy() - pkdp((name, arg)) if u := getattr(self, f"_event_{name}")(arg, **self.curr): self.curr.update(u) - pkdp(self.curr) - pkdp(u) def _event_handle_monitor(self, arg, **kwargs): n = arg.accessor.accessor_name @@ -104,9 +101,8 @@ def _event_handle_monitor(self, arg, **kwargs): v = arg.value rv = PKDict(acquire=arg.value) elif n == "target_status": - pkdp(arg.value) v = _STATUS_IN == arg.value - rv = pkdp(PKDict(move_target_arg=None, target_status=v)) + rv = PKDict(move_target_arg=None, target_status=v) else: raise AssertionError(f"unsupported accessor={n} {self}") self.handler.on_screen_device_update(accessor_name=n, value=v) @@ -287,14 +283,12 @@ def action_handle_monitor(self, arg): return None def action_move_target(self, arg): - pkdp(arg) if not self.__target_control: self.__target_control = self.device.accessor("target_control") - self.__target_control.put(pkdp(_MOVE_TARGET_IN[arg.want_in])) + self.__target_control.put(_MOVE_TARGET_IN[arg.want_in]) return None def action_req_move_target(self, arg): - pkdp(arg) self.__fsm.event("move_target", arg) return None diff --git a/slicops/sliclet/screen.py b/slicops/sliclet/screen.py index d93ad12..f8e7cd5 100644 --- a/slicops/sliclet/screen.py +++ b/slicops/sliclet/screen.py @@ -79,15 +79,6 @@ def on_click_single_button(self, txn, **kwargs): def on_click_start_button(self, txn, **kwargs): self.__set_acquire(txn, True) - def on_change_target(self, txn, value, **kwargs): - self.__device.target_move(want_in=value, self.__target_moved) - - def on_click_filter_in(self, txn, **kwargs): - pass - - def on_click_filter_out(self, txn, **kwargs): - pass - def on_click_stop_button(self, txn, **kwargs): self.__set_acquire(txn, False) @@ -98,8 +89,6 @@ def handle_init(self, txn): txn.multi_set(("beam_path.constraints.choices", slicops.device_db.beam_paths())) self.__beam_path_change(txn, None) self.__device_change(txn, None) - - def handle_start(self, txn): b = c = None if pykern.pkconfig.in_dev_mode(): b = _cfg.dev.beam_path @@ -109,7 +98,9 @@ def handle_start(self, txn): txn.field_set("beam_path", b) self.__beam_path_change(txn, b) txn.field_set("camera", c) - self.__device_change(txn, c) + + def handle_start(self, txn): + self.__device_setup(txn, txn.field_get("camera")) def __beam_path_change(self, txn, value): def _choices(): @@ -140,37 +131,10 @@ def _choices(): self.__device_change(txn, None) def __device_change(self, txn, camera): - def _monitors(): - for n, h in ( - ("image", self.__handle_image), - ("acquire", self.__handle_acquire), - ): - a = self.__device.accessor(n) - m = self.__monitors[n] = _Monitor(a, h) - a.monitor(m) - - def _setup(): - try: - # If there's an epics issues, we have to clear the device - self.__device = self.__device = slicops.device.Device(camera) - _monitors() - except slicops.device.DeviceError as e: - pkdlog( - "error={} setting up {}, clearing; stack={}", e, camera, pkdexc() - ) - self.__device_destroy(txn) - self.__user_alert( - txn, "unable to connect to camera={} error={}", camera, e - ) - return - txn.multi_set( - _DEVICE_ENABLE + (("pv.value", self.__device.meta.pv_prefix),) - ) - self.__device_destroy(txn) txn.multi_set(_DEVICE_DISABLE) if camera: - _setup() + self.__device_setup(txn, camera) def __device_destroy(self, txn=None): if not self.__device: @@ -189,6 +153,27 @@ def __device_destroy(self, txn=None): pkdlog("destroy device={} error={}", n, e) self.__device = None + def __device_setup(self, txn, camera): + def _monitors(): + for n, h in ( + ("image", self.__handle_image), + ("acquire", self.__handle_acquire), + ): + a = self.__device.accessor(n) + m = self.__monitors[n] = _Monitor(a, h) + a.monitor(m) + + try: + # If there's an epics issues, we have to clear the device + self.__device = self.__device = slicops.device.Device(camera) + _monitors() + except slicops.device.DeviceError as e: + pkdlog("error={} setting up {}, clearing; stack={}", e, camera, pkdexc()) + self.__device_destroy(txn) + self.__user_alert(txn, "unable to connect to camera={} error={}", camera, e) + return + txn.multi_set(_DEVICE_ENABLE + (("pv.value", self.__device.meta.pv_prefix),)) + def __handle_acquire(self, acquire): with self.lock_for_update() as txn: n = not acquire @@ -233,14 +218,14 @@ def __set_acquire(self, txn, acquire): ) raise pykern.util.APIError(e) - def __target_moved(self, status): - if status is failed: - display error - if status is out: - disable buttons - if status is in: - enable buttons - + # def __target_moved(self, status): + # if status is failed: + # display error + # if status is out: + # disable buttons + # if status is in: + # enable buttons + # def __update_plot(self, txn): if not self.__device: return False diff --git a/slicops/sliclet/yaml_db.py b/slicops/sliclet/yaml_db.py index 3d213bb..4ae90c7 100644 --- a/slicops/sliclet/yaml_db.py +++ b/slicops/sliclet/yaml_db.py @@ -34,9 +34,6 @@ def handle_destroy(self): def handle_init(self, txn): self.__db_watcher = None - - def handle_start(self, txn): - # TODO(robnagler) need a separate init for the instance before start self.__db_cache = PKDict() if not self.__read_db(txn): self.__write(txn) @@ -149,7 +146,6 @@ def on_any_event(self, event): if event.event_type in _EVENT_TYPES and ( event.src_path in self.__paths or event.dest_path in self.__paths ): - pkdp(event.event_type) self.__update_op() def destroy(self): diff --git a/slicops/unit_util.py b/slicops/unit_util.py index d5b6e25..9322b36 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -9,6 +9,9 @@ import pykern.api.unit_util import contextlib +# TODO(robnagler) configurable? +_TIMEOUT = 2 + @contextlib.contextmanager def start_ioc(config_dir): @@ -35,18 +38,18 @@ def start_ioc(config_dir): class SlicletSetup(pykern.api.unit_util.Setup): def __init__(self, sliclet, *args, **kwargs): + self.__sliclet = sliclet if c := kwargs.get("caproto"): del kwargs["caproto"] + self.__caproto = c super().__init__(*args, **kwargs) - self.__sliclet = sliclet self.__update_q = asyncio.Queue() - self.__caproto = c async def ctx_update(self): from pykern import pkunit self.__caller() - r = await self.__update_q.get() + r = await asyncio.wait_for(self.__update_q.get(), timeout=_TIMEOUT) self.__update_q.task_done() if r is None: pkunit.pkfail("subscription ended unexpectedly") @@ -82,6 +85,7 @@ def _server_config(self, *args, **kwargs): self.__start_caproto() else: from slicops import mock_epics + from pykern import pkdebug mock_epics.reset_state() return super()._server_config(*args, **kwargs) @@ -113,7 +117,7 @@ async def __subscribe(self): "ui_ctx_update", PKDict(sliclet=self.__sliclet) ) as s: while True: - r = await s.result_get() + r = await asyncio.wait_for(s.result_get(), timeout=_TIMEOUT) self.__update_q.put_nowait(r) if r is None: return diff --git a/tests/sliclet/screen_test.py b/tests/sliclet/screen_test.py index f502c50..a118b75 100644 --- a/tests/sliclet/screen_test.py +++ b/tests/sliclet/screen_test.py @@ -15,10 +15,10 @@ async def _buttons(s, expect, msg): from pykern import pkunit, pkdebug rv = await s.ctx_update() - for k, a in zip(("start", "stop", "single"), expect): + for k, e in zip(("start", "stop", "single"), expect): x = f"{k}_button.ui.enabled" pkunit.pkeq( - rv.fields.pkunchecked_nested_get(x), a, "field={} expect={}", x, msg + e, rv.fields.pkunchecked_nested_get(x), "field={} expect={}", x, msg ) return rv @@ -27,11 +27,11 @@ async def _buttons(s, expect, msg): from pykern.pkdebug import pkdc, pkdexc, pkdlog, pkdp import asyncio - r = await s.ctx_update() r = await s.ctx_update() pkunit.pkeq("DEV_BEAM_PATH", r.fields.beam_path.value) pkunit.pkeq("DEV_CAMERA", r.fields.camera.value) await s.ctx_field_set(start_button=None) + assert 0, "rjn timiing issue here" await _buttons(s, (False, False, False), "all disabled after start") await _buttons(s, (False, True, False), "acquire should fire") # plot comes back From 31ff07285e5ab9a76f1ed946600412b287fc4afe Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 15:43:13 +0000 Subject: [PATCH 38/51] fixed screen test to be more stable --- tests/sliclet/screen_test.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tests/sliclet/screen_test.py b/tests/sliclet/screen_test.py index a118b75..f4cb07f 100644 --- a/tests/sliclet/screen_test.py +++ b/tests/sliclet/screen_test.py @@ -6,6 +6,8 @@ import pytest +_BUTTONS = tuple(f"{k}_button.ui.enabled" for k in ("start", "stop", "single")) + @pytest.mark.asyncio(loop_scope="module") async def test_basic(): @@ -13,13 +15,19 @@ async def test_basic(): async def _buttons(s, expect, msg): from pykern import pkunit, pkdebug + from asyncio.exceptions import CancelledError - rv = await s.ctx_update() - for k, e in zip(("start", "stop", "single"), expect): - x = f"{k}_button.ui.enabled" - pkunit.pkeq( - e, rv.fields.pkunchecked_nested_get(x), "field={} expect={}", x, msg - ) + # Wait for buttons to "settle" on expect. The updates + # are async so we can't control which update returns what. + while True: + try: + rv = await s.ctx_update() + except CancelledError: + # timed out so now report mismatch via pkunit + pkunit.pkeq(expect, v, msg) + v = tuple(rv.fields.pknested_get(k) for k in _BUTTONS) + if v == expect: + break return rv async with unit_util.SlicletSetup("screen") as s: @@ -30,8 +38,8 @@ async def _buttons(s, expect, msg): r = await s.ctx_update() pkunit.pkeq("DEV_BEAM_PATH", r.fields.beam_path.value) pkunit.pkeq("DEV_CAMERA", r.fields.camera.value) + await _buttons(s, (True, False, True), "start/single enabled") await s.ctx_field_set(start_button=None) - assert 0, "rjn timiing issue here" await _buttons(s, (False, False, False), "all disabled after start") await _buttons(s, (False, True, False), "acquire should fire") # plot comes back From 3fa291bdb4eaae73d2f4b7e4e6f03f395de56136 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 16:48:56 +0000 Subject: [PATCH 39/51] device.screen rename; insert/remove works --- slicops/{device.py => device/__init__.py} | 0 .../{device_screen.py => device/screen.py} | 142 ++++++++++-------- .../screen_data}/base.yaml | 0 tests/device/screen_test.py | 53 +++++++ tests/device_screen_test.py | 58 ------- 5 files changed, 132 insertions(+), 121 deletions(-) rename slicops/{device.py => device/__init__.py} (100%) rename slicops/{device_screen.py => device/screen.py} (91%) rename tests/{device_screen_data => device/screen_data}/base.yaml (100%) create mode 100644 tests/device/screen_test.py delete mode 100644 tests/device_screen_test.py diff --git a/slicops/device.py b/slicops/device/__init__.py similarity index 100% rename from slicops/device.py rename to slicops/device/__init__.py diff --git a/slicops/device_screen.py b/slicops/device/screen.py similarity index 91% rename from slicops/device_screen.py rename to slicops/device/screen.py index caa691e..afe79d4 100644 --- a/slicops/device_screen.py +++ b/slicops/device/screen.py @@ -26,8 +26,8 @@ _ERROR_PREFIX_MSG = "upstream target error: " -class DeviceScreen(slicops.device.Device): - """Augment Device with screen specific operations""" +class Screen(slicops.device.Device): + """Augment `Device` with screen specific operations""" def __init__(self, beam_path, device_name, handler, *args, **kwargs): super().__init__(device_name, *args, **kwargs) @@ -42,18 +42,26 @@ def destroy(self): super().destroy() def move_target(self, want_in): + """Insert or remove the target + + Args: + want_in (bool): True to insert, and False to remove + """ self.__worker.req_action( self.__worker.action_req_move_target, PKDict(want_in=want_in) ) class ErrorKind(enum.Enum): + """Errors passed to on_screen_device_error""" + fsm = enum.auto() monitor = enum.auto() upstream = enum.auto() class EventHandler: + """Clients of DeviceScreen must implement this""" @abc.abstractmethod def on_screen_device_error(self, accessor_name, error_kind, error_msg): @@ -64,7 +72,66 @@ def on_screen_device_update(self, accessor_name, value): pass +class _ActionLoop: + """Generic thread that processes actions in a loop on request""" + + _LOOP_END = object() + + def __init__(self): + self.destroyed = False + self.__lock = threading.Lock() + self.__actions = queue.Queue() + self.__thread = threading.Thread(target=self._start, daemon=True) + if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): + raise AssertionError( + f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout" + ) + self.__thread.start() + + def action(self, method, arg): + self.__actions.put_nowait((method, arg)) + + def destroy(self): + try: + with self.__lock: + if self.destroyed: + return + self.destroyed = True + self.__actions.put_nowait((None, None)) + self._destroy() + except Exception as e: + pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) + + def __repr__(self): + def _destroyed(): + return " DESTROYED" if self.destroyed else "" + + return f"<{self.__class__.__name__}{_destroyed()} self._repr()>" + + def _start(self): + timeout_kwarg = PKDict() + if self._loop_timeout_secs: + timeout_kwarg.timeout = self._loop_timeout_secs + try: + while True: + try: + m, a = self.__actions.get(**timeout_kwarg) + except queue.Empty: + m, a = self.action_loop_timeout(), None + with self.__lock: + if self.destroyed: + return + if m(a) is self._LOOP_END: + return + except Exception as e: + pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) + finally: + self.destroy() + + class _FSM: + """Finite State Machine for DeviceScreen""" + def __init__(self, worker, handler): self.worker = worker self.handler = handler @@ -132,6 +199,8 @@ def _event_move_target( # Recheck the upstream self.worker.action(self.worker.action_check_upstream, None) rv.check_upstream = True + else: + self.worker.action(self.worker.action_move_target, arg) return rv def _event_upstream_status(self, arg, move_target_arg, **kwargs): @@ -151,62 +220,9 @@ def _states(curr): return f"<_FSM {self.worker.device.device_name} {_states(self.curr)}>" -class _Thread: - _LOOP_END = object() - - def __init__(self): - self.destroyed = False - self.__lock = threading.Lock() - self.__actions = queue.Queue() - self.__thread = threading.Thread(target=self._loop, daemon=True) - if self._loop_timeout_secs > 0 and not hasattr(self, "action_loop_timeout"): - raise AssertionError( - f"_loop_timeout_secs={self._loop_timeout_secs} and not action_loop_timeout" - ) - self.__thread.start() - - def action(self, method, arg): - self.__actions.put_nowait((method, arg)) - - def destroy(self): - try: - with self.__lock: - if self.destroyed: - return - self.destroyed = True - self.__actions.put_nowait((None, None)) - self._destroy() - except Exception as e: - pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) - - def _loop(self): - timeout_kwarg = PKDict() - if self._loop_timeout_secs: - timeout_kwarg.timeout = self._loop_timeout_secs - try: - while True: - try: - m, a = self.__actions.get(**timeout_kwarg) - except queue.Empty: - m, a = self.action_loop_timeout(), None - with self.__lock: - if self.destroyed: - return - if m(a) is self._LOOP_END: - return - except Exception as e: - pkdlog("error={} {} stack={}", e, self, pkdexc(simplify=True)) - finally: - self.destroy() - - def __repr__(self): - def _destroyed(): - return " DESTROYED" if self.destroyed else "" - - return f"<{self.__class__.__name__}{_destroyed()} self._repr()>" - +class _Upstream(_ActionLoop): + """Action loop to check targets of upstream screens""" -class _Upstream(_Thread): def __init__(self, worker): def _names(): return slicops.device_db.upstream_devices( @@ -252,17 +268,17 @@ def __handle_status(self, kwargs): return self.action(self.action_handle_status, kwargs) - def _loop(self, *args, **kwargs): + def _start(self, *args, **kwargs): for d in self.__devices.values(): d.accessor("target_status").monitor(self.__handle_status) - super()._loop(*args, **kwargs) + super()._start(*args, **kwargs) def _repr(self): return f"pending={sorted(self.__devices)} problems={sorted(self.__problems)}" -class _Worker(_Thread): - """Implements actions of DeviceScreen""" +class _Worker(_ActionLoop): + """Action loop for DeviceScreen""" def __init__(self, beam_path, handler, device): self.beam_path = beam_path @@ -311,10 +327,10 @@ def _destroy(self): def __handle_monitor(self, change): self.action(self.action_handle_monitor, change) - def _loop(self, *args, **kwargs): + def _start(self, *args, **kwargs): for a in "acquire", "image", "target_status": self.device.accessor(a).monitor(self.__handle_monitor) - super()._loop(*args, **kwargs) + super()._start(*args, **kwargs) def _repr(self): return f"device={self.device.device_name}" diff --git a/tests/device_screen_data/base.yaml b/tests/device/screen_data/base.yaml similarity index 100% rename from tests/device_screen_data/base.yaml rename to tests/device/screen_data/base.yaml diff --git a/tests/device/screen_test.py b/tests/device/screen_test.py new file mode 100644 index 0000000..6cb88f8 --- /dev/null +++ b/tests/device/screen_test.py @@ -0,0 +1,53 @@ +"""Test slicops.device + +:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + +_ACCESSORS = ("acquire", "image", "target_status") + + +_TIMEOUT = 2 + + +def test_target(): + from pykern.pkcollections import PKDict + from pykern import pkdebug, pkunit + from slicops import unit_util + from slicops.device import screen + import queue, time + + class _Handler(screen.EventHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.event_q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) + + def on_screen_device_error(self, **kwargs): + pkdebug.pkdp(kwargs) + self.event_q.error.put_nowait(PKDict(kwargs)) + + def on_screen_device_update(self, **kwargs): + self.event_q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) + + def test_get(self, event_name): + try: + return self.event_q[event_name].get(timeout=_TIMEOUT).value + except queue.Empty: + pkunit.pkfail("timeout event={}", event_name) + + with unit_util.start_ioc(pkunit.data_dir()): + h = _Handler() + d = screen.Screen("CU_HXR", "YAG03", h) + try: + h.test_get("image") + pkunit.pkeq(False, h.test_get("acquire")) + pkunit.pkeq(False, h.test_get("target_status")) + d.move_target(want_in=True) + pkunit.pkeq(True, h.test_get("target_status")) + d.move_target(want_in=False) + pkunit.pkeq(False, h.test_get("target_status")) + # d.unblock_upstream() + # a = u.get("YAG01").device.accessor("target_status") + # pkunit.pkeq(1, a.get()) + finally: + d.destroy() diff --git a/tests/device_screen_test.py b/tests/device_screen_test.py deleted file mode 100644 index b262a45..0000000 --- a/tests/device_screen_test.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Test slicops.device - -:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. -:license: http://github.com/slaclab/slicops/LICENSE -""" - -_ACCESSORS = ("acquire", "image", "target_status") - - -def test_target(): - from pykern.pkcollections import PKDict - from pykern import pkdebug, pkunit - from slicops import device_screen, unit_util - import queue, time - - class _Handler(device_screen.EventHandler): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) - - def on_screen_device_error(self, **kwargs): - pkdebug.pkdp(kwargs) - self.q.error.put_nowait(PKDict(kwargs)) - - def on_screen_device_update(self, **kwargs): - self.q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) - - with unit_util.start_ioc(pkunit.data_dir()): - - d = None - h = _Handler() - a = None - try: - d = device_screen.DeviceScreen("CU_HXR", "YAG03", h) - for a in _ACCESSORS: - h.q[a].get(timeout=0.2) - d.move_target(want_in=True) - pkunit.pkok( - h.q.target_status.get(timeout=0.2), "target_status should be true" - ) - d.move_target(want_in=False) - pkunit.pkok( - not h.q.target_status.get(timeout=0.2), "target_status should be false" - ) - # pkunit.pkeq(1, d.accessor("target_status").get()) - # u = device_db.upstream_devices("PROF", "target_control", "CU_HXR", "YAG03") - # pkunit.pkeq(list(u.keys()), ["YAG01", "YAG02"]) - # pkunit.pkeq(d.blocking_devices(), {"YAG01"}) - # d.unblock_upstream() - # a = u.get("YAG01").device.accessor("target_status") - # pkunit.pkeq(1, a.get()) - return - except queue.Empty: - pass - finally: - if d: - d.destroy() - pkunit.pkfail(f"timeout waiting on q.{a}") From ff184f3caf1b8f06619d796ceab141e1672a45bb Mon Sep 17 00:00:00 2001 From: Paul Moeller Date: Fri, 8 Aug 2025 17:29:10 +0000 Subject: [PATCH 40/51] added slicops package_path for use with sql db --- slicops/config.py | 5 +++++ slicops/device_sql_db.py | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/slicops/config.py b/slicops/config.py index ce5a13d..27abe8b 100644 --- a/slicops/config.py +++ b/slicops/config.py @@ -39,5 +39,10 @@ def cfg(): tcp_port=(8000, pykern.pkasyncio.cfg_port, "port of server"), vue_port=(8008, pykern.pkasyncio.cfg_port, "port of Vue dev server"), ), + package_path=( + tuple(["slicops"]), + tuple, + "Names of root packages that should be checked for codes and resources. Order is important, the first package with a matching code/resource will be used.", + ), ) return _cfg diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index 06768f0..7385f48 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -8,8 +8,9 @@ from pykern.pkcollections import PKDict from pykern.pkdebug import pkdc, pkdlog, pkdp -import pykern.sql_db import pykern.pkresource +import pykern.sql_db +import slicops.config import sqlalchemy _BASE_PATH = "device_db.sqlite3" @@ -210,7 +211,7 @@ def _init(): def _path(): - return pykern.pkresource.file_path(".").join(_BASE_PATH) + return pykern.pkresource.file_path(".", packages=slicops.config.cfg().package_path).join(_BASE_PATH) def _session(): From 1b55c47c32359d35a53475e5c485d350f0e32675 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 20:38:24 +0000 Subject: [PATCH 41/51] ioc writing to yaml works --- slicops/device_db.py | 2 + slicops/pkcli/ioc.py | 60 +++++++++++++++++++----------- slicops/pkcli/yaml_db.py | 28 ++++---------- slicops/unit_util.py | 4 +- tests/device/screen_data/base.yaml | 18 --------- tests/device/screen_data/ioc.yaml | 18 +++++++++ tests/device/screen_test.py | 6 +-- tests/pkcli/ioc_test.py | 42 +++++++++++++++++++++ 8 files changed, 114 insertions(+), 64 deletions(-) delete mode 100644 tests/device/screen_data/base.yaml create mode 100644 tests/device/screen_data/ioc.yaml create mode 100644 tests/pkcli/ioc_test.py diff --git a/slicops/device_db.py b/slicops/device_db.py index 70b2d14..30f2e7a 100644 --- a/slicops/device_db.py +++ b/slicops/device_db.py @@ -22,10 +22,12 @@ class DeviceDbError(Exception): _ACCESSOR_META = PKDict( acquire=PKDict(py_type=bool, pv_writable=True), + enabled=PKDict(py_type=int, pv_writable=False), image=PKDict(py_type=numpy.ndarray, pv_writable=False), n_bits=PKDict(py_type=int, pv_writable=False), n_col=PKDict(py_type=int, pv_writable=False), n_row=PKDict(py_type=int, pv_writable=False), + start_scan=PKDict(py_type=int, pv_writable=True), target_control=PKDict(py_type=int, pv_writable=True), target_status=PKDict(py_type=int, pv_writable=False), ) diff --git a/slicops/pkcli/ioc.py b/slicops/pkcli/ioc.py index 5372a01..4b9dd48 100644 --- a/slicops/pkcli/ioc.py +++ b/slicops/pkcli/ioc.py @@ -8,11 +8,12 @@ from pykern.pkdebug import pkdc, pkdlog, pkdp, pkdexc import asyncio import caproto.server -import pykern.fconf import pykern.pkio +import pykern.pkyaml +import numpy -def run(config_dir): +def run(init_yaml, db_yaml=None): def _normalize(raw): for k, v in raw.items(): if not isinstance(v, dict): @@ -24,7 +25,7 @@ def _pvgroup(config): return PKDict( # Need to hardwire the defaults, because ioc_arg_parser uses # argparse globally which causes a mess with argh (which uses argparse) - pvdb=_PVGroup(config, macros={}, prefix="").pvdb, + pvdb=_PVGroup(config, db_yaml, macros={}, prefix="").pvdb, interfaces=["0.0.0.0"], module_name="caproto.asyncio.server", log_pv_names=False, @@ -32,28 +33,48 @@ def _pvgroup(config): caproto.server.run( **_pvgroup( - PKDict(_normalize(pykern.fconf.parse_all(pykern.pkio.py_path(config_dir)))), + PKDict(_normalize(pykern.pkyaml.load_file(init_yaml))), ), ) class _PVGroup(caproto.server.PVGroup): - def __init__(self, config, *args, **kwargs): + def __init__(self, config, db_yaml, *args, **kwargs): self.__config = config + self.__db_yaml = pykern.pkio.py_path(db_yaml) if db_yaml else None + self.__db = PKDict() for k, v in self.__config.items(): - self._pvs_[k] = p = caproto.server.pvproperty( - startup=self.__startup, - value=v.value, - ) + self._pvs_[k] = p = caproto.server.pvproperty(value=v.value) + self.__db[k] = v.value p.__set_name__(self, k) + self.__write_db() super().__init__(*args, **kwargs) async def group_write(self, instance, value, **kwargs): + async def _dispatch(todo): + for k, v in todo.items(): + u = _un_numpy(v[value], k) + if self.__db[k] != u: + self.__db[k] = u + await self.pvdb[k].write(u) + + def _un_numpy(v, name): + if not isinstance(v, numpy.generic): + return v + if isinstance(v, numpy.integer): + return int(v) + if isinstance(v, numpy.floating): + return float(v) + if isinstance(v, numpy.bool_): + return bool(v) + raise AssertionError(f"unhandled type={type(v)} pv={name}") + try: - if c := self.__config.get(instance.pvname): - for k, v in c.dispatch.items(): - await self.pvdb[k].write(v[value]) + if self.__db[instance.pvname] != value: + self.__db[instance.pvname] = _un_numpy(value, instance.pvname) + await _dispatch(self.__config[instance.pvname].dispatch) + self.__write_db() return await super().group_write(instance, value, **kwargs) except Exception as e: pkdlog( @@ -61,12 +82,9 @@ async def group_write(self, instance, value, **kwargs): ) raise - async def __startup(self, _ignore_self, pv, async_lib): - # async_lib doesn't have create taxsk - # _ignore_self needed to match signature checking in caproto - # pkdp("{} {}", pv.name, async_lib) - # asyncio.create_task(self.__publish(pv)) - pass - - async def __publish(self, pv): - pass + def __write_db(self): + if self.__db_yaml: + pykern.pkio.atomic_write( + self.__db_yaml, + writer=lambda p: pykern.pkyaml.dump_pretty(self.__db, filename=p), + ) diff --git a/slicops/pkcli/yaml_db.py b/slicops/pkcli/yaml_db.py index d3fa393..82e4364 100644 --- a/slicops/pkcli/yaml_db.py +++ b/slicops/pkcli/yaml_db.py @@ -28,10 +28,7 @@ def read(base): Returns: PKDict: values in the db """ - rv = _read(path(base)) - if rv is None: - return PKDict() - return rv + return _read(path(base)) def write(base, *key_value_pairs): @@ -50,26 +47,17 @@ def _pairs(): return key_value_pairs[0].items() return key_value_pairs[0] - def _read_or_new(old, new): - # Atomic read/write - if old.exists(): - old.copy(new) - return _read(new) - return PKDict() - def _validate(): ctx = slicops.ctx.Ctx(base, base) for k, v in _pairs(): yield k, ctx.fields[k].value_set(v) - o = path(base) - n = o.new(ext="tmp" + pykern.util.random_base62()) - try: - rv = _read_or_new(o, n).pkupdate(_validate()) - pykern.pkyaml.dump_pretty(rv, n) - n.rename(o) - finally: - pykern.pkio.unchecked_remove(n) + p = path(base) + rv = _read(p).pkupdate(_validate()) + pykern.pkio.atomic_write( + p, + writer=lambda x: pykern.pkyaml.dump_pretty(rv, filename=x), + ) return rv @@ -80,5 +68,5 @@ def _read(path): except Exception as e: if pykern.pkio.exception_is_not_found(e): pkdlog("ignoring not found path={}", path) - return None + return PKDict() raise diff --git a/slicops/unit_util.py b/slicops/unit_util.py index 9322b36..c965794 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -14,7 +14,7 @@ @contextlib.contextmanager -def start_ioc(config_dir): +def start_ioc(config_dir, db_yaml=None): from pykern import pkdebug from pykern.pkcollections import PKDict import os, signal, time @@ -24,7 +24,7 @@ def start_ioc(config_dir): try: from slicops.pkcli import ioc - ioc.run(config_dir) + ioc.run(config_dir, db_yaml=db_yaml) except Exception as e: pkdebug.pkdlog("server exception={} stack={}", e, pkdebug.pkdexc()) finally: diff --git a/tests/device/screen_data/base.yaml b/tests/device/screen_data/base.yaml deleted file mode 100644 index 617fbc8..0000000 --- a/tests/device/screen_data/base.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -"YAGS:IN20:351:Acquire": - value: 0 - dispatch: - "YAGS:IN20:351:IMAGE": - 0: [0, 0, 0, 0] - 1: [0, 1, 2, 3] -"YAGS:IN20:351:IMAGE": [0, 0, 0, 0] -"YAGS:IN20:351:N_OF_ROW": 2 -"YAGS:IN20:351:N_OF_COL": 2 -"YAGS:IN20:351:PNEUMATIC": - dispatch: - "YAGS:IN20:351:TGT_STS": - 0: 1 - 1: 2 -"YAGS:IN20:351:TGT_STS": 1 -"YAGS:IN20:211:TGT_STS": 1 -"YAGS:IN20:241:TGT_STS": 1 diff --git a/tests/device/screen_data/ioc.yaml b/tests/device/screen_data/ioc.yaml new file mode 100644 index 0000000..2637c73 --- /dev/null +++ b/tests/device/screen_data/ioc.yaml @@ -0,0 +1,18 @@ +--- +YAGS:IN20:351:Acquire: + value: 0 + dispatch: + YAGS:IN20:351:IMAGE: + 0: [0, 0, 0, 0] + 1: [0, 1, 2, 3] +YAGS:IN20:351:IMAGE: [0, 0, 0, 0] +YAGS:IN20:351:N_OF_ROW: 2 +YAGS:IN20:351:N_OF_COL: 2 +YAGS:IN20:351:PNEUMATIC: + dispatch: + YAGS:IN20:351:TGT_STS: + 0: 1 + 1: 2 +YAGS:IN20:351:TGT_STS: 1 +YAGS:IN20:211:TGT_STS: 1 +YAGS:IN20:241:TGT_STS: 1 diff --git a/tests/device/screen_test.py b/tests/device/screen_test.py index 6cb88f8..a3f2e41 100644 --- a/tests/device/screen_test.py +++ b/tests/device/screen_test.py @@ -1,6 +1,6 @@ -"""Test slicops.device +"""Test slicops.device.screen -:copyright: Copyright (c) 2024 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:copyright: Copyright (c) 2025 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. :license: http://github.com/slaclab/slicops/LICENSE """ @@ -35,7 +35,7 @@ def test_get(self, event_name): except queue.Empty: pkunit.pkfail("timeout event={}", event_name) - with unit_util.start_ioc(pkunit.data_dir()): + with unit_util.start_ioc(pkunit.data_dir().join("ioc.yaml")): h = _Handler() d = screen.Screen("CU_HXR", "YAG03", h) try: diff --git a/tests/pkcli/ioc_test.py b/tests/pkcli/ioc_test.py new file mode 100644 index 0000000..dcee7f8 --- /dev/null +++ b/tests/pkcli/ioc_test.py @@ -0,0 +1,42 @@ +"""Test ioc + +:copyright: Copyright (c) 2025 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + +_INIT = """--- +WIRE:HTR:340:MOTR_ENABLED_STS: 33 +WIRE:HTR:340:STARTSCAN: + value: 0 + dispatch: + WIRE:HTR:340:MOTR_ENABLED_STS: + 0: 33 + 1: 66 +""" + +_DB = """WIRE:HTR:340:MOTR_ENABLED_STS: {} +WIRE:HTR:340:STARTSCAN: {} +""" + + +def test_db_yaml(): + from pykern import pkdebug, pkunit + from slicops import unit_util + from slicops import device + import time + + i = pkunit.work_dir().join("init.yaml") + i.write(_INIT) + b = i.dirpath().join("db.yaml") + with unit_util.start_ioc(i, db_yaml=b): + d = device.Device("WS0H04") + try: + pkunit.pkeq(33, d.get("enabled")) + pkunit.pkeq(_DB.format(33, 0), b.read("rt")) + d.put("start_scan", 1) + # Allow the dispatch to come back + time.sleep(0.1) + pkunit.pkeq(66, d.get("enabled")) + pkunit.pkeq(_DB.format(66, 1), b.read("rt")) + finally: + d.destroy() From 678ed480b66924a841207faabef45837cf83f4e4 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:08:28 +0000 Subject: [PATCH 42/51] upstream blocked tested --- slicops/pkcli/ioc.py | 1 + slicops/unit_util.py | 38 +++++++++++++ .../{screen_data => screen1_data}/ioc.yaml | 0 tests/device/screen1_test.py | 19 +++++++ tests/device/screen2_data/ioc.yaml | 19 +++++++ tests/device/screen2_test.py | 18 +++++++ tests/device/screen_test.py | 53 ------------------- 7 files changed, 95 insertions(+), 53 deletions(-) rename tests/device/{screen_data => screen1_data}/ioc.yaml (100%) create mode 100644 tests/device/screen1_test.py create mode 100644 tests/device/screen2_data/ioc.yaml create mode 100644 tests/device/screen2_test.py delete mode 100644 tests/device/screen_test.py diff --git a/slicops/pkcli/ioc.py b/slicops/pkcli/ioc.py index 4b9dd48..506b206 100644 --- a/slicops/pkcli/ioc.py +++ b/slicops/pkcli/ioc.py @@ -41,6 +41,7 @@ def _pvgroup(config): class _PVGroup(caproto.server.PVGroup): def __init__(self, config, db_yaml, *args, **kwargs): + pkdp("starting {}", config) self.__config = config self.__db_yaml = pykern.pkio.py_path(db_yaml) if db_yaml else None self.__db = PKDict() diff --git a/slicops/unit_util.py b/slicops/unit_util.py index c965794..8372201 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -36,6 +36,44 @@ def start_ioc(config_dir, db_yaml=None): os.kill(p, signal.SIGKILL) +@contextlib.contextmanager +def setup_screen(beam_path, device_name): + from pykern import pkdebug, pkunit + from pykern.pkcollections import PKDict + from slicops import unit_util + from slicops.device import screen + import queue + + _ACCESSORS = ("acquire", "image", "target_status") + + class _Handler(screen.EventHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.event_q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) + + def on_screen_device_error(self, **kwargs): + self.event_q.error.put_nowait(PKDict(kwargs)) + + def on_screen_device_update(self, **kwargs): + self.event_q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) + + def test_get(self, event_name): + try: + rv = self.event_q[event_name].get(timeout=_TIMEOUT) + # Errors don't have value + return rv.get("value", rv) + except queue.Empty: + pkunit.pkfail("timeout event={}", event_name) + + with unit_util.start_ioc(pkunit.data_dir().join("ioc.yaml")): + rv = PKDict(handler=_Handler()) + rv.device = screen.Screen(beam_path, device_name, rv.handler) + try: + yield rv + finally: + rv.device.destroy() + + class SlicletSetup(pykern.api.unit_util.Setup): def __init__(self, sliclet, *args, **kwargs): self.__sliclet = sliclet diff --git a/tests/device/screen_data/ioc.yaml b/tests/device/screen1_data/ioc.yaml similarity index 100% rename from tests/device/screen_data/ioc.yaml rename to tests/device/screen1_data/ioc.yaml diff --git a/tests/device/screen1_test.py b/tests/device/screen1_test.py new file mode 100644 index 0000000..0b2e50f --- /dev/null +++ b/tests/device/screen1_test.py @@ -0,0 +1,19 @@ +"""Test slicops.device.screen + +:copyright: Copyright (c) 2025 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + + +def test_upstream_ok(): + from pykern import pkdebug, pkunit + from slicops import unit_util + + with unit_util.setup_screen("CU_HXR", "YAG03") as s: + s.handler.test_get("image") + pkunit.pkeq(False, s.handler.test_get("acquire")) + pkunit.pkeq(False, s.handler.test_get("target_status")) + s.device.move_target(want_in=True) + pkunit.pkeq(True, s.handler.test_get("target_status")) + s.device.move_target(want_in=False) + pkunit.pkeq(False, s.handler.test_get("target_status")) diff --git a/tests/device/screen2_data/ioc.yaml b/tests/device/screen2_data/ioc.yaml new file mode 100644 index 0000000..b3967ea --- /dev/null +++ b/tests/device/screen2_data/ioc.yaml @@ -0,0 +1,19 @@ +--- +YAGS:IN20:351:Acquire: + value: 0 + dispatch: + YAGS:IN20:351:IMAGE: + 0: [0, 0, 0, 0] + 1: [0, 1, 2, 3] +YAGS:IN20:351:IMAGE: [0, 0, 0, 0] +YAGS:IN20:351:N_OF_ROW: 2 +YAGS:IN20:351:N_OF_COL: 2 +YAGS:IN20:351:PNEUMATIC: + dispatch: + YAGS:IN20:351:TGT_STS: + 0: 1 + 1: 2 +YAGS:IN20:351:TGT_STS: 1 +YAGS:IN20:211:TGT_STS: 1 +# Upstream device is in +YAGS:IN20:241:TGT_STS: 2 diff --git a/tests/device/screen2_test.py b/tests/device/screen2_test.py new file mode 100644 index 0000000..cb4730f --- /dev/null +++ b/tests/device/screen2_test.py @@ -0,0 +1,18 @@ +"""Test slicops.device.screen + +:copyright: Copyright (c) 2025 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. +:license: http://github.com/slaclab/slicops/LICENSE +""" + +import contextlib + + +def test_upstream_blocked(): + from pykern import pkdebug, pkunit + from slicops import unit_util + + with unit_util.setup_screen("CU_HXR", "YAG03") as s: + s.device.move_target(want_in=True) + e = s.handler.test_get("error") + pkunit.pkeq("upstream", e.error_kind) + pkunit.pkeq("upstream target is in", e.error_msg.YAG02) diff --git a/tests/device/screen_test.py b/tests/device/screen_test.py deleted file mode 100644 index a3f2e41..0000000 --- a/tests/device/screen_test.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Test slicops.device.screen - -:copyright: Copyright (c) 2025 The Board of Trustees of the Leland Stanford Junior University, through SLAC National Accelerator Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All Rights Reserved. -:license: http://github.com/slaclab/slicops/LICENSE -""" - -_ACCESSORS = ("acquire", "image", "target_status") - - -_TIMEOUT = 2 - - -def test_target(): - from pykern.pkcollections import PKDict - from pykern import pkdebug, pkunit - from slicops import unit_util - from slicops.device import screen - import queue, time - - class _Handler(screen.EventHandler): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.event_q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) - - def on_screen_device_error(self, **kwargs): - pkdebug.pkdp(kwargs) - self.event_q.error.put_nowait(PKDict(kwargs)) - - def on_screen_device_update(self, **kwargs): - self.event_q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) - - def test_get(self, event_name): - try: - return self.event_q[event_name].get(timeout=_TIMEOUT).value - except queue.Empty: - pkunit.pkfail("timeout event={}", event_name) - - with unit_util.start_ioc(pkunit.data_dir().join("ioc.yaml")): - h = _Handler() - d = screen.Screen("CU_HXR", "YAG03", h) - try: - h.test_get("image") - pkunit.pkeq(False, h.test_get("acquire")) - pkunit.pkeq(False, h.test_get("target_status")) - d.move_target(want_in=True) - pkunit.pkeq(True, h.test_get("target_status")) - d.move_target(want_in=False) - pkunit.pkeq(False, h.test_get("target_status")) - # d.unblock_upstream() - # a = u.get("YAG01").device.accessor("target_status") - # pkunit.pkeq(1, a.get()) - finally: - d.destroy() From eb249e35c6fcd4e646d594d58e8458e65626ac0f Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:18:31 +0000 Subject: [PATCH 43/51] remove filter --- slicops/package_data/sliclet/screen.yaml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/slicops/package_data/sliclet/screen.yaml b/slicops/package_data/sliclet/screen.yaml index c5ff365..7c07650 100644 --- a/slicops/package_data/sliclet/screen.yaml +++ b/slicops/package_data/sliclet/screen.yaml @@ -24,14 +24,6 @@ fields: Gaussian: gaussian "Super Gaussian": super_gaussian value: gaussian - filter_in: - prototype: Button - ui: - css_kind: light - filter_out: - prototype: Button - ui: - css_kind: light plot: prototype: Dict ui: @@ -70,9 +62,6 @@ ui_layout: - start_button - stop_button - single_button - - cell_group: - - filter_in - - filter_out - css: col-sm-9 col-xxl-7 rows: - plot From 87a89c6eeab3984d926bca9c9060046715a4b96e Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:20:25 +0000 Subject: [PATCH 44/51] remove pkdp --- slicops/pkcli/ioc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/slicops/pkcli/ioc.py b/slicops/pkcli/ioc.py index 506b206..4b9dd48 100644 --- a/slicops/pkcli/ioc.py +++ b/slicops/pkcli/ioc.py @@ -41,7 +41,6 @@ def _pvgroup(config): class _PVGroup(caproto.server.PVGroup): def __init__(self, config, db_yaml, *args, **kwargs): - pkdp("starting {}", config) self.__config = config self.__db_yaml = pykern.pkio.py_path(db_yaml) if db_yaml else None self.__db = PKDict() From fab1c0c86d0d61763e870dbdae7e8a8e39784b8c Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:20:35 +0000 Subject: [PATCH 45/51] fmt --- slicops/device_sql_db.py | 17 ++++++++++++----- tests/device_db_test.py | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/slicops/device_sql_db.py b/slicops/device_sql_db.py index 7385f48..e2ff4d1 100644 --- a/slicops/device_sql_db.py +++ b/slicops/device_sql_db.py @@ -71,10 +71,12 @@ def upstream_devices(device_type, required_accessor, beam_path, end_device): s.t.device_meta_float.join( s.t.device, s.t.device.c.device_name == c, - ).join( + ) + .join( s.t.beam_path, s.t.beam_path.c.beam_area == s.t.device.c.beam_area, - ).join( + ) + .join( s.t.device_pv, s.t.device_pv.c.device_name == c, ) @@ -91,6 +93,7 @@ def upstream_devices(device_type, required_accessor, beam_path, end_device): ) ) + def _assert_on_beampath(device, beam_path, select): c = select.t.device.c.device_name v = select.select_one_or_none( @@ -100,15 +103,17 @@ def _assert_on_beampath(device, beam_path, select): select.t.beam_path, select.t.beam_path.c.beam_area == select.t.device.c.beam_area, ) - ).where( + ) + .where( select.t.device.c.device_name == device, select.t.beam_path.c.beam_path == beam_path, ), - None + None, ) if v is None: raise ValueError(f"device={device} is not in beam_path={beam_path}") + def _device_meta(device, meta, select): return select.select_one( "device_meta_float", PKDict(device_name=device, device_meta_name=meta) @@ -211,7 +216,9 @@ def _init(): def _path(): - return pykern.pkresource.file_path(".", packages=slicops.config.cfg().package_path).join(_BASE_PATH) + return pykern.pkresource.file_path( + ".", packages=slicops.config.cfg().package_path + ).join(_BASE_PATH) def _session(): diff --git a/tests/device_db_test.py b/tests/device_db_test.py index a70e194..11b85b5 100644 --- a/tests/device_db_test.py +++ b/tests/device_db_test.py @@ -38,7 +38,7 @@ def test_upstream(): from pykern import pkdebug, pkunit from slicops import device_db - a = device_db.upstream_devices("PROF", "target_control","CU_HXR", "OTR11") + a = device_db.upstream_devices("PROF", "target_control", "CU_HXR", "OTR11") pkunit.pkeq(9, len(a)) pkunit.pkeq("YAG01", a[0], "Lowest Z Prof") pkunit.pkeq("OTR4", a[-1], "Closest Z Prof") From cfb037c7a16400379fabd5251db75f24f2cc8a29 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:27:47 +0000 Subject: [PATCH 46/51] disable carepeater in test.sh --- test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test.sh b/test.sh index 54f8091..00f58d8 100644 --- a/test.sh +++ b/test.sh @@ -10,7 +10,10 @@ _err() { } _main() { - PYKERN_PKCLI_TEST_MAX_PROCS=4 pykern ci run + export EPICS_CA_ADDR_LIST=127.0.0.1 + export EPICS_CA_AUTO_ADDR_LIST=no + export PYKERN_PKCLI_TEST_MAX_PROCS=4 + pykern ci run } _msg() { From 2f049ed5c97edbe26a4702b9ccc06303d8f70e28 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:58:09 +0000 Subject: [PATCH 47/51] remove improt --- tests/device/screen2_test.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/device/screen2_test.py b/tests/device/screen2_test.py index cb4730f..eddf68e 100644 --- a/tests/device/screen2_test.py +++ b/tests/device/screen2_test.py @@ -4,8 +4,6 @@ :license: http://github.com/slaclab/slicops/LICENSE """ -import contextlib - def test_upstream_blocked(): from pykern import pkdebug, pkunit From 5c6d25032f7986e12746b6127280344c2658e922 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 21:58:29 +0000 Subject: [PATCH 48/51] mock caRepeater --- test.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test.sh b/test.sh index 00f58d8..b776bde 100644 --- a/test.sh +++ b/test.sh @@ -4,12 +4,23 @@ # set -euo pipefail +_carepeater() { + if [[ $(type -p caRepeater) ]]; then + return + fi + declare d= + echo 'sleep 10000' > run/caRepeater + chmod +x run/caRepeater + export PATH=$(cd "$(dirname "$0")"; pwd):$PATH +} + _err() { _msg "$@" return 1 } _main() { + _carepeater export EPICS_CA_ADDR_LIST=127.0.0.1 export EPICS_CA_AUTO_ADDR_LIST=no export PYKERN_PKCLI_TEST_MAX_PROCS=4 From 88d0eda95ad80eafe283b3635565b889e6fbf812 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 22:02:37 +0000 Subject: [PATCH 49/51] fpc --- test.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test.sh b/test.sh index b776bde..7eabdbe 100644 --- a/test.sh +++ b/test.sh @@ -8,10 +8,11 @@ _carepeater() { if [[ $(type -p caRepeater) ]]; then return fi - declare d= - echo 'sleep 10000' > run/caRepeater - chmod +x run/caRepeater - export PATH=$(cd "$(dirname "$0")"; pwd):$PATH + declare d=$(cd "$(dirname "$0")"; pwd)/run + mkdir -p "$d" + echo 'sleep 10000' > "$d"/caRepeater + chmod +x "$d"/caRepeater + export PATH=$d:$PATH } _err() { From d2a4455e292470a467cbc38dbf7b7eb457d45d94 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 22:07:35 +0000 Subject: [PATCH 50/51] caproto --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 58852c0..42de3e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ classifiers = [ "Topic :: Utilities", ] dependencies = [ + 'caproto', 'lcls-tools @ git+https://github.com/slaclab/lcls-tools', 'pyepics', 'pykern', From ecf1d7df113101ed6be4ca1a8ed5e4c0900be940 Mon Sep 17 00:00:00 2001 From: Rob Nagler <5495179+robnagler@users.noreply.github.com> Date: Fri, 8 Aug 2025 23:21:22 +0000 Subject: [PATCH 51/51] Fix #136 random port for epics - Open EPICS_CA_REPEATER_PORT so that epics lib thinks caRepeater is running --- slicops/unit_util.py | 166 +++++++++++++++++++++------------ test.sh | 17 +--- tests/device/screen1_test.py | 3 +- tests/pkcli/ioc_data/init.yaml | 7 ++ tests/pkcli/ioc_test.py | 23 ++--- 5 files changed, 121 insertions(+), 95 deletions(-) create mode 100644 tests/pkcli/ioc_data/init.yaml diff --git a/slicops/unit_util.py b/slicops/unit_util.py index 8372201..2efc58a 100644 --- a/slicops/unit_util.py +++ b/slicops/unit_util.py @@ -13,67 +13,6 @@ _TIMEOUT = 2 -@contextlib.contextmanager -def start_ioc(config_dir, db_yaml=None): - from pykern import pkdebug - from pykern.pkcollections import PKDict - import os, signal, time - - p = os.fork() - if p == 0: - try: - from slicops.pkcli import ioc - - ioc.run(config_dir, db_yaml=db_yaml) - except Exception as e: - pkdebug.pkdlog("server exception={} stack={}", e, pkdebug.pkdexc()) - finally: - os._exit(0) - try: - time.sleep(1) - yield None - finally: - os.kill(p, signal.SIGKILL) - - -@contextlib.contextmanager -def setup_screen(beam_path, device_name): - from pykern import pkdebug, pkunit - from pykern.pkcollections import PKDict - from slicops import unit_util - from slicops.device import screen - import queue - - _ACCESSORS = ("acquire", "image", "target_status") - - class _Handler(screen.EventHandler): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.event_q = PKDict({k: queue.Queue() for k in _ACCESSORS + ("error",)}) - - def on_screen_device_error(self, **kwargs): - self.event_q.error.put_nowait(PKDict(kwargs)) - - def on_screen_device_update(self, **kwargs): - self.event_q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) - - def test_get(self, event_name): - try: - rv = self.event_q[event_name].get(timeout=_TIMEOUT) - # Errors don't have value - return rv.get("value", rv) - except queue.Empty: - pkunit.pkfail("timeout event={}", event_name) - - with unit_util.start_ioc(pkunit.data_dir().join("ioc.yaml")): - rv = PKDict(handler=_Handler()) - rv.device = screen.Screen(beam_path, device_name, rv.handler) - try: - yield rv - finally: - rv.device.destroy() - - class SlicletSetup(pykern.api.unit_util.Setup): def __init__(self, sliclet, *args, **kwargs): self.__sliclet = sliclet @@ -166,3 +105,108 @@ async def __subscribe(self): raise finally: pkdebug.pkdlog("ui_ctx_update subscription ended normally") + + +@contextlib.contextmanager +def random_epics_ports(): + """Open the IOC""" + + from pykern import util, pkconst + import os + import socket + + r = str(util.unbound_localhost_udp_port()) + s = str(util.unbound_localhost_udp_port()) + os.environ.update( + dict( + EPICS_CAS_AUTO_BEACON_ADDR_LIST="no", + EPICS_CAS_BEACON_ADDR_LIST=pkconst.LOCALHOST_IP, + EPICS_CAS_BEACON_PORT=r, + EPICS_CAS_INTF_ADDR_LIST=pkconst.LOCALHOST_IP, + EPICS_CAS_SERVER_PORT=s, + EPICS_CA_ADDR_LIST=pkconst.LOCALHOST_IP, + EPICS_CA_AUTO_ADDR_LIST="no", + EPICS_CA_REPEATER_PORT=r, + EPICS_CA_SERVER_PORT=s, + ) + ) + with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: + s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + s.bind(("127.0.0.1", int(r))) + yield None + + +@contextlib.contextmanager +def setup_screen(beam_path, device_name): + with start_ioc("ioc.yaml"): + from slicops.device import screen + from pykern.pkcollections import PKDict + + rv = PKDict(handler=_screen_handler()) + rv.device = screen.Screen(beam_path, device_name, rv.handler) + try: + yield rv + finally: + rv.device.destroy() + + +@contextlib.contextmanager +def start_ioc(init_yaml, db_yaml=None): + import os, signal, time + import socket + + with random_epics_ports(): + p = os.fork() + if p == 0: + from pykern import pkdebug + + try: + from slicops.pkcli import ioc + from pykern import pkunit + + ioc.run( + pkunit.data_dir().join(init_yaml), + db_yaml=(pkunit.work_dir().join(db_yaml) if db_yaml else None), + ) + except Exception as e: + pkdebug.pkdlog("server exception={} stack={}", e, pkdebug.pkdexc()) + finally: + os._exit(0) + try: + time.sleep(1) + yield None + finally: + os.kill(p, signal.SIGKILL) + + +def _screen_handler(): + from pykern import pkunit + from pykern.pkcollections import PKDict + import queue + from slicops.device import screen + + class _Handler(screen.EventHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.event_q = PKDict( + { + k: queue.Queue() + for k in ("acquire", "image", "target_status", "error") + } + ) + + def on_screen_device_error(self, **kwargs): + self.event_q.error.put_nowait(PKDict(kwargs)) + + def on_screen_device_update(self, **kwargs): + self.event_q[kwargs["accessor_name"]].put_nowait(PKDict(kwargs)) + + def test_get(self, event_name): + try: + rv = self.event_q[event_name].get(timeout=_TIMEOUT) + # Errors don't have value + return rv.get("value", rv) + except queue.Empty: + pkunit.pkfail("timeout event={}", event_name) + + return _Handler() diff --git a/test.sh b/test.sh index 7eabdbe..54f8091 100644 --- a/test.sh +++ b/test.sh @@ -4,28 +4,13 @@ # set -euo pipefail -_carepeater() { - if [[ $(type -p caRepeater) ]]; then - return - fi - declare d=$(cd "$(dirname "$0")"; pwd)/run - mkdir -p "$d" - echo 'sleep 10000' > "$d"/caRepeater - chmod +x "$d"/caRepeater - export PATH=$d:$PATH -} - _err() { _msg "$@" return 1 } _main() { - _carepeater - export EPICS_CA_ADDR_LIST=127.0.0.1 - export EPICS_CA_AUTO_ADDR_LIST=no - export PYKERN_PKCLI_TEST_MAX_PROCS=4 - pykern ci run + PYKERN_PKCLI_TEST_MAX_PROCS=4 pykern ci run } _msg() { diff --git a/tests/device/screen1_test.py b/tests/device/screen1_test.py index 0b2e50f..0beee91 100644 --- a/tests/device/screen1_test.py +++ b/tests/device/screen1_test.py @@ -4,10 +4,11 @@ :license: http://github.com/slaclab/slicops/LICENSE """ +from slicops import unit_util + def test_upstream_ok(): from pykern import pkdebug, pkunit - from slicops import unit_util with unit_util.setup_screen("CU_HXR", "YAG03") as s: s.handler.test_get("image") diff --git a/tests/pkcli/ioc_data/init.yaml b/tests/pkcli/ioc_data/init.yaml new file mode 100644 index 0000000..5feecec --- /dev/null +++ b/tests/pkcli/ioc_data/init.yaml @@ -0,0 +1,7 @@ +WIRE:HTR:340:MOTR_ENABLED_STS: 33 +WIRE:HTR:340:STARTSCAN: + value: 0 + dispatch: + WIRE:HTR:340:MOTR_ENABLED_STS: + 0: 33 + 1: 66 diff --git a/tests/pkcli/ioc_test.py b/tests/pkcli/ioc_test.py index dcee7f8..0295cd5 100644 --- a/tests/pkcli/ioc_test.py +++ b/tests/pkcli/ioc_test.py @@ -4,31 +4,20 @@ :license: http://github.com/slaclab/slicops/LICENSE """ -_INIT = """--- -WIRE:HTR:340:MOTR_ENABLED_STS: 33 -WIRE:HTR:340:STARTSCAN: - value: 0 - dispatch: - WIRE:HTR:340:MOTR_ENABLED_STS: - 0: 33 - 1: 66 -""" - _DB = """WIRE:HTR:340:MOTR_ENABLED_STS: {} WIRE:HTR:340:STARTSCAN: {} """ def test_db_yaml(): - from pykern import pkdebug, pkunit from slicops import unit_util - from slicops import device - import time - i = pkunit.work_dir().join("init.yaml") - i.write(_INIT) - b = i.dirpath().join("db.yaml") - with unit_util.start_ioc(i, db_yaml=b): + with unit_util.start_ioc("init.yaml", db_yaml="db.yaml"): + from slicops import device + from pykern import pkdebug, pkunit + import time + + b = pkunit.work_dir().join("db.yaml") d = device.Device("WS0H04") try: pkunit.pkeq(33, d.get("enabled"))