EVOLUTION-MANAGER
Edit File: ExitStatusMixins.cpython-36.pyc
3 x?ag� � @ s� d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd� de�ZG dd � d e�ZG d d� de�Z G dd � d e�Z G dd� de�ZdS )a% ExitStatusMixins - Mixins for exceptions to associate distinguishing exit status values These mixins are defined based on the types of error that can occur. Each mixin is assigned a specific exit status value to disambiguate the error type via exit status of user-facing utilities. The values start at 3 to provide distinction from common failure exit statuses (1 - something went wrong, 2 - argument error) that may be produced by user-facing utilities. In accord with mixin best practices these mixins are to be specified *before* an exception's superclass exception in the exception's definition. This allows for a subsystem base exception to provide a subsystem-wide exit status and for subsystem specific exceptions to specialize the exit status as appropriate. To avoid subclass proliferation simply to provide specific exit statuses one can chose to create a subsystem base exception using any of the ExitStatus hierachy classes (though, generally, one should probably only use ExitStatus itself) and provide a specific exit status for an exception at instantiation by passing any of the ExitStatus hierarchy classes as the 'exitStatus' instantiation parameter. $Id: //eng/vdo-releases/aluminum/src/python/vdo/vdomgmnt/ExitStatusMixins.py#1 $ � )�absolute_import)�division)�print_function)�unicode_literalsc s2 e Zd ZdZdZedd� �Zd� fdd� Z� ZS ) � ExitStatusz�Base class for all ExistStatusMixins. Provides a default exit status value to be interpreted solely as an error occurred. � c C s | j d k r| j jS | jS )N)�_exitStatus�_exitStatusMixinValue)�self� r �&/usr/lib/python3.6/ExitStatusMixins.py� exitStatus? s zExitStatus.exitStatusNc sJ t t| �j||� || _| jd k rFt| jt� rFtdjt| j�j���d S )Nz{0} is not an ExitStatus mixin) �superr �__init__r � issubclass� TypeError�format�type�__name__)r r �args�kwargs)� __class__r r r H s zExitStatus.__init__)N) r � __module__�__qualname__�__doc__r �propertyr r � __classcell__r r )r r r 5 s r c @ s e Zd ZdZdZdS )�DeveloperExitStatuszEUsed to represent an error condition due to a developer oversight. � N)r r r r r r r r r r R s r c @ s e Zd ZdZdZdS )�StateExitStatuszHUsed to represent an error condition due to the state of some entity. � N)r r r r r r r r r r X s r c @ s e Zd ZdZdZdS )�SystemExitStatusznUsed to represent an error condition due to a failure on the part of the operating system, hardware, etc. � N)r r r r r r r r r r! ^ s r! c @ s e Zd ZdZdZdS )�UserExitStatusznUsed to represent an error condition due to the user; e.g., bad parameter, insufficient permissions, etc. � N)r r r r r r r r r r# e s r# N)r Z __future__r r r r �objectr r r r! r# r r r r �<module>/ s