# -*- coding: utf-8 -*-
# This file was generated
import platform
import warnings
def _is_success(code):
return (code == 0)
def _is_error(code):
return (code < 0)
def _is_warning(code):
return (code > 0)
class Error(Exception):
'''Base error class for NI-ModInst'''
def __init__(self, message):
super(Error, self).__init__(message)
class DriverError(Error):
'''An error originating from the NI-ModInst driver'''
def __init__(self, code, description):
assert (_is_error(code)), "Should not raise Error if code is not fatal."
self.code = code
self.description = description
super(DriverError, self).__init__(str(self.code) + ": " + self.description)
[docs]class DriverWarning(Warning):
'''A warning originating from the NI-ModInst driver'''
def __init__(self, code, description):
assert (_is_warning(code)), "Should not create Warning if code is not positive."
super(DriverWarning, self).__init__('Warning {0} occurred.\n\n{1}'.format(code, description))
class UnsupportedConfigurationError(Error):
'''An error due to using this module in an usupported platform.'''
def __init__(self):
super(UnsupportedConfigurationError, self).__init__('System configuration is unsupported: ' + platform.architecture()[0] + ' ' + platform.system())
class DriverNotInstalledError(Error):
'''An error due to using this module without the driver runtime installed.'''
def __init__(self):
super(DriverNotInstalledError, self).__init__('The NI-ModInst runtime could not be loaded. Make sure it is installed and its bitness matches that of your Python interpreter. Please visit http://www.ni.com/downloads/drivers/ to download and install it.')
class InvalidRepeatedCapabilityError(Error):
'''An error due to an invalid character in a repeated capability'''
def __init__(self, invalid_character, invalid_string):
super(InvalidRepeatedCapabilityError, self).__init__('An invalid character ({0}) was found in repeated capability string ({1})'.format(invalid_character, invalid_string))
class SelfTestError(Error):
'''An error due to a failed self-test'''
def __init__(self, code, msg):
self.code = code
self.message = msg
super(SelfTestError, self).__init__('Self-test failed with code {0}: {1}'.format(code, msg))
def handle_error(session, code, ignore_warnings, is_error_handling):
'''handle_error
Helper function for handling errors returned by nimodinst.Library.
It calls back into the session to get the corresponding error description
and raises if necessary.
'''
if _is_success(code) or (_is_warning(code) and ignore_warnings):
return
if is_error_handling:
# The caller is in the midst of error handling and an error occurred.
# Don't try to get the description or we'll start recursing until the stack overflows.
description = ''
else:
description = session._get_error_description(code)
if _is_error(code):
raise DriverError(code, description)
assert _is_warning(code)
warnings.warn(DriverWarning(code, description))