a *Na @sUddlZddlZddlZddlZddlmZddlmZmZm Z m Z m Z m Z m Z mZmZddlmZddlZddlmZedZedZiZe ee ee e edfe edfefffed <ed edefd Zeedfeee edffe edfe edfe eeegefd d dZd&ee e ddddZ!eee edddZ"eedddZ#d'eej$dddZ%ej$dddZ&eedd d!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]).custom_actions__F)bound) cls_names mandatoryoptional custom_actionreturncsttdfdd }|S)N)frcsttttdfdd }d}ttr4}nf}|D]V}|}|dr`|dd}d}|tvrpit|<pjdd }|ft||<q>t t |S) N)argskwargsrcs|i|SN)rrrre/private/var/folders/js/6pj4vh5d4zd0k6bxv74qrbhr0000gr/T/pip-target-22xwyzbs/lib/python/gitlab/cli.py wrapped_f;sz7register_custom_action..wrap..wrapped_fTManagerF_-) functoolswrapsr isinstancetupleendswithreplacer__name__rr)rrZin_objclassescls_name final_nameactionrrrrrrwrap:s    z$register_custom_action..wrap)r)rrrrr.rr-rregister_custom_action4sr/)msgercCs.|rd||f}tj|dtddS)Nz%s (%s) )sysstderrwriteexit)r0r1rrrdieVs r8)what namespacercCst|j}|dd}||S)Nr!r)r __dict__r')r9r:r)Zlowercase_classrrr what_to_cls]s  r<)clsrcCs"td|j}td|}|S)Nz\1-\2)camel_upperlower_regexsubr(camel_lowerupper_regexlower)r=Zdasherized_uppercaseZdasherized_lowercaserrr cls_to_whatds rBT)add_helprcCstj|dd}|jdddd|jddd d dd|jd d d dd|jddddd|jddddd|jddddgddd|jddd dd|S)!Nz!GitLab API Command Line Interface)rC description --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,rGz-gz--gitlabz_Which configuration section should be used. If not defined, the default selection will be used.F)rGrequiredz-oz--outputz)Output format (v4 only): json|legacy|yaml)jsonlegacyZyamlrK)rGrIchoicesdefaultz-fz--fieldszNFields to display in the output (comma separated). Not used with legacy output)argparseArgumentParser add_argument)rCparserrrr_get_base_parserjsR  rR)rcCsddl}t}|jj|S)Nr)Z gitlab.v4.clirRv4cliZ extend_parser)gitlabrQrrr _get_parsersrV)vrc Cst|tr|drz>t|dd}|WdWS1sF0YWn>ty}z&tjd|t dWYd}~n d}~00|S)N@r3z%s ) r$str startswithopenread Exceptionr4r5r6r7)rWflr1rrr _parse_values, r_cCsdtjvrtdtS)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)r4modulesr7rVrrrrdocss  rac Csdtjvrttjtdtdd}|tj\}}ztj |j|j }WnXtjj y}zzmain..,)rU config_fileverbosedebugr9whactionversionoutputcSs"i|]\}}|dur|t|qSr)r_)rekrWrrr rhzmain..)*r4argvprintrU __version__r7rRZparse_known_argsconfigZGitlabConfigParserrjZ ConfigError print_help api_versionModuleNotFoundErrorrV argcomplete autocompleter] parse_argsrkrofieldssplitrlrmr9varspopitemsZGitlabZ from_configZ private_tokenZ oauth_tokenZ job_tokenauthr8rYZ enable_debugrSrTrun)rQoptionsr rur1ryr config_filesZ gitlab_idrkror|rlr,r9Z args_dictitemglrrrmainsX          "r)N)T)*rNr"rer4typesrtypingrrrrrrr r r Zrequests.structuresr Z gitlab.configrUZ gitlab.baser compiler>r@rrYbool__annotations__rr%r/r]r8r<rBrOrRrVr_rarrrrrs<  ,    6   "4