Source code for drmaa.errors

# -----------------------------------------------------------
#  Copyright (C) 2009 StatPro Italia s.r.l.
#
#  StatPro Italia
#  Via G. B. Vico 4
#  I-20123 Milano
#  ITALY
#
#  phone: +39 02 96875 1
#  fax:   +39 02 96875 605
#
#  email: info@riskmap.net
#
#  This program is distributed in the hope that it will be
#  useful, but WITHOUT ANY WARRANTY; without even the
#  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#  PURPOSE. See the license for more details.
# -----------------------------------------------------------
#
#  Author: Enrico Sirola <enrico.sirola@statpro.com>

"""
drmaa errors
"""

from ctypes import create_string_buffer

from drmaa.const import ERROR_STRING_BUFFER


class DrmaaException(Exception):

    """
    A common ancestor to all DRMAA Error classes.
    """
    pass


[docs]class AlreadyActiveSessionException(DrmaaException): pass
[docs]class AuthorizationException(DrmaaException): pass
[docs]class ConflictingAttributeValuesException(DrmaaException, AttributeError): pass
[docs]class DefaultContactStringException(DrmaaException): pass
[docs]class DeniedByDrmException(DrmaaException): pass
[docs]class DrmCommunicationException(DrmaaException): pass
[docs]class DrmsExitException(DrmaaException): pass
[docs]class DrmsInitException(DrmaaException): pass
[docs]class ExitTimeoutException(DrmaaException): pass
[docs]class HoldInconsistentStateException(DrmaaException): pass
[docs]class IllegalStateException(DrmaaException): pass
[docs]class InternalException(DrmaaException): pass
[docs]class InvalidAttributeFormatException(DrmaaException, AttributeError): pass
[docs]class InvalidContactStringException(DrmaaException): pass
[docs]class InvalidJobException(DrmaaException): pass
[docs]class InvalidJobTemplateException(DrmaaException): pass
[docs]class NoActiveSessionException(DrmaaException): pass
[docs]class NoDefaultContactStringSelectedException(DrmaaException): pass
[docs]class ReleaseInconsistentStateException(DrmaaException): pass
[docs]class ResumeInconsistentStateException(DrmaaException): pass
[docs]class SuspendInconsistentStateException(DrmaaException): pass
[docs]class TryLaterException(DrmaaException): pass
[docs]class UnsupportedAttributeException(DrmaaException, AttributeError): pass
[docs]class InvalidArgumentException(DrmaaException, AttributeError): pass
[docs]class InvalidAttributeValueException(DrmaaException, AttributeError): pass
[docs]class OutOfMemoryException(DrmaaException, MemoryError): pass
error_buffer = create_string_buffer(ERROR_STRING_BUFFER) def error_check(code): if code == 0: return else: error_string = "code {0}: {1}".format(code, error_buffer.value.decode()) try: raise _ERRORS[code - 1](error_string) except IndexError: raise DrmaaException(error_string) # da vedere: NO_RUSAGE, NO_MORE_ELEMENTS _ERRORS = [InternalException, DrmCommunicationException, AuthorizationException, InvalidArgumentException, NoActiveSessionException, OutOfMemoryException, InvalidContactStringException, DefaultContactStringException, NoDefaultContactStringSelectedException, DrmsInitException, AlreadyActiveSessionException, DrmsExitException, InvalidAttributeFormatException, InvalidAttributeValueException, ConflictingAttributeValuesException, TryLaterException, DeniedByDrmException, InvalidJobException, ResumeInconsistentStateException, SuspendInconsistentStateException, HoldInconsistentStateException, ReleaseInconsistentStateException, ExitTimeoutException, Exception, StopIteration]