U (f@stddlZddlmZmZmZmZddlmZddlm Z GdddZ GdddZ Gd d d Z Gd d d Z dS) N)CallableIterableOptionalUnion)messages) HelpCategoryc@s>eZdZdeeeedddZeejej fdddZ dS) ProArgumentN) long_namehelp short_namecKs(|dkr|fn||f|_||_||_dSN)namesr additional_args)selfr r r kwargsr7/usr/lib/python3/dist-packages/uaclient/cli/commands.py__init__ szProArgument.__init__)targetcCs|j|jd|ji|jdS)Nr ) add_argumentr r r)rrrrrregisterszProArgument.register)N) __name__ __module__ __qualname__strrrrargparseArgumentParserZ_ArgumentGrouprrrrrrs rc@s"eZdZdeeedddZdS)!ProArgumentMutuallyExclusiveGroupFrrequired argumentscCs||_||_dSr r)rrr rrrrsz*ProArgumentMutuallyExclusiveGroup.__init__N)Fr)rrrboolrrrrrrrrs rc@sBeZdZd eeeeeeeedddZe j dddZ dS) ProArgumentGroupNrtitle descriptionr mutually_exclusive_groupscCs||_||_||_||_dSr r#)rr$r%r r&rrrr)s zProArgumentGroup.__init__)parsercCsd|}|jr||j|j}|jD]}||q |jD](}|j|jd}|jD]}||qNq6dS)N)r)r$Zadd_argument_groupr%r rr&Zadd_mutually_exclusive_groupr)rr'rZargumentgroupZ new_grouprrrr7s    zProArgumentGroup.register)NNrr) rrrrrrrrrrrrrrrrr"(s r"c @sXeZdZdddddddfeeeeeeeedee e d dd Z e j d d d ZdS) ProCommandcOsdSr r)argsrrrrOzProCommand.FrNr namer r%actionpreserve_descriptionargument_groups subcommands help_category help_positionc Cs:||_||_||_||_||_||_||_||_| |_dSr r-) rr.r r%r/r0r1r2r3r4rrrrJs zProCommand.__init__) subparserscCs|j|j|j|jd|_|jr(tj|j_|j rJ|jj |j |j|j|j d|j D]}| |jqP|jj|jd|jr|jjtjdd}|jD]}| |qdS)N)r r%)categoryr.Z help_stringZposition)r/command)r$dest)Z add_parserr.r r%r'r0rZRawDescriptionHelpFormatterZformatter_classr3Zadd_help_entryr4r1rZ set_defaultsr/r2Zadd_subparsersrZCLI_AVAILABLE_COMMANDS)rr5Zargument_groupr7rrrr`s0   zProCommand.register)rrrrrr!rr"rrintrrZ_SubParsersActionrrrrrr)Is$ r))rtypingrrrrZuaclientrZuaclient.cli.parserrrrr"r)rrrrs   !