MCPcopy Create free account
hub / github.com/aws/aws-cli / WizardValues

Class WizardValues

awscli/customizations/wizard/app.py:293–354  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

291
292
293class WizardValues(MutableMapping):
294 def __init__(
295 self, definition, value_retrieval_steps=None, exception_handler=None
296 ):
297 self._definition = definition
298 if value_retrieval_steps is None:
299 value_retrieval_steps = {}
300 self._value_retrieval_steps = value_retrieval_steps
301 self._values = {}
302 self._value_definitions = self._collect_all_value_definitions()
303 self._exception_handler = exception_handler
304
305 def __getitem__(self, key):
306 if key not in self._values and key in self._value_definitions:
307 value_definition = self._value_definitions[key]
308 if value_definition['type'] in self._value_retrieval_steps:
309 retrieval_step = self._value_retrieval_steps[
310 value_definition['type']
311 ]
312 try:
313 return retrieval_step.run_step(value_definition, self)
314 except Exception as e:
315 if self._exception_handler is not None:
316 return self._exception_handler(e)
317 raise
318 return self._values[key]
319
320 def __setitem__(self, key, value):
321 self._values[key] = value
322
323 def __delitem__(self, key):
324 del self._values[key]
325
326 def __iter__(self):
327 return iter(self._values)
328
329 def __len__(self):
330 return len(self._values)
331
332 def __str__(self):
333 return str(self._values)
334
335 def _collect_all_value_definitions(self):
336 value_definitions = {}
337 plan = self._definition['plan']
338 for section_name, section_definition in plan.items():
339 if section_name == core.DONE_SECTION_NAME:
340 continue
341 for name, value_definition in section_definition['values'].items():
342 value_definitions[name] = value_definition
343 return value_definitions
344
345 def __copy__(self):
346 new_vars = type(self)(
347 self._definition,
348 self._value_retrieval_steps,
349 )
350 for varname, value in self.items():

Callers 2

get_wizard_valuesMethod · 0.90
create_wizard_appFunction · 0.90

Calls

no outgoing calls

Tested by 1

get_wizard_valuesMethod · 0.72