
     )                     V    S r SSKrSSKJr  SSKJr  SSKJr  S rS r " S S	\5      r	g)
zSimple tool for generating a client library.

Relevant links:
  https://developers.google.com/discovery/v1/reference/apis#resource
    N)message_registry)service_registry)utilc                       SSK n  U R                  S5      R                  $ ! [         a     gf = f! U R                   a     gf = f)zCReturns version of the currently installed google-apitools package.r   NzX.X.Xzgoogle-apitools)pkg_resourcesImportErrorget_distributionversionDistributionNotFound)r   s    .lib/third_party/apitools/gen/gen_client_lib.py_ApitoolsVersionr      sT    --.?@HHH   -- s   " 2 
//AAc                 L    SSSU R                  S0 5      S.nSSSS	.US
   S'   U$ )z*Sets up dict of standard query parameters.StandardQueryParametersobjectz)Query parameters accepted by all methods.
parameters)idtypedescription
propertiesstringzIA tracing token of the form "token:<tokenid>" to include in api requests.query)r   r   locationr   trace)get)discovery_docstandard_query_schemas     r   _StandardQueryParametersSchemar   *   sL     (B#''b9	 6	4,'0 !     c                       \ rS rSrSr   SS jr\S 5       r\S 5       r\S 5       r	\S 5       r
\S	 5       r\S
 5       r\S 5       rS rS rS rS rS rS rS rS rSrg)DescriptorGenerator<   z.Code generator for a given discovery document.Nc           	         Xl         X l        XPl        Xl        [        R
                  " U R                   R                  SS5      5      U l        U R                  R                  U l	        U R                  R                  U l        UR                  SS5      U l        Xl        X@l        X`l        Xpl        X0l        [$        R&                  " U R                  U R"                  U R                  U R                  U R                  U R                   5      U l        U R                   R                  S0 5      n[+        UR-                  5       5       H   u  pU R(                  R/                  X5        M"     [1        U R                   5      nU R(                  R/                  US   U5        U R(                  R3                  5         [4        R6                  " U R                  U R(                  U R"                  U R                  U R                  U
=(       d    / 5      U l        U R                   R                  S0 5      n[+        UR-                  5       5       H"  u  nnU R8                  R;                  UU5        M$     U R                   R                  S/ 5      nU(       a  U R8                  R;                  S	SU05        U R                  R=                  U R8                  R>                  S
9U l        U(       a  UU l!        g [A        5       U l!        g )Nr    revision1schemasr   	resourcesmethodsapi)scopes)"#_DescriptorGenerator__discovery_doc!_DescriptorGenerator__client_info_DescriptorGenerator__outdir _DescriptorGenerator__use_proto2r   CleanDescriptionr   !_DescriptorGenerator__descriptionpackage_DescriptorGenerator__packager
   _DescriptorGenerator__version_DescriptorGenerator__revision)_DescriptorGenerator__init_wildcards_file"_DescriptorGenerator__root_package(_DescriptorGenerator__base_files_package&_DescriptorGenerator__protorpc_package_DescriptorGenerator__namesr   MessageRegistry&_DescriptorGenerator__message_registrysorteditemsAddDescriptorFromSchemar   FixupMessageFieldsr   ServiceRegistry'_DescriptorGenerator__services_registryAddServiceFromResource_replacer*   r   &_DescriptorGenerator__apitools_version)selfr   client_infonamesroot_packageoutdirbase_packageprotorpc_packageinit_wildcards_file
use_proto2unelidable_request_methodsapitools_versionr&   schema_nameschemar   servicesservice_namer(   api_methodss                       r   __init__DescriptorGenerator.__init__@   s     -(&!22  $$]B79++33++33'++J<%8"*$0!"2 #3"B"Bd.@.@!:!:###% &&**9b9#)'--/#:K##;;% $;
 !?  !"77!$')>	@
 	224#3#C#C##LL%%&,"$.  ''++K<%+HNN,<%=!L'$$;;g' &> **..y"=$$;;	;/1 "//88++22 9 4 !1 	6F6H 	r   c                     U R                   $ N)r,   rE   s    r   rF   DescriptorGenerator.client_info   s    !!!r   c                     U R                   $ rX   )r+   rY   s    r   r   !DescriptorGenerator.discovery_doc   s    ###r   c                     U R                   $ rX   )r9   rY   s    r   rG   DescriptorGenerator.names   s    ||r   c                     U R                   $ rX   )r-   rY   s    r   rI   DescriptorGenerator.outdir   s    }}r   c                     U R                   $ rX   )r2   rY   s    r   r1   DescriptorGenerator.package   s    ~~r   c                     U R                   $ rX   )r.   rY   s    r   rM   DescriptorGenerator.use_proto2   s       r   c                     U R                   $ rX   )rD   rY   s    r   rO   $DescriptorGenerator.apitools_version   s    &&&r   c                 2    [         R                  " U5      nU$ rX   )r   SimplePrettyPrinterrE   outprinters      r   _GetPrinterDescriptorGenerator._GetPrinter   s    **3/r   c                    U R                  U5      nU R                  (       a&  U" SU R                  R                  5        U" S5        OU" S5        U" 5         U" S5        U" 5         U" S5        U" 5         U R                  (       av  U" SU R                  5        U R
                  S:X  a  SnOSU R
                  -  nU" S	X0R                  R                  5        U" S	X0R                  R                  5        U" 5         U" S
5        g)z4Write a simple __init__.py for the generated client.z5"""Common imports for generated %s client library."""z # pylint:disable=wildcard-importz"""Package marker file."""z&from __future__ import absolute_importzimport pkgutilzfrom %s import *.z%s.zfrom %s%s import *z2__path__ = pkgutil.extend_path(__path__, __name__)N)rl   r5   r,   r1   r7   r6   client_rule_namemessages_rule_name)rE   rj   rk   import_prefixs       r   	WriteInitDescriptorGenerator.WriteInit   s    ""3'%%K&&..06701	89	 !	%%&(A(AB""c) # %(;(; ;(!#5#5#F#FH(!#5#5#H#HJIDEr   c                 t    U R                  U5      nU" S5        U" S5        U" 5         U" S5        U" S5        g)z9Write a simple __init__.py for an intermediate directory.z#!/usr/bin/env pythonz&"""Shared __init__.py for apitools."""zfrom pkgutil import extend_pathz*__path__ = extend_path(__path__, __name__)N)rl   ri   s      r   WriteIntermediateInit)DescriptorGenerator.WriteIntermediateInit   s;    ""3''(89	12<=r   c                 ,   U R                  U5      n[        R                  R                  5       R                  nU" SU-  5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S5        U" S	5        U" S
5        U" S5        U" 5         U" S5        U" S5        UR	                  SS9   U R
                  R                  S5      nUR                  S5      nUR                  S5      nU" SU R
                  XV5        U" S5        U" S5        SSS5        U" S5        U" SU R                  -  5        U" 5         U" S5        UR	                  SS9   U" SU R                  U R                  5        U" SU R
                  U R                  5        U" SU R                  < S35        U" S5        U" S5        U" S5        U" S 5        U" S!5        U" S"5        UR	                  SS9   U" S#5        U" S$5        SSS5        U" S%5        U" S&5        U" S'U R                  < S(U R                  < S35        SSS5        U" S)5        g! , (       d  f       GN<= f! , (       d  f       Nf= f! , (       d  f       N:= f)*z$Write a setup.py for upload to PyPI.z/# Copyright %s Google Inc. All Rights Reserved.#z@# Licensed under the Apache License, Version 2.0 (the"License");zB# you may not use this file except in compliance with the License.z)# You may obtain a copy of the License atz.#   http://www.apache.org/licenses/LICENSE-2.0zE# Unless required by applicable law or agreed to in writing, softwarezC# distributed under the License is distributed on an "AS IS" BASIS,zJ# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.zE# See the License for the specific language governing permissions andz # limitations under the License.zimport setuptoolszREQUIREMENTS = [z    )indentro   r   z"google-apitools>=%s,~=%s.%s",z"httplib2>=0.9",z"oauth2client>=1.4.12",N]z _PACKAGE = "apitools.clients.%s"zsetuptools.setup(zname="google-apitools-%s-%s",zversion="%s.%s",z0description="Autogenerated apitools library for z",z)url="https://github.com/google/apitools",zauthor="Craig Citro",z%author_email="craigcitro@google.com",z$packages=setuptools.find_packages(),zinstall_requires=REQUIREMENTS,zclassifiers=[z("Programming Language :: Python :: 2.7",z5"License :: OSI Approved :: Apache Software License",z],zlicense="Apache 2.0",zkeywords="apitools apitools- ))rl   datetimenowyearIndentrO   splitpopr2   r3   r4   )rE   rj   rk   r   partsmajorminors          r   WriteSetupPy DescriptorGenerator.WriteSetupPy   sk   ""3'  $$&++ADHI  	  	 ;<@A  	  	 & 	' " 	#23	#$"#^^6^*))//4EIIaLEIIaLE4))59&'-. + 	2T^^CD	#$^^6^*3NNDNN4&))4??<! "?@+,;<:;45O$v.BC $ % / DM+,0 1' +* 	E +*4 /. +*s2   A"I"0BJI4=J"
I14
J	>J
Jc                 X    U R                   R                  U R                  U5      5        g rX   )r;   	WriteFilerl   rE   rj   s     r   WriteMessagesFile%DescriptorGenerator.WriteMessagesFile  s!    ))$*:*:3*?@r   c                 X    U R                   R                  U R                  U5      5        g rX   )r;   WriteProtoFilerl   r   s     r   WriteMessagesProtoFile*DescriptorGenerator.WriteMessagesProtoFile  s!    ..t/?/?/DEr   c                 X    U R                   R                  U R                  U5      5        g rX   )rA   r   rl   r   s     r   WriteServicesProtoFile*DescriptorGenerator.WriteServicesProtoFile	  s!      //0@0@0EFr   c                 X    U R                   R                  U R                  U5      5        g rX   )rA   r   rl   r   s     r   WriteClientLibrary&DescriptorGenerator.WriteClientLibrary  s!      **4+;+;C+@Ar   )__apitools_version__base_files_package__client_info__description__discovery_doc__init_wildcards_file__message_registry__names__outdir	__package__protorpc_package
__revision__root_package__services_registry__use_proto2	__version)TFNr#   )__name__
__module____qualname____firstlineno____doc__rU   propertyrF   r   rG   rI   r1   rM   rO   rl   rs   rv   r   r   r   r   r   __static_attributes__ r   r   r    r    <   s    8 FJ>B"$?JB " " $ $       ! ! ' 'F6><|AFGBr   r    )
r   r~   apitools.genr   r   r   r   r   r   r    r   r   r   <module>r      s2   "  ) ) 	!$QB& QBr   