So I have read the tutorial, read the c++ section of another tutorial and I'm still missing something basic. Google is being quite elusive as well so I figured I could post here and someone could at least give me a shove in the right direction.
Below are my .i file and the generated py file.  I am new to python as well as swig so I'm sure that's not helping.  I can't seem to make an instance of the class BTBIOMapClass. Pasted below is also my python output. 

So it seems like it's complaining about not have a new_ attribute? SWIG .i and command line are both quite simple/straight forward. I'm not sure what I'm doing wrong in my generation/setup. 

Thanks in advance.  Awesome tool!

<swig command line>
swig -c++ -python BTBIOMapClassInterface.i

<python output>
# python
Python 2.5.2 (r252:60911, Feb 24 2010, 17:29:58)
[GCC 4.4.2] on qnx6
Type "help", "copyright", "credits" or "license" for more information.
>>> import BTBIOMapClassInterface
>>> foo = BTBIOMapClassInterface.
BTBIOMapClass()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "BTBIOMapClassInterface.py", line 166, in __init__
    this = _BTBIOMapClassInterface.new_BTBIOMapClass(*args)
AttributeError: 'module' object has no attribute 'new_BTBIOMapClass'
>>>
</python output>


<snip>


<my .i file>
 %module BTBIOMapClassInterface
 %{
 /* Includes the header in the wrapper code */
 #include "DM6854.h"
 #include "BTBIOMapBaseClass.h"
 #include "BTBIOMapClass.h"
  %}
 
 /* Parse the header file to generate wrappers */
 %include "DM6854.h"
 %include "BTBIOMapBaseClass.h"
 %include "BTBIOMapClass.h"
</my .i file>


< my generated .py file>
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 2.0.1
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
# This file is compatible with both classic and new-style classes.

from sys import version_info
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_BTBIOMapClassInterface', [dirname(__file__)])
        except ImportError:
            import _BTBIOMapClassInterface
            return _BTBIOMapClassInterface
        if fp is not None:
            try:
                _mod = imp.load_module('_BTBIOMapClassInterface', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _BTBIOMapClassInterface = swig_import_helper()
    del swig_import_helper
else:
    import _BTBIOMapClassInterface
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static) or hasattr(self,name):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

def _swig_repr(self):
    try: strthis = "proxy of " + self.this.__repr__()
    except: strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


class DM6854(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, DM6854, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, DM6854, name)
    __repr__ = _swig_repr
    def __init__(self, *args):
        this = _BTBIOMapClassInterface.new_DM6854(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _BTBIOMapClassInterface.delete_DM6854
    __del__ = lambda self : None;
    DM6854_ISR_INSTALLED = _BTBIOMapClassInterface.DM6854_DM6854_ISR_INSTALLED
    DM6854_ISR_BOARD_MISSING = _BTBIOMapClassInterface.DM6854_DM6854_ISR_BOARD_MISSING
    DM6854_ISR_INVALID_IRQ = _BTBIOMapClassInterface.DM6854_DM6854_ISR_INVALID_IRQ
    DM6854_ISR_INUSE = _BTBIOMapClassInterface.DM6854_DM6854_ISR_INUSE
    DM6854_ISR_UNINSTALLED = _BTBIOMapClassInterface.DM6854_DM6854_ISR_UNINSTALLED
    DM6854_ISR_NOT_INUSE = _BTBIOMapClassInterface.DM6854_DM6854_ISR_NOT_INUSE
    DM6854_ISR_OVERRIDEOK = _BTBIOMapClassInterface.DM6854_DM6854_ISR_OVERRIDEOK
    DM6854_PPI_OUTPUT = _BTBIOMapClassInterface.DM6854_DM6854_PPI_OUTPUT
    DM6854_PPI_INPUT = _BTBIOMapClassInterface.DM6854_DM6854_PPI_INPUT
    DM6854_STATE_OFF = _BTBIOMapClassInterface.DM6854_DM6854_STATE_OFF
    DM6854_STATE_ON = _BTBIOMapClassInterface.DM6854_DM6854_STATE_ON
    DM6854_INITIALIZE_ALL = _BTBIOMapClassInterface.DM6854_DM6854_INITIALIZE_ALL
    DM6854_INITIALIZE_NONE = _BTBIOMapClassInterface.DM6854_DM6854_INITIALIZE_NONE
    DM6854_INITIALIZE_ALL_EXCEPT_OPTOOUT = _BTBIOMapClassInterface.DM6854_DM6854_INITIALIZE_ALL_EXCEPT_OPTOOUT
    DM6854_BOARDINVALID_ID = _BTBIOMapClassInterface.DM6854_DM6854_BOARDINVALID_ID
    DM6854_BOARDOPENEDOK = _BTBIOMapClassInterface.DM6854_DM6854_BOARDOPENEDOK
    DM6854_BOARDIDENTIFIED = _BTBIOMapClassInterface.DM6854_DM6854_BOARDIDENTIFIED
    DM6854_NOBOARDFOUND = _BTBIOMapClassInterface.DM6854_DM6854_NOBOARDFOUND
    DM6854_MEM_LEN = _BTBIOMapClassInterface.DM6854_DM6854_MEM_LEN
    def OpenBoard(self, *args): return _BTBIOMapClassInterface.DM6854_OpenBoard(self, *args)
    def DetectBoard(self, *args): return _BTBIOMapClassInterface.DM6854_DetectBoard(self, *args)
    def WriteTriggerMaskRegister(self, *args): return _BTBIOMapClassInterface.DM6854_WriteTriggerMaskRegister(self, *args)
    def ReadTriggerMaskRegister(self): return _BTBIOMapClassInterface.DM6854_ReadTriggerMaskRegister(self)
    def WriteInversionMaskRegister(self, *args): return _BTBIOMapClassInterface.DM6854_WriteInversionMaskRegister(self, *args)
    def ReadInversionMaskRegister(self): return _BTBIOMapClassInterface.DM6854_ReadInversionMaskRegister(self)
    def SetTriggerInteruptTo(self, *args): return _BTBIOMapClassInterface.DM6854_SetTriggerInteruptTo(self, *args)
    def SetTriggerOutputEnableTo(self, *args): return _BTBIOMapClassInterface.DM6854_SetTriggerOutputEnableTo(self, *args)
    def SetInvertTriggerOutputTo(self, *args): return _BTBIOMapClassInterface.DM6854_SetInvertTriggerOutputTo(self, *args)
    def InterruptStateIsTrue(self): return _BTBIOMapClassInterface.DM6854_InterruptStateIsTrue(self)
    def ResetTriggerInterrupt(self): return _BTBIOMapClassInterface.DM6854_ResetTriggerInterrupt(self)
    def WriteRawConfig(self, *args): return _BTBIOMapClassInterface.DM6854_WriteRawConfig(self, *args)
    def ReadRawConfig(self): return _BTBIOMapClassInterface.DM6854_ReadRawConfig(self)
    def GetOptoInputs(self): return _BTBIOMapClassInterface.DM6854_GetOptoInputs(self)
    def WriteOptoOut(self, *args): return _BTBIOMapClassInterface.DM6854_WriteOptoOut(self, *args)
    def ReadOptoOutState(self): return _BTBIOMapClassInterface.DM6854_ReadOptoOutState(self)
    def PPI_ReadPortA(self): return _BTBIOMapClassInterface.DM6854_PPI_ReadPortA(self)
    def PPI_ReadPortB(self): return _BTBIOMapClassInterface.DM6854_PPI_ReadPortB(self)
    def PPI_ReadPortC(self): return _BTBIOMapClassInterface.DM6854_PPI_ReadPortC(self)
    def PPI_WritePortA(self, *args): return _BTBIOMapClassInterface.DM6854_PPI_WritePortA(self, *args)
    def PPI_WritePortB(self, *args): return _BTBIOMapClassInterface.DM6854_PPI_WritePortB(self, *args)
    def PPI_WritePortC(self, *args): return _BTBIOMapClassInterface.DM6854_PPI_WritePortC(self, *args)
    def PPI_ConfigurePorts(self, *args): return _BTBIOMapClassInterface.DM6854_PPI_ConfigurePorts(self, *args)
    def PPI_RawConfigure(self, *args): return _BTBIOMapClassInterface.DM6854_PPI_RawConfigure(self, *args)
DM6854_swigregister = _BTBIOMapClassInterface.DM6854_swigregister
DM6854_swigregister(DM6854)

class BTBIOMapBaseClass(_object):
    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, BTBIOMapBaseClass, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, BTBIOMapBaseClass, name)
    def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    PULSE_PER_SECOND = _BTBIOMapClassInterface.BTBIOMapBaseClass_PULSE_PER_SECOND
    DC1 = _BTBIOMapClassInterface.BTBIOMapBaseClass_DC1
    DC2 = _BTBIOMapClassInterface.BTBIOMapBaseClass_DC2
    RELEASE_CONSENT = _BTBIOMapClassInterface.BTBIOMapBaseClass_RELEASE_CONSENT
    CNU_ARM = _BTBIOMapClassInterface.BTBIOMapBaseClass_CNU_ARM
    CNU_FIRE = _BTBIOMapClassInterface.BTBIOMapBaseClass_CNU_FIRE
    IN_SPARE_7 = _BTBIOMapClassInterface.BTBIOMapBaseClass_IN_SPARE_7
    IN_SPARE_8 = _BTBIOMapClassInterface.BTBIOMapBaseClass_IN_SPARE_8
    ARMED = _BTBIOMapClassInterface.BTBIOMapBaseClass_ARMED
    INTERLOCK = _BTBIOMapClassInterface.BTBIOMapBaseClass_INTERLOCK
    OUT_SPARE_3 = _BTBIOMapClassInterface.BTBIOMapBaseClass_OUT_SPARE_3
    OUT_SPARE_4 = _BTBIOMapClassInterface.BTBIOMapBaseClass_OUT_SPARE_4
    ACTIVITY_LED = _BTBIOMapClassInterface.BTBIOMapBaseClass_ACTIVITY_LED
    GPS_KEY_LOADED_LED = _BTBIOMapClassInterface.BTBIOMapBaseClass_GPS_KEY_LOADED_LED
    OPTO_OUTPUT_MASK = _BTBIOMapClassInterface.BTBIOMapBaseClass_OPTO_OUTPUT_MASK
    PORT_A_MASK = _BTBIOMapClassInterface.BTBIOMapBaseClass_PORT_A_MASK
    __swig_destroy__ = _BTBIOMapClassInterface.delete_BTBIOMapBaseClass
    __del__ = lambda self : None;
    def getDiscrete(self, *args): return _BTBIOMapClassInterface.BTBIOMapBaseClass_getDiscrete(self, *args)
    def setDiscrete(self, *args): return _BTBIOMapClassInterface.BTBIOMapBaseClass_setDiscrete(self, *args)
BTBIOMapBaseClass_swigregister = _BTBIOMapClassInterface.BTBIOMapBaseClass_swigregister
BTBIOMapBaseClass_swigregister(BTBIOMapBaseClass)

class BTBIOMapClass(DM6854,BTBIOMapBaseClass):
    __swig_setmethods__ = {}
    for _s in [DM6854,BTBIOMapBaseClass]: __swig_setmethods__.update(getattr(_s,'__swig_setmethods__',{}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, BTBIOMapClass, name, value)
    __swig_getmethods__ = {}
    for _s in [DM6854,BTBIOMapBaseClass]: __swig_getmethods__.update(getattr(_s,'__swig_getmethods__',{}))
    __getattr__ = lambda self, name: _swig_getattr(self, BTBIOMapClass, name)
    __repr__ = _swig_repr
    def __init__(self, *args):
        this = _BTBIOMapClassInterface.new_BTBIOMapClass(*args)
        try: self.this.append(this)
        except: self.this = this
    __swig_destroy__ = _BTBIOMapClassInterface.delete_BTBIOMapClass
    __del__ = lambda self : None;
    def TestInputs(self): return _BTBIOMapClassInterface.BTBIOMapClass_TestInputs(self)
    def TestOutputs(self): return _BTBIOMapClassInterface.BTBIOMapClass_TestOutputs(self)
    def getStackID(self): return _BTBIOMapClassInterface.BTBIOMapClass_getStackID(self)
    def getRtAddress(self): return _BTBIOMapClassInterface.BTBIOMapClass_getRtAddress(self)
    def getDiscrete(self, *args): return _BTBIOMapClassInterface.BTBIOMapClass_getDiscrete(self, *args)
    def setDiscrete(self, *args): return _BTBIOMapClassInterface.BTBIOMapClass_setDiscrete(self, *args)
    def SBIT(self): return _BTBIOMapClassInterface.BTBIOMapClass_SBIT(self)
BTBIOMapClass_swigregister = _BTBIOMapClassInterface.BTBIOMapClass_swigregister
BTBIOMapClass_swigregister(BTBIOMapClass)


</ my generated .py file>


--
/*------------------------------
| Chris Barlas
| WINTEC, Inc.
| v - 850.664.6203
| c - 850.685.6619
`------------------------------*/


---------------------------------------------------------------------------------------
This e-mail and any attached files may contain WINTEC, Inc., proprietary information and may be legally privileged or subject to export control restrictions.  If you are not the addressee, any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is strictly prohibited.  If you have received this transmission in error please reply to the sender immediately and then delete this e-mail.