Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/nats/micro/__pycache__/service.cpython-311.pyc



]jYddlmZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZmZddl
mZddlmZmZmZmZmZmZmZmZddlmZdd	lmZdd
lmZddlmZm Z m!Z!d
Z"	dZ#	dZ$dZ%dZ&ej'dZ(ej'dZ)ej'dZ*Gdde+eZ,eGddZ-eGddZ.eGddZ/GddZ0eGdd Z1Gd!d"eZ2Gd#d$eZ3Gd%d&e3e2Z4ee.gefZ5	eGd'd(Z6Gd)d*eZ7eGd+d,e7Z8eGd-d.e7Z9eGd/d0Z:Gd1d2eZ;dde#fd:d9Z<dS);)annotationsN)Event)	dataclassfieldreplace)datetime	timedelta)Enum)AnyAsyncContextManagerCallableDictListOptionalProtocoloverload)Client)Msg)Subscription)HandlerRequestServiceErrorqz$SRVio.nats.micro.v1.info_responsezio.nats.micro.v1.ping_responsezio.nats.micro.v1.stats_responsez^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$z^[A-Za-z0-9\-_]+$z^[^ >]*[>]?$ceZdZdZdZdZdS)ServiceVerbPINGSTATSINFON)__name__
__module____qualname__rrr r/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/nats/micro/service.pyrr,sDEDDDr%rc`eZdZUded<	ded<	dZded<	dZded<	dZd	ed
<	dd
ZdS)EndpointConfigstrnamerhandlerN
Optional[str]queue_groupsubjectOptional[Dict[str, str]]metadatareturnNonecf|jstdt|jstd|jr.t
|jstd|jr.t
|jstddSdS)NName cannot be empty.zWInvalid name. Name must contain only alphanumeric characters, underscores, and hyphens.zSInvalid subject. Subject must not contain spaces, and can only have '>' at the end.z9Invalid queue group. Queue group must not contain spaces.)r*
ValueError
NAME_REGEXmatchr.
SUBJECT_REGEXr-selfs r&
__post_init__zEndpointConfig.__post_init__Fsy	64555	**	xvwww<	x &&t|44
x !vwww	^ &&t'788
^ !\]]]	^	^
^
^r%r1r2)r!r"r#__annotations__r-r.r0r;r$r%r&r(r(2s
III
&!%K%%%%G!G!!!!h)-H----'
^
^
^
^
^
^r%r(ceZdZUdZded<	ded<	ded<	ded<	ded<	ded	<	ded
<	dZded
<	dZded<	eddZddZ	dS)
EndpointStatsz6
    Statistics about a specific service endpoint
    r)r*r.r-intnum_requests
num_errorsprocessing_timeaverage_processing_timeNr,
last_errorz
Optional[Any]dataDict[str, Any]r1c||d|d|d|d|d|d|d|d|d	
		S)Nr*r.r-rArBrErCrDrF	r*r.r-rArBrErCrDrFr$clsrFs  r&	from_dictzEndpointStats.from_dictsbsfO]+n-L)L) !23$()B$Cf






	
r%c
x|j|j|j|j|j|jpd|j|j|jd	S)NrIrIr9s r&to_dictzEndpointStats.to_dictsGI|+ -///R#3'+'CI




	
r%)rFrGr1r?r1rG)
r!r"r#__doc__r=rErFclassmethodrLrOr$r%r&r?r?VsIIILLLOOO!   !%J$$$$D


[






r%r?c|eZdZUdZded<	ded<	ded<	eeZded<	eddZ	ddZ
d
S)EndpointInfozThe information of an endpoint.r)r*r.r-default_factoryrGr0rFr1cP||d|d|d|dS)Nr*r.r-r0r*r.r-r0r$rJs  r&rLzEndpointInfo.from_dicts9sfO]+*%	


	
r%c8|j|j|j|jdS)NrXrXr9s r&rOzEndpointInfo.to_dicts&I|+
	

	
r%N)rFrGr1rTrP)r!r"r#rQr=rdictr0rRrLrOr$r%r&rTrTs))
IIILLL %uT:::H::::


[






r%rTc:eZdZdZddZdd	Zdd
ZddZddZdS)Endpointz$Endpoint manages a service endpoint.serviceServiceconfigr(r1r2c||_|j|_|jp|j|_|jpt|_|j|_	|j
|_d|_d|_
d|_d|_d|_d|_dS)Nr)_servicer*_namer._subjectr-DEFAULT_QUEUE_GROUP_queue_groupr+_handlerr0	_metadata
_num_requests_num_errors_processing_time_average_processing_time_last_error
_subscriptionr:r]r_s   r&__init__zEndpoint.__init__s{
[
5&+
".E2E
 !()%59r%cK|jrJ|jj|j|j|jd{V|_dS)N)r.queuecb)rmra_client	subscribercre_handle_requestr9s r&_startzEndpoint._startsm%%%%#'=#8#B#BM##$C$
$






r%chK|jsJ|jd{Vd|_dSN)rmunsubscriber9s r&_stopzEndpoint._stopsJ!!!! ,,.........!r%cVd|_d|_d|_t|_dS)zReset the endpoint statistics.rN)rhrirjr	rkr9s r&_resetzEndpoint._resets, !(1%%%r%msgrczKtj}|xjdz
c_t|}	||d{Vn#t
$r}|xjdz
c_t||_t|tr'||j|j
d{Vn)|dt|d{VYd}~nd}~wwxYwtj}||z
}|xj|z
c_t|j|jz|_dS)zHandle an endpoint message.rN500)timeperf_counter_nsrhrrf	Exceptionrireprrl
isinstancer
respond_errorcodedescriptionrjr@rk)r:r}
start_timerequesterrorcurrent_timeelapsed_times       r&ruzEndpoint._handle_requestsj)++
a#,,		@--((((((((((	@	@	@!#E{{D%..
@++EJ8IJJJJJJJJJJ++E4;;?????????	@+--#j0-(+D,ADDV,V(W(W%%%sA
C/B	C**C/N)r]r^r_r(r1r2r<r}rr1r2)	r!r"r#rQrorvrzr|rur$r%r&r\r\s..:::: 



""""
4444XXXXXXr%r\c.eZdZUdZded<	dZded<dS)GroupConfigzThe configuration of a group.r)r*Nr,r-)r!r"r#rQr=r-r$r%r&rrs5''
III !%K%%%%//r%rcVeZdZdZeddZeddddddZdddZdS)EndpointManagerz-
    Manages the endpoints of a service.
    r_r(r1r2c
KdSrxr$r:r_s  r&add_endpointzEndpointManager.add_endpoint BE#r%Nr-r.r0r*r)r+rr-r,r.r0r/c
KdSrxr$r:r*r+r-r.r0s      r&rzEndpointManager.add_endpoint#
sr%Optional[EndpointConfig]c
KdSrxr$r:r_kwargss   r&rzEndpointManager.add_endpoint.s
r%r_r(r1r2r*r)r+rr-r,r.r,r0r/r1r2rxr_rr1r2)r!r"r#rQrrr$r%r&rrswEEEXE
&*!%-1Xa``````r%rcReZdZdZedddd
Zedd
ZdddZdS)GroupManagerz*
    Manages the groups of a service.
    Nr-r*r)r-r,r1GroupcdSrxr$r:r*r-s   r&	add_groupzGroupManager.add_group6SVSVr%r_rcdSrxr$rs  r&rzGroupManager.add_group97:sr%Optional[GroupConfig]cdSrxr$rs   r&rzGroupManager.add_group<sr%r*r)r-r,r1rr_rr1rrxr_rr1r)r!r"r#rQrrr$r%r&rr1s`CGVVVVVXV
:::X:UUUUUUUr%rceZdZddZedd	Zed
d
d
dddZd d!dZed
dd"dZed#dZd d$dZd
S)%rr]	'Service'r_rr1r2cD||_|j|_|j|_dSrx)rar*_prefixr-rerns   r&rozGroup.__init__@s#
{".r%r(c
KdSrxr$rs  r&rzGroup.add_endpointErr%Nrr*r)r+rr-r,r.r0r/c
KdSrxr$rs      r&rzGroup.add_endpointHrr%rc6K|
tdi|}n
t|fi|}t||jdd|jp|jd|jp|j}|j	|d{VdS)N.)r.r-r$)
r(rrstripr.r*r-rerarrs   r&rzGroup.add_endpointSs>#--f--FFV..v..F|))#..PP1N6;PPVVWZ[[*?d.?


m((00000000000r%rcdSrxr$rs   r&rzGroup.add_grouparr%cdSrxr$rs  r&rzGroup.add_groupdrr%rc|rt|fi|}ntdi|}t||jd|j|jp|j}t
|j|S)Nr)r*r-r$)rrrr*r-rerrars   r&rzGroup.add_groupgs	+V..v..FF **6**FL006;00*?d.?


T]F+++r%)r]rr_rr1r2rrrxrrrr)r!r"r#rorrrr$r%r&rr?s////
EEEXE
&*!%-1X11111CGVVVVVXV
:::X:,,,,,,,r%rcteZdZUdZded<	ded<	dZded<	dZded	<	dZded
<	dZded<	ddZ	dS)
ServiceConfigzThe configuration of a service.r)r*versionNr,rr/r0r-zOptional[StatsHandler]
stats_handlerr1r2c|jstdt|jstd|jstdt
|jstd|jr.t|jstddSdS)Nr4zTInvalid name. It must contain only alphanumeric characters, dashes, and underscores.zVersion cannot be empty.zQInvalid version. It must follow semantic versioning (e.g., 1.0.0, 2.1.3-alpha.1).z[Invalid queue group. It must contain only alphanumeric characters, dashes, and underscores.)r*r5r6r7rSEMVER_REGEXr-r8r9s r&r;zServiceConfig.__post_init__sy	64555	**	usttt|	97888!!$,//	rpqqq	 &&t'788
 q		

r%r<)
r!r"r#rQr=rr0r-rr;r$r%r&rr|s))
III@LLL6"&K%%%%))-H----&!%K%%%%1,0M0000r%rc<eZdZUdZded<ded<ded<ded<dS)	ServiceIdentityz@
    Defines fields helping to identity a service instance.
    r)idr*rDict[str, str]r0N)r!r"r#rQr=r$r%r&rrsEGGG
IIILLLr%rceZdZUdZded<ded<ded<eeZded<eZ	ded	<e
dd
ZddZdS)ServicePingzThe response to a ping message.r)rr*rrUrr0typerFrGr1c	l||d|d|d|diS)Nrr*rr0rr*rr0getrJs  r&rLzServicePing.from_dictsAsDzfOXXj"--	


	
r%cD|j|j|j|j|jdS)Nrrr*rr0rr9s r&rOzServicePing.to_dicts*I'I|


	
r%N)rFrGr1rrP)
r!r"r#rQr=rrZr0PING_RESPONSE_TYPErrRrLrOr$r%r&rrs))GGG
IIILLL$uT:::H::::"D""""


[






r%rceZdZUdZded<	ded<	ded<	ded<	eeZd	ed
<	eeZ	ded<	e
Zded
<	eddZ
ddZdS)ServiceStatszThe statistics of a service.r)rr*rrstartedrUzList[EndpointStats]	endpointsrr0rrFrGr1c	||d|d|dtj|ddd|dD|d	}|S)
Nrr*rrz%Y-%m-%dT%H:%M:%S.%fZcBg|]}t|Sr$)r?rL.0endpoints  r&
<listcomp>z*ServiceStats.from_dict.<locals>.<listcomp>s&[[[X}..x88[[[r%rr0)rr*rrrr0)rstrptime)rKrFresults   r&rLzServiceStats.from_dictsgDzfO%d9o7NOO[[kIZ[[[*%




r%c|j|j|j|j|jddddzd|jD|jdS)Nz%Y-%m-%dT%H:%M:%S.%fZc6g|]}|Sr$rOrs  r&rz(ServiceStats.to_dict.<locals>.<listcomp>$LLL(**,,LLLr%)rr*rrrrr0)rr*rrrstrftimerr0r9s r&rOzServiceStats.to_dicts_II'||,,-CDDSbSICOLLT^LLL


	
r%N)rFrGr1rrP)r!r"r#rQr=rlistrrZr0STATS_RESPONSE_TYPErrRrLrOr$r%r&rrs&&GGGIIILLL&+U4%@%@%@I@@@@ %uT:::H::::#D####


[
	
	
	
	
	
	
r%rceZdZUdZded<	ded<	ded<	dZded<	ee	Zd
ed<	ee		Z
ded
<	eZded<	e
ddZddZdS)ServiceInfozThe information of a service.r)r*rrNr,rrUzList[EndpointInfo]rrr0rrFrGr1c||d|d|d|dd|dD|d|dd	
S)zu
        Create a `ServiceInfo` from a dictionary.

        Notes:
            - Unknown fields are ignored.
        rr*rrcBg|]}t|Sr$)rTrLrs  r&rz)ServiceInfo.from_dict.<locals>.<listcomp>Es&ZZZH|--h77ZZZr%rr0rr)rr*rrrr0rrrJs  r&rLzServiceInfo.from_dict7sqsDzfO//ZZ[HYZZZ*%&"BCC


	
r%cp|j|j|j|j|jd|jD|jdS)z<
        Convert the `ServiceInfo` to a dictionary.
        c6g|]}|Sr$rrs  r&rz'ServiceInfo.to_dict.<locals>.<listcomp>Urr%rrr*rrrr0rr9s r&rOzServiceInfo.to_dictJsEI'I|+LLT^LLL


	
r%)rFrGr1rrP)r!r"r#rQr=rrrrrZr0INFO_RESPONSE_TYPErrRrLrOr$r%r&rrs''
IIIGGGLLL"&K%%%%%*E$$?$?$?I???? %uT:::H::::#D""""


[
$











r%rceZdZd1dZed2d	Zd3d
Zed4dZed
d
d
dd5dZd6d7dZed
dd8dZ	ed9dZ	d6d:d Z	d;d"Z
d<d$Zd3d%Zd3d&Z
ed=d(Zd>d*Zd3d+Zd?d.Zd?d/Zd?d0Zd
S)@r^clientrr_rr1r2c|j|_|j|_|j|_|j|_	|j
pi|_|j|_
|j|_||_i|_g|_t'j|_t-|_t0|_dSrx)_nuidnextdecode_idr*rbr_versionr_descriptionr0rgr-rer_stats_handlerrs_subscriptions
_endpointsrutcnow_startedr_stoppedDEFAULT_PREFIXr)r:rr_s   r&rozService.__init__[s<$$&&--//[

"..B".$2  ))

%r%r)c|jS)z?
        Returns the unique identifier of the service.
        )rr9s r&rz
Service.idks
xr%c
PK|jrdStj|jtj|jtj|ji}|D]\}}|dt|dd|j
f|dt||jd|j
f|t||j|j|j
fg}|D]/\}}|j
||d{V|j|<0tj|_|j
d{VdS)Nz-all)r*rprefixz-kind)rr)rrr_handle_ping_requestr _handle_info_requestr_handle_stats_requestitemscontrol_subjectrrbrrsrtrrrflush)r:verb_request_handlersverbverb_handler
verb_subjectskeyr.s       r&startz
Service.startrsp	F
d7d7t9!
#8"="="?"?	b	bD,MMM#DtT\RRR
NNN#Dtzd4<XXX
#Dtzdht|\\\
M!.
b
bW151G1GT`1G1a1a+a+a+a+a+a+a#C((
b!))
l  """""""""""r%r(c
KdSrxr$rs  r&rzService.add_endpointrr%Nrr*r+rr-r,r.r0r/c
KdSrxr$rs      r&rzService.add_endpointrr%rcK|
tdi|}n
t|fi|}t||jp|j}t	||}|d{V|j|dSNrr$)r(rr-rer\rvrappend)r:r_rrs    r&rzService.add_endpoints>#--f--FFV..v..FV-?-T4CTUUUD&))oox(((((r%rrcdSrxr$rs   r&rzService.add_grouprr%rcdSrxr$rs  r&rzService.add_grouprr%rc|rt|fi|}ntdi|}t||jp|j}t	||Sr)rrr-rerrs   r&rzService.add_groupsa	+V..v..FF **6**FV-?-T4CTUUUT6"""r%rct|j|j|j|jd|jpgD|j}|jr$|jD]}|||_	|S)z9
        Returns the statistics for the service.
        cg|]A}t|j|j|j|j|j|j|j|jBS))r*r.r-rArBrErCrD)	r?rbrcrerhrirlrjrkrs  r&rz!Service.stats.<locals>.<listcomp>sh!$- ( 5!)!7'3'3$,$=,4,M			r%)rr*rr0rr)
rrrbrrgrrrrrF)r:statsendpoint_statss   r&rz
Service.statssxM^"&!6BM%


*	J"'/
J
J&*&9&9.&I&I##r%rc	|t|j|j|j|j|jd|jDS)Nc\g|])}t|j|j|j|j*S)rX)rTrbrcrergrs  r&rz Service.info.<locals>.<listcomp>sP
!$- ( 5%/	r%)rr*rr0rr)rrrbrrgrrr9s r&infozService.infosSxM^)!%



	
r%c:Ktj|_dS)zP
        Resets all statistics for all endpoints on a service instance.
        N)rrrr9s r&resetz
Service.resets!))


r%cBK|jrdS|jD]}|d{V|jD]}|d{Vg|_i|_|jdSrx)ris_setrrzrvaluesdrainset)r:rsubscriptions   r&stopzService.stops=!!	F	#	#H.."""""""""" /6688	'	'L$$&&&&&&&&&& 
r%rc|jS)zG
        Indicates whether `stop` was executed on the service.
        )rr9s r&stoppedzService.stoppeds
}r%rc>K|d{V|Srx)rr9s r&
__aenter__zService.__aenter__	s+jjllr%c>K|d{VdSrx)r#)r:exc_typeexctbs    r&	__aexit__zService.__aexit__
s,iikkr%r}rcKt|j|j|j|j}|tj|	d{VdS)zHandle a ping message.rrFN)
rrrbrrgrOrespondjsondumpsencode)r:r}pings   r&rzService._handle_ping_requestsxM^	



'))	
kktz$//6688k99999999999r%cK|}|tj|d{VdS)zHandle an info message.r.N)rrOr/r0r1r2)r:r}rs   r&rzService._handle_info_requestsayy{{""$$kktz$//6688k99999999999r%cK|}|tj|d{VdS)zHandle a stats message.r.N)rrOr/r0r1r2)r:r}rs   r&rzService._handle_stats_request!sa

$$&&kktz%007799k:::::::::::r%)rrr_rr1r2)r1r)r<rrrxrrrr)r1r)r1r)r1r)r1rr)r!r"r#ropropertyrrrrrrrrr#r%r'r,rrrr$r%r&r^r^Zs&&&& X####@EEEXE
&*!%-1X
)
)
)
)
)CGVVVVVXV
:::X:#####>



$****



X	:	:	:	:::::;;;;;;r%r^rr*r,rr1r)ch|||d|jS||d|jd|S|d|jd|d|S)Nr)value)rr*rrs    r&rr'sl|
''4:'''	..4:.....334:3333r333r%)rrr*r,rr,r1r))=
__future__rr0rerasynciordataclassesrrrrr	enumr
typingrrr
rrrrrnats.aio.clientrnats.aio.msgrnats.aio.subscriptionrrrrrrdrrrrcompilerr6r8r)rr(r?rTr\rrrrStatsHandlerrrrrrr^rr$r%r&<module>rDs""""""				1111111111((((((((																				#"""""......33333333330'557rz{RZ,
-
-

?++
#t ^ ^ ^ ^ ^ ^ ^ ^FK
K
K
K
K
K
K
K
\&
&
&
&
&
&
&
&
R>X>X>X>X>X>X>X>XB00000000aaaaahaaa,VVVVV8VVV4,4,4,4,4,L/4,4,4,n,-
********Zh




/


8:
:
:
:
:
?:
:
:
zF
F
F
F
F
F
F
F
RJ;J;J;J;J;!J;J;J;^	4444444r%
Back to Directory File Manager