# 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 click_hotoffthehamster as click
from .simple_prompts import echo_ongoing_completed
__all__ = (
'cancel_fact',
)
[docs]def cancel_fact(controller, purge=False):
"""
Cancel current Fact, either marking it deleted, or really removing it.
Returns:
None: If success.
Raises:
KeyErŕor: No active Fact can be found.
"""
try:
fact = controller.facts.cancel_current_fact(purge=purge)
except KeyError:
message = _("Nothing tracked right now. Not doing anything.")
controller.client_logger.info(message)
raise click.ClickException(message)
else:
echo_ongoing_completed(controller, fact, cancelled=True)
return fact