
    	Z                     z    S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  \R                  " S5      r
 " S S\5      rg)zService registry for apitools.    N)base_api)utilz(?i)[a-z0-9_*-]+/[a-z0-9_*-]+c                       \ rS rSrSrS rS r\S 5       rS r	S r
S rS	 rS
 rS rS rSS jrS rS rS rS rS rS rS rS rS rSrg)ServiceRegistry!   zRegistry for service types.c                     Xl         UR                  U l        X0l        [        R
                  " 5       U l        X l        X@l        XPl	        X`l
        [        U R                   R                  5      U l        g N)_ServiceRegistry__client_infopackage_ServiceRegistry__package_ServiceRegistry__namescollectionsOrderedDict)_ServiceRegistry__service_method_info_map"_ServiceRegistry__message_registry_ServiceRegistry__root_package$_ServiceRegistry__base_files_package,_ServiceRegistry__unelidable_request_methodssetscopes_ServiceRegistry__all_scopes)selfclient_infomessage_registrynamesroot_packagebase_files_packageunelidable_request_methodss          0lib/third_party/apitools/gen/service_registry.py__init__ServiceRegistry.__init__%   s^     )$,,)4)@)@)B&"2*$6!,F) 2 2 9 9:    c                 8    U R                   R                  5         g r	   )r   Validater   s    r   r$   ServiceRegistry.Validate2   s    ((*r"   c                 >    [        [        U R                  5      5      $ r	   )sortedlistr   r%   s    r   r   ServiceRegistry.scopes5   s    d4,,-..r"   c                 p    U R                   R                  SU R                   R                  U5      -  5      $ )Nz	%sService)r   	ClassName)r   service_names     r   __GetServiceClassName%ServiceRegistry.__GetServiceClassName9   s2    ||%%$,,00>>@ 	@r"   c                    UR                   (       ae  [        R                  " UR                   5      nUR                   R                  S5      u  pgnUR	                  S5      (       d  SU-  nU< U< U< 3nO
U< SU< S3nUR                  5          U" SU-  5        SSS5        U" 5         U" S5        U" S	UR                  5        U" S
5        UR                  (       a  U" S5        U" S5        UR                  (       a  U" S5        U" S5        U" S5        U" SUR                  5        U" S5        g! , (       d  f       N= f)z'Print a docstring for a service method.
.z%s.z method for the z	 service.zr"""%sNzArgs:z  request: (%s) input messagezJ  global_params: (StandardQueryParameters, default: None) global argumentsz4  upload: (Upload, default: None) If present, uploadz#      this stream with the request.z:  download: (Download, default: None) If present, downloadz,      data from the request via this stream.zReturns:z  (%s) The response message.z""")
descriptionr   CleanDescription	partitionendswithCommentContextrequest_type_nameupload_configsupports_downloadresponse_type_name)	r   printermethod_infomethod_namenamer3   
first_linenewline	remainings	            r   __PrintDocstring ServiceRegistry.__PrintDocstring=   s   ""//0G0GHK-8-D-D-N-N.*J&&s++"Z/
&0'9EK=H$OK##%H{*+ &	/1N1NO # 	$$$JK9:((LNBC
.0N0NO! &%s   D55
Ec                 F   U" 5         U R                  U5      nU" SU5        UR                  5          U" SU5        U" 5         U" S[        U5      5        U" 5         U" S5        UR                  5          U" SXE5        U" S5        UR                  SS9   UR                  5        H{  u  pgUR                  nUc  M  U" S	U5        UR                  SS9   [        S
 UR                  5        5       5      n	U	 H  n
U" SU
[        X5      5        M     S S S 5        U" S5        M}     U" S5        S S S 5        S S S 5        UR                  5        GH  u  pgU" 5         / SQnUR                  (       a  UR                  S5        UR                  (       a  UR                  S5        U" SUSR                  U5      5        UR                  5          U R                  XXb5        U" SU5        UR                  nUb	  U" SU5        S/nUR                  (       a  UR                  S5        UR                  (       a  UR                  S5        U" S5        UR                  SS9   US S  H  nU" SU5        M     U" SUS   5        S S S 5        S S S 5        U" 5         U" SR                  U5      5        UR                  SS9   X6   n[        S UR                  5        5       5      n	U	 H$  n
U
S;   a  M  [        Xz5      nUc  M  U" SX5        M&     S S S 5        U" S5        GM     S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N|= f! , (       d  f       g = f) Nz"class %s(base_api.BaseApiService):z("""Service class for the %s resource."""z
_NAME = %szdef __init__(self, client):z#super(%s.%s, self).__init__(client)zself._upload_configs = {z    indentz'%s': base_api.ApiUploadInfo(c              3   8   #    U  H  oR                   v   M     g 7fr	   r?   .0xs     r   	<genexpr>7ServiceRegistry.__WriteSingleService.<locals>.<genexpr>r   s      /P4NqFF4N   z%s=%r,z),})r   requestzglobal_params=Nonezupload=Nonezdownload=Nonezdef %s(%s):z, z#config = self.GetMethodConfig('%s')z*upload_config = self.GetUploadConfig('%s')z,config, request, global_params=global_paramsz*upload=upload, upload_config=upload_configzdownload=downloadzreturn self._RunMethod(z%s,z%s)z3{0}.method_config = lambda: base_api.ApiMethodInfo(c              3   8   #    U  H  oR                   v   M     g 7fr	   rI   rJ   s     r   rM   rN      s      #B(@1(@rO   )r9   r3   ))%_ServiceRegistry__GetServiceClassNameIndentrepritemsr9   r(   
all_fieldsgetattrappendr:   join _ServiceRegistry__PrintDocstringformat)r   r<   r?   method_info_mapclient_class_name
class_namer>   r=   r9   attrsattrparams	arg_lineslinevalues                  r   __WriteSingleService$ServiceRegistry.__WriteSingleServiceZ   sA   	//5
4jA^^>EIL$t*- I12!=)723^^6^24C4I4I4K0(3(A(A(4# ?N!(v!>(. /P4A4L4L4N/P )P,1D$+H,0'-2N%P -2 "? $DM 5L CL 3	 "( -<,A,A,C(	B,,MM-000MM/2{DIIf4EF^^%))kAA;O$/$=$=M$0 L +- G!HI"00!((HJ"44!(()<=56 v6$-crND#E40 %3y}5 7! &( 	M,.^^6^2"1">K" #B(3(>(>(@#B BE %#CC$ ' : ,#Hd: !&	 3 S -D9 $ "?!> 32	 "!X 76! &%. 32w s   AN4!M#L;<L;=L)L;-M5BNBM0"M	?M05N<>N>NN)
L83L;;
M
M
M	N
M-)M00
M>:N
NN
N c                    U" 5         U" SU R                  U5      5        UR                  5          UR                  5        Hf  u  pE[        R                  " UR
                  UR                  5       S-
  5       H  nU" SU5        M     U" SUUR                  UR                  5        Mh     SSS5        U" S5        g! , (       d  f       N= f)z3Write a single service declaration to a proto file.zservice %s {   z// %szrpc %s (%s) returns (%s);NrP   )	rU   rV   rX   textwrapwrapr3   CalculateWidthr8   r;   )r   r<   r?   r_   r>   r=   rf   s          r   __WriteProtoServiceDeclaration.ServiceRegistry.__WriteProtoServiceDeclaration   s    	 : :4 @A^^,;,A,A,C($MM+*A*A*1*@*@*BQ*FHDGT*H 3##55#668	 -D  	 s   A;B<<
C
c                 Z   U R                  5         U R                  nU" SUR                  UR                  5        U" 5         U" S5        U" SU R                  5        U" SUR
                  5        U" 5         U R                  R                  5        H  u  p4U R                  XU5        M     g)z4Write the services in this registry to out as proto.z(// Generated services for %s version %s.zsyntax = "proto2";zpackage %s;zimport "%s";N)	r$   r
   r   versionr   messages_proto_file_namer   rX   ._ServiceRegistry__WriteProtoServiceDeclaration)r   r<   r   r?   r_   s        r   WriteProtoFileServiceRegistry.WriteProtoFile   s    ((:##[%8%8	:	$%t~~. D DE	%)%C%C%I%I%K!D//O &Lr"   c           
      
   U R                  5         U R                  nU" SUR                  UR                  5        U" S5        U" 5         U" S5        U" 5         U" SU R                  5        U R
                  (       a  SR                  U R
                  5      nOSnU" SUUR                  5        U" 5         U" 5         U" SUR                  5        UR                  5          U" S	UR                  UR                  5        U" 5         U" S
5        U" SR                  UR                  5      5        U" SR                  UR                  5      5        U" 5         U" SR                  UR                  5      5        U" SR                  UR                  =(       d    S/5      5        U" SR                  UR                  5      5        U" SR                  UR                  5      5        U" SR                  UR                  5      5        U" SR                  UR                  5      5        U" SR                  UR                  5      5        U" SR                  UR                   5      5        U" SR                  UR"                  5      5        U" 5         U" S5        UR                  SS9   U" S5        U" S5        U" S5        U" S5        SSS5        UR                  5          U" SUR                  5        U" S 5        U" S!UR                  5        U" S"5        U" S#5        U" S$5        U" S%5        U" S&5        U" S'5        U" S(5        U R$                  R'                  5        H  nU" S)X@R)                  U5      5        M     SSS5        U R$                  R+                  5        H!  u  pEU R-                  XXRR                  5        M#     SSS5        g! , (       d  f       GN= f! , (       d  f       Nh= f! , (       d  f       g= f)*z+Write the services in this registry to out.z1"""Generated client library for %s version %s."""zD# NOTE: This file is autogenerated and should not be edited by hand.z&from __future__ import absolute_importzfrom %s import base_apiz	from {0}  z%simport %s as messagesz!class %s(base_api.BaseApiClient):z9"""Generated client library for service %s version %s."""zMESSAGES_MODULE = messageszBASE_URL = {0!r}zMTLS_BASE_URL = {0!r}z_PACKAGE = {0!r}z_SCOPES = {0!r}z.https://www.googleapis.com/auth/userinfo.emailz_VERSION = {0!r}z_CLIENT_ID = {0!r}z_CLIENT_SECRET = {0!r}z_USER_AGENT = {0!r}z_CLIENT_CLASS_NAME = {0!r}z_URL_VERSION = {0!r}z_API_KEY = {0!r}z,def __init__(self, url='', credentials=None,z             rF   z,get_credentials=True, http=None, model=None,z&log_request=False, log_response=False,z2credentials_args=None, default_global_params=None,z6additional_http_headers=None, response_encoding=None):Nz"""Create a new %s handle."""zurl = url or self.BASE_URLzsuper(%s, self).__init__(z!    url, credentials=credentials,z<    get_credentials=get_credentials, http=http, model=model,z7    log_request=log_request, log_response=log_response,z&    credentials_args=credentials_args,z0    default_global_params=default_global_params,z4    additional_http_headers=additional_http_headers,z(    response_encoding=response_encoding)zself.%s = self.%s(self))r$   r
   r   rr   r   r   r^   messages_rule_namer`   rV   base_urlmtls_base_urlr   	client_idclient_secret
user_agenturl_versionapi_keyr   keysrU   rX   $_ServiceRegistry__WriteSingleService)r   r<   r   import_prefixr?   r=   s         r   	WriteFileServiceRegistry.WriteFile   s   ((C##[%8%8	:  		89	)4+D+DE'..t/B/BCMM)=..	0		3--	/^^K##[%8%8: I01&--k.B.BCD+22;3L3LMNI&--k.A.ABC%,,"" CABD E &--k.A.ABC(//0E0EFG,33K4M4MNO)001G1GHI077--/ 0*11+2I2IJK&--k.A.ABCIBC7FG@ALM 3 4	 8 !79L9LM45/1N1NP;< ' ( 5 6@AJKNOBC ::??AD5 "<"<T"BD B "" &*%C%C%I%I%K!));0M0MO &L] . 87 "!; s?    GO4(!O	O4!B O#AO4
O 	O4#
O1	-O44
Pc                 Z    XR                   ;   a  [        SU-  5      eX R                   U'   g )Nz$Attempt to re-register descriptor %s)r   
ValueError)r   r-   r_   s      r   __RegisterService!ServiceRegistry.__RegisterService  s3    9996EG G7F&&|4r"   Nc                    0 nU R                   R                  U R                   R                  US   SS9< S35      US'   SUS'   [        R                  " 5       US'   SU;  a  [	        UR                  S	/ 5      5      nO,US   S
S
 nUS	    H  nXT;  d  M
  UR                  U5        M     U H/  n[        US	   U   5      nSU;  a  [        SU-  5      eXsS   U'   M1     UbJ  U R                  X5      nXS   ;   a  [        S5      eSU;  a  SU R                  U5      < S3US'   X#S   U'   U R                  R                  US   U5        US   $ )z&Create a request type for this method.idr2   	separatorRequestobjecttype
propertiesparameterOrder
parametersNzNo type found in parameter %sz)Failed to normalize request resource namer3   zA z+ resource to be passed as the request body.)r   r,   r   r   r)   getr[   dictr   !_ServiceRegistry__GetRequestField _ServiceRegistry__GetRequestTyper   AddDescriptorFromSchema)	r   method_description	body_typeschemaordered_parameterskparameter_namefieldbody_field_names	            r   __CreateRequestType#ServiceRegistry.__CreateRequestType  s   ||--LL""#5d#;s"K/N Ot!v*668|#55!%&8&<&<\2&N!O!34D!Ea!H'5.&--a0 6 1N+L9.IJEU" !@5!HII38< 0	 1
  "44"/O"66 !LMMI- --i8; -( 5>< 177tfMd|r"   c                     0 nU R                   R                  US   SS9nU R                   R                  SU-  5      US'   SUS'   SU-  US'   U R                  R                  US   U5        US   $ )	zCreate an empty response type.r   r2   r   z
%sResponser   r   zAn empty %s response.r3   )r   r,   r   r   )r   r   r   r>   s       r   __CreateVoidResponseType(ServiceRegistry.__CreateVoidResponseType1  s    ll,,t$ - 5||--l[.HIt!v 7+ E}77tfMd|r"   c                    U(       d  gUR                  SS5      nX0R                  ;   a  gU R                  R                  U5      nUc  gUR                   Vs/ s H  oUR
                  PM     nnUR                  S0 5      nUR                  5        H;  u  pU	R                  S5      S:w  d!  U R                  R                  U5      U;  d  M;    g   gs  snf )z:Determine if this method needs a new request type created.Tr   rx   r   locationpathF)	r   r   r   LookupDescriptorOrDiefieldsr?   rX   r   	CleanName)
r   r   request_type	method_idmessagerL   field_namesr   
param_name
param_infos
             r   __NeedRequestType!ServiceRegistry.__NeedRequestType<  s    &**44	999))??M?'.~~6~!vv~6'++L"=
&0&6&6&8"Jz*f4LL**:6kI  '9
  7s   Cc                    [         R                  " SU5      nUc  [        S5      eUR                  SS5      u  p4SnUb7  SSSS	S
.nUR	                  UR                  5       5      nUc  [        SU-  5      e[        U5      SU-  -  $ )zConvert max_size to an int.z(?P<size>\d+)(?P<unit>.B)?$zCould not parse maxSizesizeunitr   
         (   )KBMBGBTBzUnknown unit %s   )rematchr   groupr   upperint)r   max_sizesize_groupsr   r   shift	unit_dicts          r   __MaxSizeToIntServiceRegistry.__MaxSizeToIntP  s    hh=xH677 &&vv6
!2R@IMM$**,/E} !2T!9::4yAJ''r"   c                 l   [         R                  " 5       nSU;   a  U R                  US   5      Ul        SU;  a  [        R
                  " SU5        UR                  R                  UR                  SS5       Vs/ s H  n[        U5      PM     sn5        UR                   H6  n[        R                  U5      (       a  M  [        R
                  " SU5        M8     UR                  S0 5      nS H:  nUR                  U0 5      nS H  n	X;   d  M
  [        X7< S	U	< 3X   5        M!     M<     U$ s  snf )
z+Fill out the upload config for this method.maxSizeacceptzFNo accept types found for upload configuration in method %s, using */*z*/*zUnexpected MIME type: %s	protocols)simple	resumable)	multipartr   _)r   ApiUploadInfo_ServiceRegistry__MaxSizeToIntr   loggingwarningr   extendr   str_MIME_PATTERN_REr   setattr)
r   media_upload_configr   configaaccept_patternr   protocolmediarc   s
             r   __ComputeUploadConfig%ServiceRegistry.__ComputeUploadConfig^  s   '')++"11#I.0FO..OO'(13 	/33HeDFDqCFDF 	G %mmN#)).99 :NK , (++K<	/HMM(B/E-=Fx$>L . 0
 Fs   ;D1c                    U R                   R                  SR                  U R                  R                  US   45      5      nUS   n/ nUR                  S/ 5       H5  nUS   U   n	U	R                  SS5      (       d  M$  UR                  U5        M7     [        R                  " UUUS   [        R                  " UR                  S	S5      5      / / UU R                   R                  U5      U R                   R                  U5      US
9
n
UR                  SS5      nUb=  U R                   R                  U R                  R                  U-   5      nX:w  a  Xl        UR                  SS5      (       a&  U R                  UR                  S5      U5      U
l        UR                  SS5      U
l        UR                  S5      (       a  UR                  S5      U
l        U R"                  R%                  UR                  SS5      5        UR                  S0 5      R'                  5        H|  u  pU R                   R)                  U5      nUS   nUS:X  a  U
R*                  R                  U5        MH  US:X  a  U
R,                  R                  U5        Mk  [/        SU< SU< 35      e   U
R,                  R1                  5         U
R*                  R1                  5         U
$ )z3Compute the base_api.ApiMethodInfo for this method.rx   r   r   r   r   requiredF
httpMethodr3   )
relative_pathr   http_methodr3   query_paramspath_paramsordered_paramsr8   r;   request_fieldflatPathNsupportsMediaUploadmediaUploadsupportsMediaDownload
apiVersionr    r   queryzUnknown parameter location z for parameter )r   NormalizeRelativePathr\   r
   	base_pathr   r[   r   ApiMethodInfor   r4   r,   	flat_path%_ServiceRegistry__ComputeUploadConfigr9   r:   api_version_paramr   updaterX   r   r   r   r   sort)r   r   rQ   responser   r   r   r   r   r   r=   r   paramdescr   s                  r   __ComputeMethodInfo#ServiceRegistry.__ComputeMethodInfov  s    ::GGT''11'/1 23 't,	,001A2FJ+L9*EJ~~j%00%%j1 G ,,'*<8--"&&}b9;)"ll44W=#||55h?'
 '**:t<	 ::"",,y8:I)(1%!!"7??(,(B(B"&&}5y)BK%(:(>(>#U),%!!,//,>,B,B<,PK)  !3!7!7"!EF-11,CIIKKELL**51EJ'H7"((//6V#''..u5  %)* * L 	$$&  %%'r"   c                 F    Uc  gU R                   R                  US   5      $ )Nrx   $ref)r   	FieldNamer   r   s     r   __BodyFieldNameServiceRegistry.__BodyFieldName  s%    ||%%i&788r"   c                 V    U R                   R                  UR                  S5      5      $ )Nr  )r   r,   r   r  s     r   __GetRequestType ServiceRegistry.__GetRequestType  s     ||%%immF&;<<r"   c                 "   U R                  U5      nX1R                  S0 5      ;   a  U R                  R                  SU-  5      nX1R                  S0 5      ;   a5  U R                  R                  SU-  5      nX1R                  S0 5      ;   a  M5  U$ )z,Determine the request field for this method.r   z%s_resourcez%s_body)_ServiceRegistry__BodyFieldNamer   r   r  )r   r   r   r   s       r   __GetRequestField!ServiceRegistry.__GetRequestField  s    ..y944\2FF"ll44/1O !7!7b!II"ll44O+-O !7!7b!II r"   c                    U R                   R                  U5      nUR                  S0 5      n[        R                  " 5       n[        UR                  5       5      nU H  u  pgU R                   R                  U5      nUR                  S5      nUc  Sn	OU R                  U5      n	U R                  Xy5      (       a!  U R                  XxS9n
U R                  Xx5      nOU	n
[        R                  nSU;   a	  US   S   nOU R                  U5      nU R                  XzX5      XF'   M     UR                  S0 5      n[        UR                  5       5      nU H!  u  nnU< SU< 3nU R!                  UU5        M#     U R#                  X5        g)	z<Add a new service named service_name with the given methods.methodsrQ   N)r   r   r  	resourcesr   )r   r   r   r   r   r(   rX   
MethodNamer   !_ServiceRegistry__NeedRequestType#_ServiceRegistry__CreateRequestTyper   r   REQUEST_IS_BODY(_ServiceRegistry__CreateVoidResponseType#_ServiceRegistry__ComputeMethodInfoAddServiceFromResource!_ServiceRegistry__RegisterService)r   r-   r  method_descriptionsr_   rX   r>   r   r   r   rQ   r   r   nested_servicesservicessubservice_name
submethodsnew_service_names                     r   r  &ServiceRegistry.AddServiceFromResource  s   ||--l;%kk)R8%113*0023/4+K,,11+>K +..y9I ##44Y?%%&8GG22& 3 = $ 6 6&!3 ' ( 8 8//-j9&A889KL+/+C+C"X,FO(1 056 "++k26///12+3'OZ*6H''(8*E ,4 	|=r"   )	__all_scopes__base_files_package__client_info__message_registry__names	__package__root_package__service_method_info_map__unelidable_request_methodsr	   )__name__
__module____qualname____firstlineno____doc__r    r$   propertyr   rU   r]   r   rt   ru   r   r  r  r  r  r   r   r  r
  r   r   r  __static_attributes__r   r"   r   r   r   !   s    %;+ / /@:JXPFOPG@	((04l9
='>r"   r   )r,  r   r   r   rl   apitools.base.pyr   apitools.genr   compiler   r   r   r   r"   r   <module>r2     s<   " %   	  % 
 ::>? G>f G>r"   