Source code for dob.facts.save_confirmed

# This file exists within 'dob':
#
#   https://github.com/hotoffthehamster/dob
#
# Copyright © 2018-2020 Landon Bouma,  2015-2016 Eric Goller.  All rights reserved.
#
# 'dob' is free software: you can redistribute it and/or modify it under the terms
# of the GNU General Public License  as  published by the Free Software Foundation,
# either version 3  of the License,  or  (at your option)  any   later    version.
#
# 'dob' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY  or  FITNESS FOR A PARTICULAR
# PURPOSE.  See  the  GNU General Public License  for  more details.
#
# You can find the GNU General Public License reprinted in the file titled 'LICENSE',
# or visit <http://www.gnu.org/licenses/>.

from gettext import gettext as _

import sys


__all__ = (
    'prompt_and_save_confirmed',
)


# ***

[docs]def prompt_and_save_confirmed( controller, edit_facts=None, orig_facts=None, use_carousel=False, backup_callback=None, file_out=None, rule='', yes=False, dry=False, progress=None, **kwargs, ): """""" def _prompt_and_save_confirmed(): saved_facts = [] if not edit_facts: return saved_facts must_isatty_unless_testing() saved_facts = launch_carousel_or_prompt_directly() return saved_facts def must_isatty_unless_testing(): if ( not use_carousel or sys.stdin.isatty() or 'input' in kwargs # PTK3's input test hook. ): return raise Exception(_( 'Commands requires user confirmation, or --yes or --dry.' )) def launch_carousel_or_prompt_directly(): if use_carousel: return launch_carousel() else: return prompt_directly() def launch_carousel(): # Not just lazy loading, but allows test_save_backedup to mock away. from dob_viewer.traverser.save_confirmer import prompt_and_save_confirmer prompt_and_save_confirmer( controller, edit_facts=edit_facts, orig_facts=orig_facts, backup_callback=backup_callback, dry=dry, **kwargs, ) return [] def prompt_directly(): # Not just lazy loading, but allows test_save_backedup to mock away. from .save_confirmer import prompt_and_save_confirmer saved_facts = prompt_and_save_confirmer( controller, edit_facts=edit_facts, orig_facts=orig_facts, backup_callback=backup_callback, file_out=file_out, rule=rule, yes=yes, dry=dry, progress=progress, **kwargs, ) return saved_facts # *** return _prompt_and_save_confirmed()