File: C:/Users/fred/anaconda3/Lib/site-packages/anaconda_project/status.py
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) 2016, Anaconda, Inc. All rights reserved.
#
# Licensed under the terms of the BSD 3-Clause License.
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------
"""The Status type."""
from __future__ import absolute_import
from abc import ABCMeta, abstractmethod
from anaconda_project.internal.metaclass import with_metaclass
class Status(with_metaclass(ABCMeta)):
"""Class describing a failure or success status, with logs.
Values of this class evaluate to True in a boolean context
if the status is successful.
Values of this class are immutable.
"""
def __init__(self):
"""Construct an abstract Status."""
@property
@abstractmethod
def status_description(self):
"""Get a one-line-ish description of the status."""
pass # pragma: no cover
@property
@abstractmethod
def errors(self):
"""Get error logs relevant to the status.
A rule of thumb for this field is that anything in here should also have been
logged to a ``Frontend`` instance, so this field is kind of just a cache
of error messages generated by a particular operation for the convenience
of the caller.
"""
pass # pragma: no cover