def __init__(self, *names, **attrs):
self._attrs = attrs<EOL>self._short_opts = []<EOL>self._long_opts = []<EOL>self.dest = attrs.get("<STR_LIT>")<EOL>if "<STR_LIT>" in (attrs.get("<STR_LIT>") or "<STR_LIT>"):<EOL><INDENT>warnings.warn(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>',<EOL>DeprecationWarning,<EOL>stacklevel=<NUM_LIT:3>,<EOL>)<EOL><DEDENT>try:<EOL><INDENT>typ = attrs["<STR_LIT:type>"]<EOL><DEDENT>except KeyError:<EOL><INDENT>pass<EOL><DEDENT>else:<EOL><INDENT>if isinstance(typ, six.string_types):<EOL><INDENT>if typ == "<STR_LIT>":<EOL><INDENT>warnings.warn(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % (typ, names),<EOL>DeprecationWarning,<EOL>stacklevel=<NUM_LIT:4>,<EOL>)<EOL>attrs["<STR_LIT:type>"] = type(attrs["<STR_LIT>"][<NUM_LIT:0>])<EOL><DEDENT>else:<EOL><INDENT>warnings.warn(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>"<STR_LIT>" % (typ, names),<EOL>DeprecationWarning,<EOL>stacklevel=<NUM_LIT:4>,<EOL>)<EOL>attrs["<STR_LIT:type>"] = Argument._typ_map[typ]<EOL><DEDENT>self.type = attrs["<STR_LIT:type>"]<EOL><DEDENT>else:<EOL><INDENT>self.type = typ<EOL><DEDENT><DEDENT>try:<EOL><INDENT>self.default = attrs["<STR_LIT:default>"]<EOL><DEDENT>except KeyError:<EOL><INDENT>pass<EOL><DEDENT>self._set_opt_strings(names)<EOL>if not self.dest:<EOL><INDENT>if self._long_opts:<EOL><INDENT>self.dest = self._long_opts[<NUM_LIT:0>][<NUM_LIT:2>:].replace("<STR_LIT:->", "<STR_LIT:_>")<EOL><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>self.dest = self._short_opts[<NUM_LIT:0>][<NUM_LIT:1>:]<EOL><DEDENT>except IndexError:<EOL><INDENT>raise ArgumentError("<STR_LIT>", self)<EOL><DEDENT><DEDENT><DEDENT>
store parms in private vars for use in add_argument