MCPcopy Index your code
hub / github.com/pyinvoke/invoke / arg_opts

Method arg_opts

invoke/tasks.py:190–237  ·  view source on GitHub ↗
(
        self, name: str, default: str, taken_names: Set[str]
    )

Source from the content-addressed store, hash-verified

188 return positional
189
190 def arg_opts(
191 self, name: str, default: str, taken_names: Set[str]
192 ) -> Dict[str, Any]:
193 opts: Dict[str, Any] = {}
194 # Whether it's positional or not
195 opts["positional"] = name in self.positional
196 # Whether it is a value-optional flag
197 opts["optional"] = name in self.optional
198 # Whether it should be of an iterable (list) kind
199 if name in self.iterable:
200 opts["kind"] = list
201 # If user gave a non-None default, hopefully they know better
202 # than us what they want here (and hopefully it offers the list
203 # protocol...) - otherwise supply useful default
204 opts["default"] = default if default is not None else []
205 # Whether it should increment its value or not
206 if name in self.incrementable:
207 opts["incrementable"] = True
208 # Argument name(s) (replace w/ dashed version if underscores present,
209 # and move the underscored version to be the attr_name instead.)
210 original_name = name # For reference in eg help=
211 if "_" in name:
212 opts["attr_name"] = name
213 name = translate_underscores(name)
214 names = [name]
215 if self.auto_shortflags:
216 # Must know what short names are available
217 for char in name:
218 if not (char == name or char in taken_names):
219 names.append(char)
220 break
221 opts["names"] = names
222 # Handle default value & kind if possible
223 if default not in (None, inspect.Signature.empty):
224 # TODO: allow setting 'kind' explicitly.
225 # NOTE: skip setting 'kind' if optional is True + type(default) is
226 # bool; that results in a nonsensical Argument which gives the
227 # parser grief in a few ways.
228 kind = type(default)
229 if not (opts["optional"] and kind is bool):
230 opts["kind"] = kind
231 opts["default"] = default
232 # Help
233 for possibility in name, original_name:
234 if possibility in self.help:
235 opts["help"] = self.help.pop(possibility)
236 break
237 return opts
238
239 def get_arguments(
240 self, ignore_unknown_help: Optional[bool] = None

Callers 1

get_argumentsMethod · 0.95

Calls 2

translate_underscoresFunction · 0.85
popMethod · 0.45

Tested by

no test coverage detected