Files
SequencerIO/__pycache__/server.cpython-311.pyc

54 lines
7.3 KiB
Plaintext
Raw Normal View History

2026-03-02 17:48:55 -05:00
<EFBFBD>
-U<>iC<00><01><><00>dZddlmZddlZddlZddlZddlZddlZddlZddl m
Z
ddl Z ddl m ZmZddlmZddlmZddlmZmZdd <0A>Zdd<0E>Zedkr e<18><00>dSdS)u<>
server.py — Arnold I/O server entrypoint.
Usage:
python3 server.py [--config FILE] [--host HOST] [--port PORT] [--log-level LEVEL]
--config YAML config file (default: config.yaml)
--host API listen address (default: 0.0.0.0)
--port API listen port (default: 8000)
--log-level debug | info | warning | error (default: info)
Interactive API docs at http://<host>:<port>/docs once running.
<EFBFBD>)<01> annotationsN)<01>Path)<02>load<61> ConfigError)<01>
IORegistry)<01> Sequencer)<02>
AppContext<EFBFBD>
create_app<EFBFBD>level<65>str<74>return<72>Nonec<01><><00>tjtt|<00><00><00>tj<00><00>dd<02><03><00>dS)Nz3%(asctime)s %(levelname)-8s %(name)s %(message)sz%Y-%m-%dT%H:%M:%S)r <00>format<61>datefmt)<05>logging<6E> basicConfig<69>getattr<74>upper<65>INFO)r s <20> server.py<70>_setup_loggingr"sE<00><00> <0B><17><15>g<EFBFBD>u<EFBFBD>{<7B>{<7B>}<7D>}<7D>g<EFBFBD>l<EFBFBD>;<3B>;<3B>D<>#<23><06><06><06><06><06><06>c
<01>^ <00><11><12>tjd<01><02><00>}|<00>dd<04><05><00>|<00>dd<07><05><00>|<00>dtd <09>
<EFBFBD><00>|<00>d d gd <0A><01><0E><00>|<00><00><00>}t |j<00><00>tjd<0F><00><00><11><11> d|j
<00><00> t|j
<00><00>}nA#t$r4}<03><11> d|<03><00>tjd<12><00>Yd}~nd}~wwxYw<01><11> dt!|j<00><00>t!|j<00><00>t!|j<00><00><00><00>|jD]U}<04><11> d|j|j|j|<04><00><00>|<04><00><00>|j<00><00><00>Vt5|<02><00>}t7||t9d<15><00><00><00>}t;|||t=j<00><00><00><16><00>}tA|<07><00>}<08><11> d<17><00>|<05>!<00><00>d<18>|jD<00><00>} | r<><72><11> dt!| <09><00><00><00>t=j"d<1A><00>| D]a\}
} |<05>#|
j$<00><00>} | r@| <0C>%|
j&| <0B><00>} <0A><11> d|
j'| rdnd| rdnd<1F><00><00>btQj)<00><00><00><12><11>fd <20>}tUj*tTj+|<0E><00>tUj*tTj,|<0E><00>t[j.t[j/||j|j|jd!<21>"<22><00><00><00>}tQj0|j1d#<23>$<24><00>}|<10>!<00><00><00><11> d%|j|j<00><00> <00><12>2<00><00>s)<29><12>3d&<26><00><00><12>2<00><00><00>)n#th$rYnwxYw<01><11> d'<27><00>|<05>5<00><00><00><11> d(<28><00>d#|_6|<10>7d)<29>*<2A><00><00><11> d+<2B><00>dS),Nu Arnold — Terminator I/O server)<01> descriptionz--configz config.yaml)<01>defaultz--hostz0.0.0.0z--porti@)<02>typerz --log-level<65>info)<04>debugr<00>warning<6E>error)r<00>choicesz arnold.serverzLoading config: %szConfig error: %s<>z2Config: %d device(s) %d signal(s) %d sequence(s)z( %-20s %s:%d %d in %d out poll=%dmszruns.log)<04>config<69>registry<72> sequencer<65>
started_atzStarting poll threads...c<01>D<00>g|]}|jdk<00> |j<00>||jf<02><02>S)<01>output)<02> direction<6F> default_state)<02>.0<EFBFBD>ss r<00>
<listcomp>zmain.<locals>.<listcomp>Vs?<00><00>L<01>L<01>L<01><11><14>;<3B>(<28>*<2A>*<2A>q<EFBFBD><EFBFBD>/J<><13>A<EFBFBD>O<EFBFBD>$<24>/J<>/J<>/Jrz Applying %d output default(s)...g<00>?u %s → %s (%s)<29>ON<4F>OFF<46>ok<6F>FAILEDc<01>\<00><02><00><02>d|<00><00><00><03><00><00>dS)Nu'Signal %s received — shutting down...)r<00>set)<04>sig<69>_frame<6D>log<6F>shutdowns <20><>r<00>
_on_signalzmain.<locals>._on_signales)<00><><00> <0B><08><08>:<3A>C<EFBFBD>@<40>@<40>@<40><10> <0C> <0C><0E><0E><0E><0E>rF)<04>host<73>port<72> log_level<65>
access_logT)<02>target<65>daemonz,API listening on http://%s:%d (docs: /docs)g<00>?zStopping poll threads...zStopping API server...<2E>)<01>timeoutzDone.)8<>argparse<73>ArgumentParser<65> add_argument<6E>int<6E>
parse_argsrr<r<00> getLoggerrr$<00> load_configrr!<00>sys<79>exit<69>len<65>devices<65>
logical_io<EFBFBD> sequences<65>idr:r;<00>total_input_points<74>total_output_points<74>poll_interval_msrrrr <00>time<6D> monotonicr
<00>start<72>sleep<65>driver<65>device<63> write_output<75>modbus_address<73>name<6D> threading<6E>Event<6E>signal<61>SIGINT<4E>SIGTERM<52>uvicorn<72>Server<65>Config<69>Thread<61>run<75>is_set<65>wait<69>KeyboardInterrupt<70>stop<6F> should_exit<69>join)<13>parser<65>argsr$<00>exc<78>devr%r&<00>ctx<74>app<70>defaultsr5<00>staterWr1r9<00> uv_server<65> uv_threadr7r8s @@r<00>mainrv*s<><00><><EFBFBD><00> <15> $<24>1S<31> T<> T<> T<>F<EFBFBD>
<EFBFBD><17><17>
<EFBFBD>}<7D><17>=<3D>=<3D>=<3D>
<EFBFBD><17><17><08>y<EFBFBD><17>9<>9<>9<>
<EFBFBD><17><17><08>C<EFBFBD><14><17>><3E>><3E>><3E>
<EFBFBD><17><17> <0A>v<EFBFBD> E<> E<> E<><18>G<01>G<01>G<01> <11> <1C> <1C> <1E> <1E>D<EFBFBD><12>4<EFBFBD>><3E>"<22>"<22>"<22>
<11>
<1B>O<EFBFBD>
,<2C>
,<2C>C<EFBFBD><08>H<EFBFBD>H<EFBFBD> !<21>4<EFBFBD>;<3B>/<2F>/<2F>/<2F><14><1C>T<EFBFBD>[<5B>)<29>)<29><06><06><> <16><14><14><14> <0B> <09> <09>$<24>c<EFBFBD>*<2A>*<2A>*<2A> <0B><08><11> <0B> <0B> <0B> <0B> <0B> <0B> <0B> <0B><><EFBFBD><EFBFBD><EFBFBD><14><><EFBFBD><EFBFBD><08>H<EFBFBD>H<EFBFBD> A<> <10><16><1E> <20> <20>#<23>f<EFBFBD>&7<>"8<>"8<>#<23>f<EFBFBD>>N<>:O<>:O<>Q<01>Q<01>Q<01><15>~<7E>'<27>'<27><03> <0B><08><08>;<3B><14><16><13><18>3<EFBFBD>8<EFBFBD><14>'<27>'<27>)<29>)<29>3<EFBFBD>+B<>+B<>+D<>+D<><14>%<25> '<27> '<27> '<27> '<27> <1B>6<EFBFBD>"<22>"<22>H<EFBFBD><19>&<26>(<28>D<EFBFBD><1A>,<<3C>,<<3C>=<3D>=<3D>I<EFBFBD><1A><15><19><1B><17>><3E>#<23>#<23> <06><06><06>C<EFBFBD> <15>S<EFBFBD>/<2F>/<2F>C<EFBFBD><08>H<EFBFBD>H<EFBFBD> '<27>(<28>(<28>(<28> <0C>N<EFBFBD>N<EFBFBD><14><14><14>L<01>L<01>f<EFBFBD>.?<3F>L<01>L<01>L<01>H<EFBFBD><0F>3<> <0B><08><08>3<>S<EFBFBD><18>]<5D>]<5D>C<>C<>C<> <0C>
<EFBFBD>3<EFBFBD><0F><0F><0F>"<22> 3<> 3<>J<EFBFBD>C<EFBFBD><15><1D>_<EFBFBD>_<EFBFBD>S<EFBFBD>Z<EFBFBD>0<>0<>F<EFBFBD><15> 3<><1B>(<28>(<28><13>);<3B>U<EFBFBD>C<>C<><02><13><08><08>,<2C>c<EFBFBD>h<EFBFBD><05>8P<38><04><04>5<EFBFBD>!#<23>1<><14><14><18>3<>3<>3<><33><19><EFBFBD> <20> <20>H<EFBFBD><17><17><17><17><17><17> <0B>M<EFBFBD>&<26>-<2D>*<2A>-<2D>-<2D>-<2D>
<EFBFBD>M<EFBFBD>&<26>.<2E>*<2A>-<2D>-<2D>-<2D><18><0E>w<EFBFBD>~<7E> <0B> <11>Y<EFBFBD> <11>Y<EFBFBD><16>.<2E><18>  <06> <06> <06><07><07>I<EFBFBD><1A> <20> <09> <0A>d<EFBFBD>C<>C<>C<>I<EFBFBD> <0A>O<EFBFBD>O<EFBFBD><15><15><15><07>H<EFBFBD>H<EFBFBD> ;<3B>T<EFBFBD>Y<EFBFBD><04> <09>R<>R<>R<> <0A><1A>/<2F>/<2F>#<23>#<23> <1F> <14>M<EFBFBD>M<EFBFBD>#<23> <1E> <1E> <1E><1B>/<2F>/<2F>#<23>#<23> <1F><><EFBFBD> <1C> <0A> <0A> <0A> <0C><04> <0A><><EFBFBD><EFBFBD><08>H<EFBFBD>H<EFBFBD> '<27>(<28>(<28>(<28> <0C>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><07>H<EFBFBD>H<EFBFBD> %<25>&<26>&<26>&<26> <20>I<EFBFBD><19> <0A>N<EFBFBD>N<EFBFBD>1<EFBFBD>N<EFBFBD><1D><1D><1D><07>H<EFBFBD>H<EFBFBD>W<EFBFBD><15><15><15><15>s*<00>C*<00>*
D(<03>4*D#<03>#D(<03>/=P-<00>-
P:<03>9P:<03>__main__)r r r r)r r)<1A>__doc__<5F>
__future__rrBrr^rIr\rS<00>pathlibrra<00> arnold.configrrHr<00>arnold.terminator_ior<00>arnold.sequencerr<00>
arnold.apir r
rrv<00>__name__<5F>rr<00><module>r<>s<00><01> <04> <04>#<23>"<22>"<22>"<22>"<22>"<22><0F><0F><0F><0F><0E><0E><0E><0E> <0A> <0A> <0A> <0A>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><10><10><10><10> <0B> <0B> <0B> <0B><18><18><18><18><18><18><0E><0E><0E><0E>A<>A<>A<>A<>A<>A<>A<>A<>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>7<>7<>7<>7<>7<>7<>7<>7<><06><06><06><06>]<16>]<16>]<16>]<16>@ <0C>z<EFBFBD><19><19><08>D<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD>F<EFBFBD><1A>r