Files
controller-wisetopdataserver/python/biopro/exp_pro/__pycache__/schedule.cpython-37.opt-2.pyc
T

90 lines
14 KiB
Plaintext
Raw Normal View History

2021-12-20 14:52:55 +08:00
B
2021-12-22 14:29:56 +08:00
ñ0ÀaÔ7ã@ddlmZddlmZddlmZddlmZmZmZm Z m
2021-12-20 14:52:55 +08:00
Z
m Z ddl m
Z
ddlTGdd „d ƒZGd
d d eƒZGd d
d
eƒZGdddeƒZGdddeƒZGdddeƒZdS)é)Útime)Ú Generator)Ú ServerThread)ÚpcÚBLUEÚYELLOWÚREDÚCYANÚWHITE)Úprint_exceptioné)Ú*c@sfeZdZeZeZeZeZeZeZe Z e
2021-12-22 14:29:56 +08:00
Z
2021-12-20 14:52:55 +08:00
e Z edededededede de
de d i Z e
d
œd d Zd
S)ÚExpProtocolStatusÚinitÚsetupÚreadyÚstartZsuspendÚcompleteZ interruptedÚerrorÚunknown)ÚstatuscCs|j |d¡S)Nr)Ú
NAME_TABLEÚget)Úclsr©rú</home/pi/wisetopdataserver/python/biopro/exp_pro/schedule.pyÚ__new__#szExpProtocolStatus.__new__N)Ú__name__Ú
__module__Ú __qualname__Ú STATUS_INITÚ STATUS_SETUPÚ STATUS_READYÚ STATUS_STARTÚSTATUS_SUSPENDÚSTATUS_COMPLETEÚSTATUS_INTERRUPTEDÚ STATUS_ERRORÚSTATUS_UNKNOWNrÚintrrrrrr
s&rc@seZdZdZedœddZeedœddƒZeedœdd „ƒZ eedœd
d ƒZ
ee dœd d
ƒZ edœddZ
edœddZddZddZdS)ÚAbstractExpProtocolState)Ú _protocol)ÚprotocolcCs
||_dS)N)r+)Úselfr,rrrÚ__init__Asz!AbstractExpProtocolState.__init__)ÚreturncCs|jS)N)r+)r-rrrr,Dsz!AbstractExpProtocolState.protocolcCsdS)NFr)r-rrrÚis_setupHsz!AbstractExpProtocolState.is_setupcCsdS)NFr)r-rrrÚ
is_suspendLsz#AbstractExpProtocolState.is_suspendcCstS)N)r()r-rrrrPszAbstractExpProtocolState.statuscCsdS)NFr)r-rrrÚis_readyTsz!AbstractExpProtocolState.is_readycCs|jj|jjddœS)Nr)Úpro_idÚpro_namer)r+r3r4)r-rrrÚas_jsonWsz AbstractExpProtocolState.as_jsoncCs|jjS)N)r+r4)r-rrrÚ__str__^sz AbstractExpProtocolState.__str__cCs|jjS)N)r+r4)r-rrrÚ__repr__asz!AbstractExpProtocolState.__repr__N)rrrÚ __slots__Ú ExpProtocolr.Úpropertyr,Úboolr0r1r)rr2Ú JSON_OBJECTr5r6r7rrrrr*'sr*cseZdZeedœfdd ZeedœddƒZeedœddƒZ eedœd d
ƒZ
e
j ed œd d
ƒZ
eedœd
dƒZ ee
dœddƒZej e
d œddƒZee
dœddƒZedœddZeedœddZeedœddZedœddZddZedœd d!„ZZS)"ÚExpProtocolState)r,ÚapicsTtƒ |¡t||ƒ|_||_d|_d|_tƒ|_d|_ d|_
d|_ d|_ d|_
dS)N)Úsuperr.ÚProtocolExpApiÚ_apir+Ú _prev_statusÚ_statusrÚ _setup_timeÚ _start_timeÚ_terminate_timeÚdeadlineÚ generatorÚresult)r-r,r>)Ú __class__rrr.|s  zExpProtocolState.__init__)r/cCs|jS)N)rA)r-rrrr>szExpProtocolState.apicCs
|jdk S)N)rE)r-rrrr0szExpProtocolState.is_setupcCs
|jtkS)N)rCr$)r-rrrr1˜szExpProtocolState.is_suspend)ÚvaluecCs|s|jtkr|j|_dS)N)rCr$rBr)r-rKrrrr1œscCs
|jdk S)N)rF)r-rrrÚ is_closed¡szExpProtocolState.is_closedcCs|jS)N)rC)r-rrrr¥szExpProtocolState.statuscC|j}||krdS|tkr$tdƒn"|tkr6tdƒn|tkrFtdƒ|tkrXtƒ|_n|tttfkrntƒ|_||_ ||_|j
dkrŠd|_
dS)Nzprotocol has completedzprotocol has interruptedz"protocol has terminated with errorr) rCr%Ú RuntimeErrorr&r'r#rrErFrBrG)r-rKÚsrrrr©s"



cCs|jS)N)rB)r-rrrÚstatus_previousÁsz ExpProtocolState.status_previouscCs>|jtkrdS|jdkrdS|jdkr*dS|j ¡}|j|kS)NFrT)rCr$rGr>Úcurrent_timestamp)r-Ú timestamprrrr2Ås



zExpProtocolState.is_ready)Úpromisecs,fdd}fdd}|j|d|ddS)Ncs
dˆ_dS)Nr)rG)rI)r-rrÚ_resolveÔsz.ExpProtocolState.set_promise.<locals>._resolvecsˆ |¡dˆ_dS)Nr)Ú
set_pro_errorrG)r)r-rrÚ_reject×s
z-ExpProtocolState.set_promise.<locals>._rejectÚ set_promise)Ú promise_nameÚ on_reject)Úthen)r-rRrSrUr)r-rrVÒs  zExpProtocolState.set_promisecCst|jddƒS)
_exp_error)Úgetattrr+)r-rrrÚ
get_pro_errorÝszExpProtocolState.get_pro_error)ÚecCst|jd|ƒdS)NrZ)Úsetattrr+)r-r]rrrrTäszExpProtocolState.set_pro_errorcCst|jddƒdS)NrZ)r^r+)r-rrrÚclean_pro_errorësz ExpProtocolState.clean_pro_errorcCsR|j}|j|jt|jƒ|j|j|jdœ}|j}|dk rN|j j
|d<t |ƒ|d<|S)N)r3r4rZ
setup_timeÚ
start_timeZterminate_timeÚ
error_typeÚ
error_message) r+r3r4rrCrDrErFÚ pro_errorrJrÚstr)r-Úretr]rrrr5ïs
  zExpProtocolState.as_json)rrrr9ÚCompletedExpApir.r:r>r;r0r1ÚsetterrLr)rrOr2ÚPromiseÚAnyrVÚOptionalÚ
BaseExceptionr\rTr_r<r5Ú
__classcell__rr)rJrr=es.
 r=cs eZdZdZedœfdd ZeedœddƒZeedœdd „ƒZ eedœd
d ƒZ
ee dœd d
ƒZ ee dœddƒZ
eedœddZedœddZZS)ÚReadonlyExpProtocolState)Z__state)Ústatecstƒ |j¡||_dS)N)r?r.r,Ú _ReadonlyExpProtocolState__state)r-ro)rJrrr.sz!ReadonlyExpProtocolState.__init__)r/cCs|jjS)N)rpr0)r-rrrr0
sz!ReadonlyExpProtocolState.is_setupcCs|jjS)N)rpr1)r-rrrr1sz#ReadonlyExpProtocolState.is_suspendcCs|jjS)N)rprL)r-rrrrLsz"ReadonlyExpProtocolState.is_closedcCs|jjS)N)rpr)r-rrrrszReadonlyExpProtocolState.statuscCs|jjS)N)rprO)r-rrrrOsz(ReadonlyExpProtocolState.status_previouscCs
|j ¡S)N)rpr\)r-rrrr\sz&ReadonlyExpProtocolState.get_pro_errorcCs
|j ¡S)N)rpr5)r-rrrr5!sz ReadonlyExpProtocolState.as_json)rrrr8r=r.r:r;r0r1rLr)rrOrkrlr\r<r5rmrr)rJrrnsrnceZdZfddZddœddZddZeeed œd
d Z ee
e d œd
dZ edœddZ
edœddZedœddZddZeedœddZd'ddœddZedœddZedœdd „Zedœd!d"„Zedœd#d$„Zedœd%d&„ZZS)(ÚExpProtocolSchedulercstƒ dt¡g|_d|_dS)NZ ExpSchedulerF)r?r.rr+Ú_close_on_completed)r-)rJrrr.'szExpProtocolScheduler.__init__N)r/cCs| ¡|j ¡dS)N)Ú
interrupt_allr+Úclear)r-rrrÚshutdown-szExpProtocolScheduler.shutdowncCs
d|_dS)NT)rr)r-rrrÚclose_on_completed1sz'ExpProtocolScheduler.close_on_completed)r,r/cCs x|jD]}||kr|SqWdS)N)r+)r-r,rNrrrÚ
_get_state4s zExpProtocolScheduler._get_state)r,Ú
api_parentr/cCsF| |¡}|dk rtdƒt||ƒ}t|_|j |¡| ¡t|ƒS)Nzprotocol has submitted) rwrMr=r rr+ÚappendÚ
notify_allrn)r-r,rxrNrrrÚsubmit_protocol;s

 z$ExpProtocolScheduler.submit_protocol)r,cCs$| |¡}|dkrtdƒt|_dS)Nzprotocol not found)rwrMr&r)r-r,rNrrrÚinterrupt_protocolIs
z'ExpProtocolScheduler.interrupt_protocolcCs$| |¡}|dkrtdƒt|_dS)Nzprotocol not found)rwrMr$r)r-r,rNrrrÚsuspend_protocolQs
z%ExpProtocolScheduler.suspend_protocolcCs6| |¡}|dkrtdƒ|js$dSd|_| ¡dS)Nzprotocol not foundF)rwrMr1rz)r-r,rNrrrÚresume_protocolYs
z$ExpProtocolScheduler.resume_protocolcCsx|jD]
}t|_qWdS)N)r+r&r)r-rNrrrrsfs z"ExpProtocolScheduler.interrupt_allcCs0g}x&|jD]}| ¡r | |¡d|_q W|S)N)r+r2ryrG)r-rfrNrrrÚ_get_ready_protocoljs  

z(ExpProtocolScheduler._get_ready_protocolcCsft|jƒdkr*|jr| ¡n| ¡dS| ¡}t|ƒdkrJ| d¡nx|D]}| |¡qPWdS)Nrr )Úlenr+rrÚcloseÚwaitrÚ_routine_protocol)r-ÚeventrrerrrÚroutinets
  
zExpProtocolScheduler.routine)rec
C|j}yŠ|tkrt|_nv|tkr,| |¡nb|tkr@| |¡nN|tkrT| |¡n:|tkrh|  |¡n&|t
kr||  |¡n|t krŽ|  |¡WnDt k