3 @qhc @sUddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z m Z m Z mZmZddlmZddlZddlmZejdZejdZiZe ee ee e edfe edfefffed edefd Zeedfeee edffe edfe edfe eeegefd d d Zd%ee eddddZ eee edddZ!eedddZ"d&eej#dddZ$ej#dddZ%eeddd Z&ej#dd!d"Z'ddd#d$Z(dS)'N) ModuleType) AnyCallablecastDictOptionalTupleTypeTypeVarUnion)CaseInsensitiveDict) RESTObjectz([A-Z]+)([A-Z][a-z])z([a-z\d])([A-Z]).__F)bound) cls_names mandatoryoptional custom_actionreturncsttdfdd }|S)N)frcstjtttdfdd }d}ttr4}nf}x^|D]V}|}|jdrb|jdd}d}|tkrrit|<pjjdd }|ft||<q@Wt t |S) N)argskwargsrcs ||S)N)rr)rrI/home/ec2-user/environment/venv/lib/python3.6/dist-packages/gitlab/cli.py wrapped_f;sz7register_custom_action..wrap..wrapped_fTManagerF_-) functoolswrapsr isinstancetupleendswithreplacecustom_actions__name__rr)rrZin_objclassesZcls_name final_nameaction)rrrr)rrwrap:s     z$register_custom_action..wrap)r)rrrrr*r)rrrrrregister_custom_action4sr+)msgercCs.|rd||f}tjj|dtjddS)Nz%s (%s) )sysstderrwriteexit)r,r-rrrdieVs r4)what namespacercCst|j}|jdd}||S)Nrr)r __dict__r$)r5r6r'Zlowercase_classrrr what_to_cls]s  r8)clsrcCs"tjd|j}tjd|}|jS)Nz\1-\2)camel_upperlower_regexsubr&camel_lowerupper_regexlower)r9Zdasherized_uppercaseZdasherized_lowercaserrr cls_to_whatds r>T)add_helprcCstj|dd}|jdddd|jddd d dd|jd d d dd|jddddd|jddddd|jdddddddgdd|jdd d!dd|S)"Nz!GitLab API Command Line Interface)r? descriptionz --versionzDisplay the version. store_true)helpr)z-vz --verbosez--fancyz!Verbose mode (legacy format only)z-dz--debugz"Debug mode (display HTTP requests)z-cz --config-fileappendz6Configuration file to use. Can be used multiple times.)r)rBz-gz--gitlabz_Which configuration section should be used. If not defined, the default selection will be used.F)rBrequiredz-oz--outputz)Output format (v4 only): json|legacy|yamljsonlegacyZyaml)rBrDchoicesdefaultz-fz--fieldszNFields to display in the output (comma separated). Not used with legacy output)argparseArgumentParser add_argument)r?parserrrr_get_base_parserjsD rM)rcCsddl}t}|jjj|S)Nr)Z gitlab.v4.clirMv4cliZ extend_parser)gitlabrLrrr _get_parsersrQ)vrcCszt|trv|jdrvy$t|dd }|jSQRXWn<tk rt}z tjjd|tj dWYdd}~XnX|S)N@r/z%s ) r!str startswithopenread Exceptionr0r1r2r3)rRflr-rrr _parse_valuesrZcCsdtjkrtjdtS)z Provide a statically generated parser for sphinx only, so we don't need to provide dummy gitlab config for readthedocs. Zsphinxz-Docs parser is only intended for build_sphinx)r0modulesr3rQrrrrdocss  r\c,Cs dtjkrttjtjdtdd}|jtj\}}ytjj |j|j }WnVtjj k r}z6dtjksxdtjkr|j tjdtj|WYdd}~XnX|j dkrtd|j d t}yddl}|j|Wntk rYnX|j}|j }|j}|j} |j} g} |jr4d d |jjd D} |j} |j} |j}t|}xdD]}|j|qTWdd|jD}y2tjj||}|j s|j!s|j"r|j#Wn0tk r}zt$t%|WYdd}~XnX| r|j&tj'j(j)||| || | | dS)Nz --versionrF)r?z--helpz-h4zgitlab.v%s.cli)namecSsg|] }|jqSr)strip).0xrrr szmain..,rP config_fileverbosedebugr5whactionversionoutputcSs"i|]\}}|dk rt||qS)N)rZ)r`krRrrr szmain..)r])rPrdrerfr5rgrhri)*r0argvprintrP __version__r3rMparse_known_argsconfigZGitlabConfigParserrdZ ConfigError print_help api_versionModuleNotFoundErrorrQ argcomplete autocompleterX parse_argsrerifieldssplitrfrgr5varspopitemsZGitlabZ from_configZ private_tokenZ oauth_tokenZ job_tokenauthr4rTZ enable_debugrNrOrun)rLoptionsrrpr-rtr config_filesZ gitlab_idrerirwrfr)r5Z args_dictitemglrrrmainsh       r)N)T))rIrrer0typesrtypingrrrrrrr r r Zrequests.structuresr Z gitlab.configrPZ gitlab.baser compiler:r<r%rTboolrr"r+rXr4r8r>rJrMrQrZr\rrrrrs2 ,    204