def ask_and_confirm(self, additional_readonly_items=None, prepend_listpacking_items=True): confirm_question = Question('Are these answers correct? ' + '[yes/abort/retry]', value='confirm', validator=CompactListValidator( choices=['yes', 'abort', 'retry'])) while True: answers = self.ask() lp = ListPack(map(lambda q: (q.printable_name, answers[q.value]), self.questions)) # add in items that were not asked as questions but should be # displayed alongside that information if additional_readonly_items: if prepend_listpacking_items: for item in additional_readonly_items: lp.prepend_item(item) else: for item in additional_readonly_items: lp.append_item(item) print lp confirm_answer = confirm_question.ask() if confirm_answer['confirm'] == 'yes': return answers if confirm_answer['confirm'] != 'retry': return None
def ask_and_confirm(self, additional_readonly_items: List = None, prepend_listpacking_items: bool = True) -> Union[Dict, None]: confirm_question = Question('Are these answers correct? ' + '[yes/abort/retry]', value='confirm', validator=CompactListValidator( choices=['yes', 'abort', 'retry'])) while True: answers = self.ask() lp = ListPack( [(q.printable_name, answers[q.value]) for q in self.questions]) # add in items that were not asked as questions but should be # displayed alongside that information if additional_readonly_items: if prepend_listpacking_items: for item in additional_readonly_items: lp.prepend_item(item) else: for item in additional_readonly_items: lp.append_item(item) print(lp) confirm_answer = confirm_question.ask() if confirm_answer['confirm'] == 'yes': return answers if confirm_answer['confirm'] != 'retry': return None
def __str__(self): try: from qav.listpack import ListPack except: return str(self.to_tuples()) return str(ListPack(self.to_tuples()))
def test_defaults(self): deets = [('name', 'Cicero'), ('occupation', 'orator')] lp = ListPack(deets) assert str( lp ) == '\n\x1b[1mname\x1b[0m: Cicero \x1b[1moccupation\x1b[0m: orator '
def test_prepend_item(self): lp = ListPack([('a', 'b')]) lp.prepend_item(('c', 'd')) assert str(lp) == '\n\x1b[1mc\x1b[0m: d \x1b[1ma\x1b[0m: b '
def test_calc(self): assert ListPack().calc(('name', 'Cicero')) == 14
def test_non_defaults(self): deets = [('name', 'Cicero'), ('occupation', 'orator')] lp = ListPack(deets, sep='# ', padding=' ', indentation=2) assert str( lp ) == '\n \x1b[1mname\x1b[0m# Cicero \x1b[1moccupation\x1b[0m# orator '