# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.


import sys
if sys.platform.find("linux") != -1:
    dlflags = sys.getdlopenflags()
    import ctypes
    sys.setdlopenflags(dlflags | ctypes.RTLD_GLOBAL)



from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (3, 0, 0):
    new_instancemethod = lambda func, inst, cls: _openbabel.SWIG_PyInstanceMethod_New(func)
else:
    from new import instancemethod as new_instancemethod
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_openbabel')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_openbabel')
    _openbabel = swig_import_helper()
    del swig_import_helper
elif _swig_python_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('_openbabel', [dirname(__file__)])
        except ImportError:
            import _openbabel
            return _openbabel
        try:
            _mod = imp.load_module('_openbabel', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _openbabel = swig_import_helper()
    del swig_import_helper
else:
    import _openbabel
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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):
        object.__setattr__(self, 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("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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


def _swig_setattr_nondynamic_method(set):
    def set_attr(self, name, value):
        if (name == "thisown"):
            return self.this.own(value)
        if hasattr(self, name) or (name == "this"):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr



if sys.platform.find("linux") != -1:
    sys.setdlopenflags(dlflags)

class SwigPyIterator(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_SwigPyIterator
    def __iter__(self):
        return self
SwigPyIterator.value = new_instancemethod(_openbabel.SwigPyIterator_value, None, SwigPyIterator)
SwigPyIterator.incr = new_instancemethod(_openbabel.SwigPyIterator_incr, None, SwigPyIterator)
SwigPyIterator.decr = new_instancemethod(_openbabel.SwigPyIterator_decr, None, SwigPyIterator)
SwigPyIterator.distance = new_instancemethod(_openbabel.SwigPyIterator_distance, None, SwigPyIterator)
SwigPyIterator.equal = new_instancemethod(_openbabel.SwigPyIterator_equal, None, SwigPyIterator)
SwigPyIterator.copy = new_instancemethod(_openbabel.SwigPyIterator_copy, None, SwigPyIterator)
SwigPyIterator.next = new_instancemethod(_openbabel.SwigPyIterator_next, None, SwigPyIterator)
SwigPyIterator.__next__ = new_instancemethod(_openbabel.SwigPyIterator___next__, None, SwigPyIterator)
SwigPyIterator.previous = new_instancemethod(_openbabel.SwigPyIterator_previous, None, SwigPyIterator)
SwigPyIterator.advance = new_instancemethod(_openbabel.SwigPyIterator_advance, None, SwigPyIterator)
SwigPyIterator.__eq__ = new_instancemethod(_openbabel.SwigPyIterator___eq__, None, SwigPyIterator)
SwigPyIterator.__ne__ = new_instancemethod(_openbabel.SwigPyIterator___ne__, None, SwigPyIterator)
SwigPyIterator.__iadd__ = new_instancemethod(_openbabel.SwigPyIterator___iadd__, None, SwigPyIterator)
SwigPyIterator.__isub__ = new_instancemethod(_openbabel.SwigPyIterator___isub__, None, SwigPyIterator)
SwigPyIterator.__add__ = new_instancemethod(_openbabel.SwigPyIterator___add__, None, SwigPyIterator)
SwigPyIterator.__sub__ = new_instancemethod(_openbabel.SwigPyIterator___sub__, None, SwigPyIterator)
SwigPyIterator_swigregister = _openbabel.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

class vectorInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorInt_swiginit(self, _openbabel.new_vectorInt(*args))
    __swig_destroy__ = _openbabel.delete_vectorInt
vectorInt.iterator = new_instancemethod(_openbabel.vectorInt_iterator, None, vectorInt)
vectorInt.__nonzero__ = new_instancemethod(_openbabel.vectorInt___nonzero__, None, vectorInt)
vectorInt.__bool__ = new_instancemethod(_openbabel.vectorInt___bool__, None, vectorInt)
vectorInt.__len__ = new_instancemethod(_openbabel.vectorInt___len__, None, vectorInt)
vectorInt.__getslice__ = new_instancemethod(_openbabel.vectorInt___getslice__, None, vectorInt)
vectorInt.__setslice__ = new_instancemethod(_openbabel.vectorInt___setslice__, None, vectorInt)
vectorInt.__delslice__ = new_instancemethod(_openbabel.vectorInt___delslice__, None, vectorInt)
vectorInt.__delitem__ = new_instancemethod(_openbabel.vectorInt___delitem__, None, vectorInt)
vectorInt.__getitem__ = new_instancemethod(_openbabel.vectorInt___getitem__, None, vectorInt)
vectorInt.__setitem__ = new_instancemethod(_openbabel.vectorInt___setitem__, None, vectorInt)
vectorInt.clear = new_instancemethod(_openbabel.vectorInt_clear, None, vectorInt)
vectorInt_swigregister = _openbabel.vectorInt_swigregister
vectorInt_swigregister(vectorInt)

class vectorUnsignedInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorUnsignedInt_swiginit(self, _openbabel.new_vectorUnsignedInt(*args))
    __swig_destroy__ = _openbabel.delete_vectorUnsignedInt
vectorUnsignedInt.iterator = new_instancemethod(_openbabel.vectorUnsignedInt_iterator, None, vectorUnsignedInt)
vectorUnsignedInt.__nonzero__ = new_instancemethod(_openbabel.vectorUnsignedInt___nonzero__, None, vectorUnsignedInt)
vectorUnsignedInt.__bool__ = new_instancemethod(_openbabel.vectorUnsignedInt___bool__, None, vectorUnsignedInt)
vectorUnsignedInt.__len__ = new_instancemethod(_openbabel.vectorUnsignedInt___len__, None, vectorUnsignedInt)
vectorUnsignedInt.__getslice__ = new_instancemethod(_openbabel.vectorUnsignedInt___getslice__, None, vectorUnsignedInt)
vectorUnsignedInt.__setslice__ = new_instancemethod(_openbabel.vectorUnsignedInt___setslice__, None, vectorUnsignedInt)
vectorUnsignedInt.__delslice__ = new_instancemethod(_openbabel.vectorUnsignedInt___delslice__, None, vectorUnsignedInt)
vectorUnsignedInt.__delitem__ = new_instancemethod(_openbabel.vectorUnsignedInt___delitem__, None, vectorUnsignedInt)
vectorUnsignedInt.__getitem__ = new_instancemethod(_openbabel.vectorUnsignedInt___getitem__, None, vectorUnsignedInt)
vectorUnsignedInt.__setitem__ = new_instancemethod(_openbabel.vectorUnsignedInt___setitem__, None, vectorUnsignedInt)
vectorUnsignedInt.clear = new_instancemethod(_openbabel.vectorUnsignedInt_clear, None, vectorUnsignedInt)
vectorUnsignedInt_swigregister = _openbabel.vectorUnsignedInt_swigregister
vectorUnsignedInt_swigregister(vectorUnsignedInt)

class vectorvInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorvInt_swiginit(self, _openbabel.new_vectorvInt(*args))
    __swig_destroy__ = _openbabel.delete_vectorvInt
vectorvInt.iterator = new_instancemethod(_openbabel.vectorvInt_iterator, None, vectorvInt)
vectorvInt.__nonzero__ = new_instancemethod(_openbabel.vectorvInt___nonzero__, None, vectorvInt)
vectorvInt.__bool__ = new_instancemethod(_openbabel.vectorvInt___bool__, None, vectorvInt)
vectorvInt.__len__ = new_instancemethod(_openbabel.vectorvInt___len__, None, vectorvInt)
vectorvInt.__getslice__ = new_instancemethod(_openbabel.vectorvInt___getslice__, None, vectorvInt)
vectorvInt.__setslice__ = new_instancemethod(_openbabel.vectorvInt___setslice__, None, vectorvInt)
vectorvInt.__delslice__ = new_instancemethod(_openbabel.vectorvInt___delslice__, None, vectorvInt)
vectorvInt.__delitem__ = new_instancemethod(_openbabel.vectorvInt___delitem__, None, vectorvInt)
vectorvInt.__getitem__ = new_instancemethod(_openbabel.vectorvInt___getitem__, None, vectorvInt)
vectorvInt.__setitem__ = new_instancemethod(_openbabel.vectorvInt___setitem__, None, vectorvInt)
vectorvInt.clear = new_instancemethod(_openbabel.vectorvInt_clear, None, vectorvInt)
vectorvInt_swigregister = _openbabel.vectorvInt_swigregister
vectorvInt_swigregister(vectorvInt)

class vectorDouble(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorDouble_swiginit(self, _openbabel.new_vectorDouble(*args))
    __swig_destroy__ = _openbabel.delete_vectorDouble
vectorDouble.iterator = new_instancemethod(_openbabel.vectorDouble_iterator, None, vectorDouble)
vectorDouble.__nonzero__ = new_instancemethod(_openbabel.vectorDouble___nonzero__, None, vectorDouble)
vectorDouble.__bool__ = new_instancemethod(_openbabel.vectorDouble___bool__, None, vectorDouble)
vectorDouble.__len__ = new_instancemethod(_openbabel.vectorDouble___len__, None, vectorDouble)
vectorDouble.__getslice__ = new_instancemethod(_openbabel.vectorDouble___getslice__, None, vectorDouble)
vectorDouble.__setslice__ = new_instancemethod(_openbabel.vectorDouble___setslice__, None, vectorDouble)
vectorDouble.__delslice__ = new_instancemethod(_openbabel.vectorDouble___delslice__, None, vectorDouble)
vectorDouble.__delitem__ = new_instancemethod(_openbabel.vectorDouble___delitem__, None, vectorDouble)
vectorDouble.__getitem__ = new_instancemethod(_openbabel.vectorDouble___getitem__, None, vectorDouble)
vectorDouble.__setitem__ = new_instancemethod(_openbabel.vectorDouble___setitem__, None, vectorDouble)
vectorDouble.clear = new_instancemethod(_openbabel.vectorDouble_clear, None, vectorDouble)
vectorDouble_swigregister = _openbabel.vectorDouble_swigregister
vectorDouble_swigregister(vectorDouble)

class vectorULong(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorULong_swiginit(self, _openbabel.new_vectorULong(*args))
    __swig_destroy__ = _openbabel.delete_vectorULong
vectorULong.iterator = new_instancemethod(_openbabel.vectorULong_iterator, None, vectorULong)
vectorULong.__nonzero__ = new_instancemethod(_openbabel.vectorULong___nonzero__, None, vectorULong)
vectorULong.__bool__ = new_instancemethod(_openbabel.vectorULong___bool__, None, vectorULong)
vectorULong.__len__ = new_instancemethod(_openbabel.vectorULong___len__, None, vectorULong)
vectorULong.__getslice__ = new_instancemethod(_openbabel.vectorULong___getslice__, None, vectorULong)
vectorULong.__setslice__ = new_instancemethod(_openbabel.vectorULong___setslice__, None, vectorULong)
vectorULong.__delslice__ = new_instancemethod(_openbabel.vectorULong___delslice__, None, vectorULong)
vectorULong.__delitem__ = new_instancemethod(_openbabel.vectorULong___delitem__, None, vectorULong)
vectorULong.__getitem__ = new_instancemethod(_openbabel.vectorULong___getitem__, None, vectorULong)
vectorULong.__setitem__ = new_instancemethod(_openbabel.vectorULong___setitem__, None, vectorULong)
vectorULong.clear = new_instancemethod(_openbabel.vectorULong_clear, None, vectorULong)
vectorULong_swigregister = _openbabel.vectorULong_swigregister
vectorULong_swigregister(vectorULong)

class vectorString(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorString_swiginit(self, _openbabel.new_vectorString(*args))
    __swig_destroy__ = _openbabel.delete_vectorString
vectorString.iterator = new_instancemethod(_openbabel.vectorString_iterator, None, vectorString)
vectorString.__nonzero__ = new_instancemethod(_openbabel.vectorString___nonzero__, None, vectorString)
vectorString.__bool__ = new_instancemethod(_openbabel.vectorString___bool__, None, vectorString)
vectorString.__len__ = new_instancemethod(_openbabel.vectorString___len__, None, vectorString)
vectorString.__getslice__ = new_instancemethod(_openbabel.vectorString___getslice__, None, vectorString)
vectorString.__setslice__ = new_instancemethod(_openbabel.vectorString___setslice__, None, vectorString)
vectorString.__delslice__ = new_instancemethod(_openbabel.vectorString___delslice__, None, vectorString)
vectorString.__delitem__ = new_instancemethod(_openbabel.vectorString___delitem__, None, vectorString)
vectorString.__getitem__ = new_instancemethod(_openbabel.vectorString___getitem__, None, vectorString)
vectorString.__setitem__ = new_instancemethod(_openbabel.vectorString___setitem__, None, vectorString)
vectorString.clear = new_instancemethod(_openbabel.vectorString_clear, None, vectorString)
vectorString_swigregister = _openbabel.vectorString_swigregister
vectorString_swigregister(vectorString)

class vectorVector3(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorVector3_swiginit(self, _openbabel.new_vectorVector3(*args))
    __swig_destroy__ = _openbabel.delete_vectorVector3
vectorVector3.iterator = new_instancemethod(_openbabel.vectorVector3_iterator, None, vectorVector3)
vectorVector3.__nonzero__ = new_instancemethod(_openbabel.vectorVector3___nonzero__, None, vectorVector3)
vectorVector3.__bool__ = new_instancemethod(_openbabel.vectorVector3___bool__, None, vectorVector3)
vectorVector3.__len__ = new_instancemethod(_openbabel.vectorVector3___len__, None, vectorVector3)
vectorVector3.__getslice__ = new_instancemethod(_openbabel.vectorVector3___getslice__, None, vectorVector3)
vectorVector3.__setslice__ = new_instancemethod(_openbabel.vectorVector3___setslice__, None, vectorVector3)
vectorVector3.__delslice__ = new_instancemethod(_openbabel.vectorVector3___delslice__, None, vectorVector3)
vectorVector3.__delitem__ = new_instancemethod(_openbabel.vectorVector3___delitem__, None, vectorVector3)
vectorVector3.__getitem__ = new_instancemethod(_openbabel.vectorVector3___getitem__, None, vectorVector3)
vectorVector3.__setitem__ = new_instancemethod(_openbabel.vectorVector3___setitem__, None, vectorVector3)
vectorVector3.clear = new_instancemethod(_openbabel.vectorVector3_clear, None, vectorVector3)
vectorVector3_swigregister = _openbabel.vectorVector3_swigregister
vectorVector3_swigregister(vectorVector3)

class vectorvVector3(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorvVector3_swiginit(self, _openbabel.new_vectorvVector3(*args))
    __swig_destroy__ = _openbabel.delete_vectorvVector3
vectorvVector3.iterator = new_instancemethod(_openbabel.vectorvVector3_iterator, None, vectorvVector3)
vectorvVector3.__nonzero__ = new_instancemethod(_openbabel.vectorvVector3___nonzero__, None, vectorvVector3)
vectorvVector3.__bool__ = new_instancemethod(_openbabel.vectorvVector3___bool__, None, vectorvVector3)
vectorvVector3.__len__ = new_instancemethod(_openbabel.vectorvVector3___len__, None, vectorvVector3)
vectorvVector3.__getslice__ = new_instancemethod(_openbabel.vectorvVector3___getslice__, None, vectorvVector3)
vectorvVector3.__setslice__ = new_instancemethod(_openbabel.vectorvVector3___setslice__, None, vectorvVector3)
vectorvVector3.__delslice__ = new_instancemethod(_openbabel.vectorvVector3___delslice__, None, vectorvVector3)
vectorvVector3.__delitem__ = new_instancemethod(_openbabel.vectorvVector3___delitem__, None, vectorvVector3)
vectorvVector3.__getitem__ = new_instancemethod(_openbabel.vectorvVector3___getitem__, None, vectorvVector3)
vectorvVector3.__setitem__ = new_instancemethod(_openbabel.vectorvVector3___setitem__, None, vectorvVector3)
vectorvVector3.clear = new_instancemethod(_openbabel.vectorvVector3_clear, None, vectorvVector3)
vectorvVector3_swigregister = _openbabel.vectorvVector3_swigregister
vectorvVector3_swigregister(vectorvVector3)

class vectorOBMol(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorOBMol_swiginit(self, _openbabel.new_vectorOBMol(*args))
    __swig_destroy__ = _openbabel.delete_vectorOBMol
vectorOBMol.iterator = new_instancemethod(_openbabel.vectorOBMol_iterator, None, vectorOBMol)
vectorOBMol.__nonzero__ = new_instancemethod(_openbabel.vectorOBMol___nonzero__, None, vectorOBMol)
vectorOBMol.__bool__ = new_instancemethod(_openbabel.vectorOBMol___bool__, None, vectorOBMol)
vectorOBMol.__len__ = new_instancemethod(_openbabel.vectorOBMol___len__, None, vectorOBMol)
vectorOBMol.__getslice__ = new_instancemethod(_openbabel.vectorOBMol___getslice__, None, vectorOBMol)
vectorOBMol.__setslice__ = new_instancemethod(_openbabel.vectorOBMol___setslice__, None, vectorOBMol)
vectorOBMol.__delslice__ = new_instancemethod(_openbabel.vectorOBMol___delslice__, None, vectorOBMol)
vectorOBMol.__delitem__ = new_instancemethod(_openbabel.vectorOBMol___delitem__, None, vectorOBMol)
vectorOBMol.__getitem__ = new_instancemethod(_openbabel.vectorOBMol___getitem__, None, vectorOBMol)
vectorOBMol.__setitem__ = new_instancemethod(_openbabel.vectorOBMol___setitem__, None, vectorOBMol)
vectorOBMol.clear = new_instancemethod(_openbabel.vectorOBMol_clear, None, vectorOBMol)
vectorOBMol_swigregister = _openbabel.vectorOBMol_swigregister
vectorOBMol_swigregister(vectorOBMol)

class vectorOBBond(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorOBBond_swiginit(self, _openbabel.new_vectorOBBond(*args))
    __swig_destroy__ = _openbabel.delete_vectorOBBond
vectorOBBond.iterator = new_instancemethod(_openbabel.vectorOBBond_iterator, None, vectorOBBond)
vectorOBBond.__nonzero__ = new_instancemethod(_openbabel.vectorOBBond___nonzero__, None, vectorOBBond)
vectorOBBond.__bool__ = new_instancemethod(_openbabel.vectorOBBond___bool__, None, vectorOBBond)
vectorOBBond.__len__ = new_instancemethod(_openbabel.vectorOBBond___len__, None, vectorOBBond)
vectorOBBond.__getslice__ = new_instancemethod(_openbabel.vectorOBBond___getslice__, None, vectorOBBond)
vectorOBBond.__setslice__ = new_instancemethod(_openbabel.vectorOBBond___setslice__, None, vectorOBBond)
vectorOBBond.__delslice__ = new_instancemethod(_openbabel.vectorOBBond___delslice__, None, vectorOBBond)
vectorOBBond.__delitem__ = new_instancemethod(_openbabel.vectorOBBond___delitem__, None, vectorOBBond)
vectorOBBond.__getitem__ = new_instancemethod(_openbabel.vectorOBBond___getitem__, None, vectorOBBond)
vectorOBBond.__setitem__ = new_instancemethod(_openbabel.vectorOBBond___setitem__, None, vectorOBBond)
vectorOBBond.clear = new_instancemethod(_openbabel.vectorOBBond_clear, None, vectorOBBond)
vectorOBBond_swigregister = _openbabel.vectorOBBond_swigregister
vectorOBBond_swigregister(vectorOBBond)

class vectorOBResidue(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorOBResidue_swiginit(self, _openbabel.new_vectorOBResidue(*args))
    __swig_destroy__ = _openbabel.delete_vectorOBResidue
vectorOBResidue.iterator = new_instancemethod(_openbabel.vectorOBResidue_iterator, None, vectorOBResidue)
vectorOBResidue.__nonzero__ = new_instancemethod(_openbabel.vectorOBResidue___nonzero__, None, vectorOBResidue)
vectorOBResidue.__bool__ = new_instancemethod(_openbabel.vectorOBResidue___bool__, None, vectorOBResidue)
vectorOBResidue.__len__ = new_instancemethod(_openbabel.vectorOBResidue___len__, None, vectorOBResidue)
vectorOBResidue.__getslice__ = new_instancemethod(_openbabel.vectorOBResidue___getslice__, None, vectorOBResidue)
vectorOBResidue.__setslice__ = new_instancemethod(_openbabel.vectorOBResidue___setslice__, None, vectorOBResidue)
vectorOBResidue.__delslice__ = new_instancemethod(_openbabel.vectorOBResidue___delslice__, None, vectorOBResidue)
vectorOBResidue.__delitem__ = new_instancemethod(_openbabel.vectorOBResidue___delitem__, None, vectorOBResidue)
vectorOBResidue.__getitem__ = new_instancemethod(_openbabel.vectorOBResidue___getitem__, None, vectorOBResidue)
vectorOBResidue.__setitem__ = new_instancemethod(_openbabel.vectorOBResidue___setitem__, None, vectorOBResidue)
vectorOBResidue.clear = new_instancemethod(_openbabel.vectorOBResidue_clear, None, vectorOBResidue)
vectorOBResidue_swigregister = _openbabel.vectorOBResidue_swigregister
vectorOBResidue_swigregister(vectorOBResidue)

class vectorOBRing(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorOBRing_swiginit(self, _openbabel.new_vectorOBRing(*args))
    __swig_destroy__ = _openbabel.delete_vectorOBRing
vectorOBRing.iterator = new_instancemethod(_openbabel.vectorOBRing_iterator, None, vectorOBRing)
vectorOBRing.__nonzero__ = new_instancemethod(_openbabel.vectorOBRing___nonzero__, None, vectorOBRing)
vectorOBRing.__bool__ = new_instancemethod(_openbabel.vectorOBRing___bool__, None, vectorOBRing)
vectorOBRing.__len__ = new_instancemethod(_openbabel.vectorOBRing___len__, None, vectorOBRing)
vectorOBRing.__getslice__ = new_instancemethod(_openbabel.vectorOBRing___getslice__, None, vectorOBRing)
vectorOBRing.__setslice__ = new_instancemethod(_openbabel.vectorOBRing___setslice__, None, vectorOBRing)
vectorOBRing.__delslice__ = new_instancemethod(_openbabel.vectorOBRing___delslice__, None, vectorOBRing)
vectorOBRing.__delitem__ = new_instancemethod(_openbabel.vectorOBRing___delitem__, None, vectorOBRing)
vectorOBRing.__getitem__ = new_instancemethod(_openbabel.vectorOBRing___getitem__, None, vectorOBRing)
vectorOBRing.__setitem__ = new_instancemethod(_openbabel.vectorOBRing___setitem__, None, vectorOBRing)
vectorOBRing.clear = new_instancemethod(_openbabel.vectorOBRing_clear, None, vectorOBRing)
vectorOBRing_swigregister = _openbabel.vectorOBRing_swigregister
vectorOBRing_swigregister(vectorOBRing)

class vectorpOBRing(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorpOBRing_swiginit(self, _openbabel.new_vectorpOBRing(*args))
    __swig_destroy__ = _openbabel.delete_vectorpOBRing
vectorpOBRing.iterator = new_instancemethod(_openbabel.vectorpOBRing_iterator, None, vectorpOBRing)
vectorpOBRing.__nonzero__ = new_instancemethod(_openbabel.vectorpOBRing___nonzero__, None, vectorpOBRing)
vectorpOBRing.__bool__ = new_instancemethod(_openbabel.vectorpOBRing___bool__, None, vectorpOBRing)
vectorpOBRing.__len__ = new_instancemethod(_openbabel.vectorpOBRing___len__, None, vectorpOBRing)
vectorpOBRing.__getslice__ = new_instancemethod(_openbabel.vectorpOBRing___getslice__, None, vectorpOBRing)
vectorpOBRing.__setslice__ = new_instancemethod(_openbabel.vectorpOBRing___setslice__, None, vectorpOBRing)
vectorpOBRing.__delslice__ = new_instancemethod(_openbabel.vectorpOBRing___delslice__, None, vectorpOBRing)
vectorpOBRing.__delitem__ = new_instancemethod(_openbabel.vectorpOBRing___delitem__, None, vectorpOBRing)
vectorpOBRing.__getitem__ = new_instancemethod(_openbabel.vectorpOBRing___getitem__, None, vectorpOBRing)
vectorpOBRing.__setitem__ = new_instancemethod(_openbabel.vectorpOBRing___setitem__, None, vectorpOBRing)
vectorpOBRing.clear = new_instancemethod(_openbabel.vectorpOBRing_clear, None, vectorpOBRing)
vectorpOBRing_swigregister = _openbabel.vectorpOBRing_swigregister
vectorpOBRing_swigregister(vectorpOBRing)

class vectorpOBGenericData(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorpOBGenericData_swiginit(self, _openbabel.new_vectorpOBGenericData(*args))
    __swig_destroy__ = _openbabel.delete_vectorpOBGenericData
vectorpOBGenericData.iterator = new_instancemethod(_openbabel.vectorpOBGenericData_iterator, None, vectorpOBGenericData)
vectorpOBGenericData.__nonzero__ = new_instancemethod(_openbabel.vectorpOBGenericData___nonzero__, None, vectorpOBGenericData)
vectorpOBGenericData.__bool__ = new_instancemethod(_openbabel.vectorpOBGenericData___bool__, None, vectorpOBGenericData)
vectorpOBGenericData.__len__ = new_instancemethod(_openbabel.vectorpOBGenericData___len__, None, vectorpOBGenericData)
vectorpOBGenericData.__getslice__ = new_instancemethod(_openbabel.vectorpOBGenericData___getslice__, None, vectorpOBGenericData)
vectorpOBGenericData.__setslice__ = new_instancemethod(_openbabel.vectorpOBGenericData___setslice__, None, vectorpOBGenericData)
vectorpOBGenericData.__delslice__ = new_instancemethod(_openbabel.vectorpOBGenericData___delslice__, None, vectorpOBGenericData)
vectorpOBGenericData.__delitem__ = new_instancemethod(_openbabel.vectorpOBGenericData___delitem__, None, vectorpOBGenericData)
vectorpOBGenericData.__getitem__ = new_instancemethod(_openbabel.vectorpOBGenericData___getitem__, None, vectorpOBGenericData)
vectorpOBGenericData.__setitem__ = new_instancemethod(_openbabel.vectorpOBGenericData___setitem__, None, vectorpOBGenericData)
vectorpOBGenericData.clear = new_instancemethod(_openbabel.vectorpOBGenericData_clear, None, vectorpOBGenericData)
vectorpOBGenericData_swigregister = _openbabel.vectorpOBGenericData_swigregister
vectorpOBGenericData_swigregister(vectorpOBGenericData)

class vectorpOBInternalCoord(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vectorpOBInternalCoord_swiginit(self, _openbabel.new_vectorpOBInternalCoord(*args))
    __swig_destroy__ = _openbabel.delete_vectorpOBInternalCoord
vectorpOBInternalCoord.iterator = new_instancemethod(_openbabel.vectorpOBInternalCoord_iterator, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__nonzero__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___nonzero__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__bool__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___bool__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__len__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___len__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__getslice__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___getslice__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__setslice__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___setslice__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__delslice__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___delslice__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__delitem__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___delitem__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__getitem__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___getitem__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.__setitem__ = new_instancemethod(_openbabel.vectorpOBInternalCoord___setitem__, None, vectorpOBInternalCoord)
vectorpOBInternalCoord.clear = new_instancemethod(_openbabel.vectorpOBInternalCoord_clear, None, vectorpOBInternalCoord)
vectorpOBInternalCoord_swigregister = _openbabel.vectorpOBInternalCoord_swigregister
vectorpOBInternalCoord_swigregister(vectorpOBInternalCoord)

class pairUIntUInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.pairUIntUInt_swiginit(self, _openbabel.new_pairUIntUInt(*args))
    first = _swig_property(_openbabel.pairUIntUInt_first_get, _openbabel.pairUIntUInt_first_set)
    second = _swig_property(_openbabel.pairUIntUInt_second_get, _openbabel.pairUIntUInt_second_set)
    def __len__(self):
        return 2
    def __repr__(self):
        return str((self.first, self.second))
    def __getitem__(self, index): 
        if not (index % 2):
            return self.first
        else:
            return self.second
    def __setitem__(self, index, val):
        if not (index % 2):
            self.first = val
        else:
            self.second = val
    __swig_destroy__ = _openbabel.delete_pairUIntUInt
pairUIntUInt_swigregister = _openbabel.pairUIntUInt_swigregister
pairUIntUInt_swigregister(pairUIntUInt)

class vpairUIntUInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vpairUIntUInt_swiginit(self, _openbabel.new_vpairUIntUInt(*args))
    __swig_destroy__ = _openbabel.delete_vpairUIntUInt
vpairUIntUInt.iterator = new_instancemethod(_openbabel.vpairUIntUInt_iterator, None, vpairUIntUInt)
vpairUIntUInt.__nonzero__ = new_instancemethod(_openbabel.vpairUIntUInt___nonzero__, None, vpairUIntUInt)
vpairUIntUInt.__bool__ = new_instancemethod(_openbabel.vpairUIntUInt___bool__, None, vpairUIntUInt)
vpairUIntUInt.__len__ = new_instancemethod(_openbabel.vpairUIntUInt___len__, None, vpairUIntUInt)
vpairUIntUInt.__getslice__ = new_instancemethod(_openbabel.vpairUIntUInt___getslice__, None, vpairUIntUInt)
vpairUIntUInt.__setslice__ = new_instancemethod(_openbabel.vpairUIntUInt___setslice__, None, vpairUIntUInt)
vpairUIntUInt.__delslice__ = new_instancemethod(_openbabel.vpairUIntUInt___delslice__, None, vpairUIntUInt)
vpairUIntUInt.__delitem__ = new_instancemethod(_openbabel.vpairUIntUInt___delitem__, None, vpairUIntUInt)
vpairUIntUInt.__getitem__ = new_instancemethod(_openbabel.vpairUIntUInt___getitem__, None, vpairUIntUInt)
vpairUIntUInt.__setitem__ = new_instancemethod(_openbabel.vpairUIntUInt___setitem__, None, vpairUIntUInt)
vpairUIntUInt.clear = new_instancemethod(_openbabel.vpairUIntUInt_clear, None, vpairUIntUInt)
vpairUIntUInt_swigregister = _openbabel.vpairUIntUInt_swigregister
vpairUIntUInt_swigregister(vpairUIntUInt)

class vvpairUIntUInt(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __iter__(self):
        return self.iterator()

    def __init__(self, *args):
        _openbabel.vvpairUIntUInt_swiginit(self, _openbabel.new_vvpairUIntUInt(*args))
    __swig_destroy__ = _openbabel.delete_vvpairUIntUInt
vvpairUIntUInt.iterator = new_instancemethod(_openbabel.vvpairUIntUInt_iterator, None, vvpairUIntUInt)
vvpairUIntUInt.__nonzero__ = new_instancemethod(_openbabel.vvpairUIntUInt___nonzero__, None, vvpairUIntUInt)
vvpairUIntUInt.__bool__ = new_instancemethod(_openbabel.vvpairUIntUInt___bool__, None, vvpairUIntUInt)
vvpairUIntUInt.__len__ = new_instancemethod(_openbabel.vvpairUIntUInt___len__, None, vvpairUIntUInt)
vvpairUIntUInt.__getslice__ = new_instancemethod(_openbabel.vvpairUIntUInt___getslice__, None, vvpairUIntUInt)
vvpairUIntUInt.__setslice__ = new_instancemethod(_openbabel.vvpairUIntUInt___setslice__, None, vvpairUIntUInt)
vvpairUIntUInt.__delslice__ = new_instancemethod(_openbabel.vvpairUIntUInt___delslice__, None, vvpairUIntUInt)
vvpairUIntUInt.__delitem__ = new_instancemethod(_openbabel.vvpairUIntUInt___delitem__, None, vvpairUIntUInt)
vvpairUIntUInt.__getitem__ = new_instancemethod(_openbabel.vvpairUIntUInt___getitem__, None, vvpairUIntUInt)
vvpairUIntUInt.__setitem__ = new_instancemethod(_openbabel.vvpairUIntUInt___setitem__, None, vvpairUIntUInt)
vvpairUIntUInt.pop = new_instancemethod(_openbabel.vvpairUIntUInt_pop, None, vvpairUIntUInt)
vvpairUIntUInt.append = new_instancemethod(_openbabel.vvpairUIntUInt_append, None, vvpairUIntUInt)
vvpairUIntUInt.empty = new_instancemethod(_openbabel.vvpairUIntUInt_empty, None, vvpairUIntUInt)
vvpairUIntUInt.size = new_instancemethod(_openbabel.vvpairUIntUInt_size, None, vvpairUIntUInt)
vvpairUIntUInt.swap = new_instancemethod(_openbabel.vvpairUIntUInt_swap, None, vvpairUIntUInt)
vvpairUIntUInt.begin = new_instancemethod(_openbabel.vvpairUIntUInt_begin, None, vvpairUIntUInt)
vvpairUIntUInt.end = new_instancemethod(_openbabel.vvpairUIntUInt_end, None, vvpairUIntUInt)
vvpairUIntUInt.rbegin = new_instancemethod(_openbabel.vvpairUIntUInt_rbegin, None, vvpairUIntUInt)
vvpairUIntUInt.rend = new_instancemethod(_openbabel.vvpairUIntUInt_rend, None, vvpairUIntUInt)
vvpairUIntUInt.clear = new_instancemethod(_openbabel.vvpairUIntUInt_clear, None, vvpairUIntUInt)
vvpairUIntUInt.get_allocator = new_instancemethod(_openbabel.vvpairUIntUInt_get_allocator, None, vvpairUIntUInt)
vvpairUIntUInt.pop_back = new_instancemethod(_openbabel.vvpairUIntUInt_pop_back, None, vvpairUIntUInt)
vvpairUIntUInt.erase = new_instancemethod(_openbabel.vvpairUIntUInt_erase, None, vvpairUIntUInt)
vvpairUIntUInt.push_back = new_instancemethod(_openbabel.vvpairUIntUInt_push_back, None, vvpairUIntUInt)
vvpairUIntUInt.front = new_instancemethod(_openbabel.vvpairUIntUInt_front, None, vvpairUIntUInt)
vvpairUIntUInt.back = new_instancemethod(_openbabel.vvpairUIntUInt_back, None, vvpairUIntUInt)
vvpairUIntUInt.assign = new_instancemethod(_openbabel.vvpairUIntUInt_assign, None, vvpairUIntUInt)
vvpairUIntUInt.resize = new_instancemethod(_openbabel.vvpairUIntUInt_resize, None, vvpairUIntUInt)
vvpairUIntUInt.insert = new_instancemethod(_openbabel.vvpairUIntUInt_insert, None, vvpairUIntUInt)
vvpairUIntUInt.reserve = new_instancemethod(_openbabel.vvpairUIntUInt_reserve, None, vvpairUIntUInt)
vvpairUIntUInt.capacity = new_instancemethod(_openbabel.vvpairUIntUInt_capacity, None, vvpairUIntUInt)
vvpairUIntUInt_swigregister = _openbabel.vvpairUIntUInt_swigregister
vvpairUIntUInt_swigregister(vvpairUIntUInt)


def toAliasData(data):
    return _openbabel.toAliasData(data)
toAliasData = _openbabel.toAliasData

def toAngleData(data):
    return _openbabel.toAngleData(data)
toAngleData = _openbabel.toAngleData

def toCommentData(data):
    return _openbabel.toCommentData(data)
toCommentData = _openbabel.toCommentData

def toConformerData(data):
    return _openbabel.toConformerData(data)
toConformerData = _openbabel.toConformerData

def toExternalBondData(data):
    return _openbabel.toExternalBondData(data)
toExternalBondData = _openbabel.toExternalBondData

def toGridData(data):
    return _openbabel.toGridData(data)
toGridData = _openbabel.toGridData

def toMatrixData(data):
    return _openbabel.toMatrixData(data)
toMatrixData = _openbabel.toMatrixData

def toNasaThermoData(data):
    return _openbabel.toNasaThermoData(data)
toNasaThermoData = _openbabel.toNasaThermoData

def toPairData(data):
    return _openbabel.toPairData(data)
toPairData = _openbabel.toPairData

def toPairInteger(data):
    return _openbabel.toPairInteger(data)
toPairInteger = _openbabel.toPairInteger

def toPairFloatingPoint(data):
    return _openbabel.toPairFloatingPoint(data)
toPairFloatingPoint = _openbabel.toPairFloatingPoint

def toRateData(data):
    return _openbabel.toRateData(data)
toRateData = _openbabel.toRateData

def toRotamerList(data):
    return _openbabel.toRotamerList(data)
toRotamerList = _openbabel.toRotamerList

def toRotationData(data):
    return _openbabel.toRotationData(data)
toRotationData = _openbabel.toRotationData

def toSerialNums(data):
    return _openbabel.toSerialNums(data)
toSerialNums = _openbabel.toSerialNums

def toSetData(data):
    return _openbabel.toSetData(data)
toSetData = _openbabel.toSetData

def toSymmetryData(data):
    return _openbabel.toSymmetryData(data)
toSymmetryData = _openbabel.toSymmetryData

def toTorsionData(data):
    return _openbabel.toTorsionData(data)
toTorsionData = _openbabel.toTorsionData

def toUnitCell(data):
    return _openbabel.toUnitCell(data)
toUnitCell = _openbabel.toUnitCell

def toVectorData(data):
    return _openbabel.toVectorData(data)
toVectorData = _openbabel.toVectorData

def toVibrationData(data):
    return _openbabel.toVibrationData(data)
toVibrationData = _openbabel.toVibrationData

def toVirtualBond(data):
    return _openbabel.toVirtualBond(data)
toVirtualBond = _openbabel.toVirtualBond

def toStereoBase(data):
    return _openbabel.toStereoBase(data)
toStereoBase = _openbabel.toStereoBase

def toTetrahedralStereo(data):
    return _openbabel.toTetrahedralStereo(data)
toTetrahedralStereo = _openbabel.toTetrahedralStereo

def toCisTransStereo(data):
    return _openbabel.toCisTransStereo(data)
toCisTransStereo = _openbabel.toCisTransStereo

def toSquarePlanarStereo(data):
    return _openbabel.toSquarePlanarStereo(data)
toSquarePlanarStereo = _openbabel.toSquarePlanarStereo
class OBGlobalDataBase(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBGlobalDataBase_swiginit(self, _openbabel.new_OBGlobalDataBase())
    __swig_destroy__ = _openbabel.delete_OBGlobalDataBase
OBGlobalDataBase.Init = new_instancemethod(_openbabel.OBGlobalDataBase_Init, None, OBGlobalDataBase)
OBGlobalDataBase.GetSize = new_instancemethod(_openbabel.OBGlobalDataBase_GetSize, None, OBGlobalDataBase)
OBGlobalDataBase.SetReadDirectory = new_instancemethod(_openbabel.OBGlobalDataBase_SetReadDirectory, None, OBGlobalDataBase)
OBGlobalDataBase.SetEnvironmentVariable = new_instancemethod(_openbabel.OBGlobalDataBase_SetEnvironmentVariable, None, OBGlobalDataBase)
OBGlobalDataBase.ParseLine = new_instancemethod(_openbabel.OBGlobalDataBase_ParseLine, None, OBGlobalDataBase)
OBGlobalDataBase_swigregister = _openbabel.OBGlobalDataBase_swigregister
OBGlobalDataBase_swigregister(OBGlobalDataBase)

class OBAtomHOF(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, element, charge, method, desc, T, value, multiplicity, unit):
        _openbabel.OBAtomHOF_swiginit(self, _openbabel.new_OBAtomHOF(element, charge, method, desc, T, value, multiplicity, unit))
    __swig_destroy__ = _openbabel.delete_OBAtomHOF
OBAtomHOF.Element = new_instancemethod(_openbabel.OBAtomHOF_Element, None, OBAtomHOF)
OBAtomHOF.Charge = new_instancemethod(_openbabel.OBAtomHOF_Charge, None, OBAtomHOF)
OBAtomHOF.Method = new_instancemethod(_openbabel.OBAtomHOF_Method, None, OBAtomHOF)
OBAtomHOF.Desc = new_instancemethod(_openbabel.OBAtomHOF_Desc, None, OBAtomHOF)
OBAtomHOF.T = new_instancemethod(_openbabel.OBAtomHOF_T, None, OBAtomHOF)
OBAtomHOF.Value = new_instancemethod(_openbabel.OBAtomHOF_Value, None, OBAtomHOF)
OBAtomHOF.Multiplicity = new_instancemethod(_openbabel.OBAtomHOF_Multiplicity, None, OBAtomHOF)
OBAtomHOF.Unit = new_instancemethod(_openbabel.OBAtomHOF_Unit, None, OBAtomHOF)
OBAtomHOF_swigregister = _openbabel.OBAtomHOF_swigregister
OBAtomHOF_swigregister(OBAtomHOF)

class OBAtomicHeatOfFormationTable(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBAtomicHeatOfFormationTable_swiginit(self, _openbabel.new_OBAtomicHeatOfFormationTable())
    __swig_destroy__ = _openbabel.delete_OBAtomicHeatOfFormationTable
OBAtomicHeatOfFormationTable.GetHeatOfFormation = new_instancemethod(_openbabel.OBAtomicHeatOfFormationTable_GetHeatOfFormation, None, OBAtomicHeatOfFormationTable)
OBAtomicHeatOfFormationTable_swigregister = _openbabel.OBAtomicHeatOfFormationTable_swigregister
OBAtomicHeatOfFormationTable_swigregister(OBAtomicHeatOfFormationTable)

class OBTypeTable(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBTypeTable_swiginit(self, _openbabel.new_OBTypeTable())
    __swig_destroy__ = _openbabel.delete_OBTypeTable
OBTypeTable.SetFromType = new_instancemethod(_openbabel.OBTypeTable_SetFromType, None, OBTypeTable)
OBTypeTable.SetToType = new_instancemethod(_openbabel.OBTypeTable_SetToType, None, OBTypeTable)
OBTypeTable.Translate = new_instancemethod(_openbabel.OBTypeTable_Translate, None, OBTypeTable)
OBTypeTable.GetFromType = new_instancemethod(_openbabel.OBTypeTable_GetFromType, None, OBTypeTable)
OBTypeTable.GetToType = new_instancemethod(_openbabel.OBTypeTable_GetToType, None, OBTypeTable)
OBTypeTable_swigregister = _openbabel.OBTypeTable_swigregister
OBTypeTable_swigregister(OBTypeTable)

class OBResidueData(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBResidueData_swiginit(self, _openbabel.new_OBResidueData())
    __swig_destroy__ = _openbabel.delete_OBResidueData
OBResidueData.SetResName = new_instancemethod(_openbabel.OBResidueData_SetResName, None, OBResidueData)
OBResidueData.LookupBO = new_instancemethod(_openbabel.OBResidueData_LookupBO, None, OBResidueData)
OBResidueData.LookupType = new_instancemethod(_openbabel.OBResidueData_LookupType, None, OBResidueData)
OBResidueData.AssignBonds = new_instancemethod(_openbabel.OBResidueData_AssignBonds, None, OBResidueData)
OBResidueData_swigregister = _openbabel.OBResidueData_swigregister
OBResidueData_swigregister(OBResidueData)
cvar = _openbabel.cvar

M_PI = _openbabel.M_PI
class OBStopwatch(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBStopwatch_swiginit(self, _openbabel.new_OBStopwatch())
    __swig_destroy__ = _openbabel.delete_OBStopwatch
OBStopwatch.Start = new_instancemethod(_openbabel.OBStopwatch_Start, None, OBStopwatch)
OBStopwatch.Lap = new_instancemethod(_openbabel.OBStopwatch_Lap, None, OBStopwatch)
OBStopwatch.Elapsed = new_instancemethod(_openbabel.OBStopwatch_Elapsed, None, OBStopwatch)
OBStopwatch_swigregister = _openbabel.OBStopwatch_swigregister
OBStopwatch_swigregister(OBStopwatch)

class OBSqrtTbl(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBSqrtTbl_swiginit(self, _openbabel.new_OBSqrtTbl(*args))
    __swig_destroy__ = _openbabel.delete_OBSqrtTbl
OBSqrtTbl.Sqrt = new_instancemethod(_openbabel.OBSqrtTbl_Sqrt, None, OBSqrtTbl)
OBSqrtTbl.Init = new_instancemethod(_openbabel.OBSqrtTbl_Init, None, OBSqrtTbl)
OBSqrtTbl_swigregister = _openbabel.OBSqrtTbl_swigregister
OBSqrtTbl_swigregister(OBSqrtTbl)


def rotate_coords(arg1, m, arg3):
    return _openbabel.rotate_coords(arg1, m, arg3)
rotate_coords = _openbabel.rotate_coords

def calc_rms(arg1, arg2, arg3):
    return _openbabel.calc_rms(arg1, arg2, arg3)
calc_rms = _openbabel.calc_rms
RAD_TO_DEG = _openbabel.RAD_TO_DEG
DEG_TO_RAD = _openbabel.DEG_TO_RAD
class vector3(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.vector3_swiginit(self, _openbabel.new_vector3(*args))
    __swig_destroy__ = _openbabel.delete_vector3

    def __itruediv__(self, *args):
        return _openbabel.vector3___itruediv__(self, *args)
    __idiv__ = __itruediv__


vector3.begin = new_instancemethod(_openbabel.vector3_begin, None, vector3)
vector3.end = new_instancemethod(_openbabel.vector3_end, None, vector3)
vector3.Set = new_instancemethod(_openbabel.vector3_Set, None, vector3)
vector3.SetX = new_instancemethod(_openbabel.vector3_SetX, None, vector3)
vector3.SetY = new_instancemethod(_openbabel.vector3_SetY, None, vector3)
vector3.SetZ = new_instancemethod(_openbabel.vector3_SetZ, None, vector3)
vector3.GetX = new_instancemethod(_openbabel.vector3_GetX, None, vector3)
vector3.GetY = new_instancemethod(_openbabel.vector3_GetY, None, vector3)
vector3.GetZ = new_instancemethod(_openbabel.vector3_GetZ, None, vector3)
vector3.Get = new_instancemethod(_openbabel.vector3_Get, None, vector3)
vector3.AsArray = new_instancemethod(_openbabel.vector3_AsArray, None, vector3)
vector3.__iadd__ = new_instancemethod(_openbabel.vector3___iadd__, None, vector3)
vector3.__isub__ = new_instancemethod(_openbabel.vector3___isub__, None, vector3)
vector3.__imul__ = new_instancemethod(_openbabel.vector3___imul__, None, vector3)
vector3.randomUnitVector = new_instancemethod(_openbabel.vector3_randomUnitVector, None, vector3)
vector3.normalize = new_instancemethod(_openbabel.vector3_normalize, None, vector3)
vector3.CanBeNormalized = new_instancemethod(_openbabel.vector3_CanBeNormalized, None, vector3)
vector3.length_2 = new_instancemethod(_openbabel.vector3_length_2, None, vector3)
vector3.length = new_instancemethod(_openbabel.vector3_length, None, vector3)
vector3.x = new_instancemethod(_openbabel.vector3_x, None, vector3)
vector3.y = new_instancemethod(_openbabel.vector3_y, None, vector3)
vector3.z = new_instancemethod(_openbabel.vector3_z, None, vector3)
vector3.__eq__ = new_instancemethod(_openbabel.vector3___eq__, None, vector3)
vector3.__ne__ = new_instancemethod(_openbabel.vector3___ne__, None, vector3)
vector3.IsApprox = new_instancemethod(_openbabel.vector3_IsApprox, None, vector3)
vector3.distSq = new_instancemethod(_openbabel.vector3_distSq, None, vector3)
vector3.createOrthoVector = new_instancemethod(_openbabel.vector3_createOrthoVector, None, vector3)
vector3_swigregister = _openbabel.vector3_swigregister
vector3_swigregister(vector3)


def __lshift__(arg1, arg2):
    return _openbabel.__lshift__(arg1, arg2)
__lshift__ = _openbabel.__lshift__

def __add__(v1, v2):
    return _openbabel.__add__(v1, v2)
__add__ = _openbabel.__add__

def __sub__(*args):
    return _openbabel.__sub__(*args)
__sub__ = _openbabel.__sub__

def __truediv__(v, c):
    return _openbabel.__truediv__(v, c)
__truediv__ = _openbabel.__truediv__

def __mul__(*args):
    return _openbabel.__mul__(*args)
__mul__ = _openbabel.__mul__

def dot(v1, v2):
    return _openbabel.dot(v1, v2)
dot = _openbabel.dot

def cross(arg1, arg2):
    return _openbabel.cross(arg1, arg2)
cross = _openbabel.cross

def vectorAngle(v1, v2):
    return _openbabel.vectorAngle(v1, v2)
vectorAngle = _openbabel.vectorAngle

def CalcTorsionAngle(a, b, c, d):
    return _openbabel.CalcTorsionAngle(a, b, c, d)
CalcTorsionAngle = _openbabel.CalcTorsionAngle

def Point2PlaneSigned(a, b, c, d):
    return _openbabel.Point2PlaneSigned(a, b, c, d)
Point2PlaneSigned = _openbabel.Point2PlaneSigned

def Point2Plane(a, b, c, d):
    return _openbabel.Point2Plane(a, b, c, d)
Point2Plane = _openbabel.Point2Plane

def Point2PlaneAngle(a, b, c, d):
    return _openbabel.Point2PlaneAngle(a, b, c, d)
Point2PlaneAngle = _openbabel.Point2PlaneAngle

def Point2Line(a, b, c):
    return _openbabel.Point2Line(a, b, c)
Point2Line = _openbabel.Point2Line
class matrix3x3(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.matrix3x3_swiginit(self, _openbabel.new_matrix3x3(*args))
    __swig_destroy__ = _openbabel.delete_matrix3x3

    def __itruediv__(self, *args):
        return _openbabel.matrix3x3___itruediv__(self, *args)
    __idiv__ = __itruediv__


    jacobi = staticmethod(_openbabel.matrix3x3_jacobi)
matrix3x3.GetArray = new_instancemethod(_openbabel.matrix3x3_GetArray, None, matrix3x3)
matrix3x3.__call__ = new_instancemethod(_openbabel.matrix3x3___call__, None, matrix3x3)
matrix3x3.inverse = new_instancemethod(_openbabel.matrix3x3_inverse, None, matrix3x3)
matrix3x3.transpose = new_instancemethod(_openbabel.matrix3x3_transpose, None, matrix3x3)
matrix3x3.determinant = new_instancemethod(_openbabel.matrix3x3_determinant, None, matrix3x3)
matrix3x3.isSymmetric = new_instancemethod(_openbabel.matrix3x3_isSymmetric, None, matrix3x3)
matrix3x3.isOrthogonal = new_instancemethod(_openbabel.matrix3x3_isOrthogonal, None, matrix3x3)
matrix3x3.isDiagonal = new_instancemethod(_openbabel.matrix3x3_isDiagonal, None, matrix3x3)
matrix3x3.isUnitMatrix = new_instancemethod(_openbabel.matrix3x3_isUnitMatrix, None, matrix3x3)
matrix3x3.Get = new_instancemethod(_openbabel.matrix3x3_Get, None, matrix3x3)
matrix3x3.Set = new_instancemethod(_openbabel.matrix3x3_Set, None, matrix3x3)
matrix3x3.SetColumn = new_instancemethod(_openbabel.matrix3x3_SetColumn, None, matrix3x3)
matrix3x3.SetRow = new_instancemethod(_openbabel.matrix3x3_SetRow, None, matrix3x3)
matrix3x3.GetColumn = new_instancemethod(_openbabel.matrix3x3_GetColumn, None, matrix3x3)
matrix3x3.GetRow = new_instancemethod(_openbabel.matrix3x3_GetRow, None, matrix3x3)
matrix3x3.__imul__ = new_instancemethod(_openbabel.matrix3x3___imul__, None, matrix3x3)
matrix3x3.SetupRotMat = new_instancemethod(_openbabel.matrix3x3_SetupRotMat, None, matrix3x3)
matrix3x3.PlaneReflection = new_instancemethod(_openbabel.matrix3x3_PlaneReflection, None, matrix3x3)
matrix3x3.RotAboutAxisByAngle = new_instancemethod(_openbabel.matrix3x3_RotAboutAxisByAngle, None, matrix3x3)
matrix3x3.FillOrth = new_instancemethod(_openbabel.matrix3x3_FillOrth, None, matrix3x3)
matrix3x3.findEigenvectorsIfSymmetric = new_instancemethod(_openbabel.matrix3x3_findEigenvectorsIfSymmetric, None, matrix3x3)
matrix3x3_swigregister = _openbabel.matrix3x3_swigregister
matrix3x3_swigregister(matrix3x3)
VZero = cvar.VZero
VX = cvar.VX
VY = cvar.VY
VZ = cvar.VZ

def matrix3x3_jacobi(n, a, d, v):
    return _openbabel.matrix3x3_jacobi(n, a, d, v)
matrix3x3_jacobi = _openbabel.matrix3x3_jacobi

class transform3d(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.transform3d_swiginit(self, _openbabel.new_transform3d(*args))
    __swig_destroy__ = _openbabel.delete_transform3d
transform3d.__mul__ = new_instancemethod(_openbabel.transform3d___mul__, None, transform3d)
transform3d.DescribeAsString = new_instancemethod(_openbabel.transform3d_DescribeAsString, None, transform3d)
transform3d.DescribeAsValues = new_instancemethod(_openbabel.transform3d_DescribeAsValues, None, transform3d)
transform3d.Normalize = new_instancemethod(_openbabel.transform3d_Normalize, None, transform3d)
transform3d_swigregister = _openbabel.transform3d_swigregister
transform3d_swigregister(transform3d)

class SpaceGroup(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.SpaceGroup_swiginit(self, _openbabel.new_SpaceGroup())
    __swig_destroy__ = _openbabel.delete_SpaceGroup
    GetSpaceGroup = staticmethod(_openbabel.SpaceGroup_GetSpaceGroup)
    Find = staticmethod(_openbabel.SpaceGroup_Find)
    HEXAGONAL_ORIGIN = _swig_property(_openbabel.SpaceGroup_HEXAGONAL_ORIGIN_get)
SpaceGroup.SetHMName = new_instancemethod(_openbabel.SpaceGroup_SetHMName, None, SpaceGroup)
SpaceGroup.SetHallName = new_instancemethod(_openbabel.SpaceGroup_SetHallName, None, SpaceGroup)
SpaceGroup.SetId = new_instancemethod(_openbabel.SpaceGroup_SetId, None, SpaceGroup)
SpaceGroup.AddTransform = new_instancemethod(_openbabel.SpaceGroup_AddTransform, None, SpaceGroup)
SpaceGroup.GetHMName = new_instancemethod(_openbabel.SpaceGroup_GetHMName, None, SpaceGroup)
SpaceGroup.GetHallName = new_instancemethod(_openbabel.SpaceGroup_GetHallName, None, SpaceGroup)
SpaceGroup.GetId = new_instancemethod(_openbabel.SpaceGroup_GetId, None, SpaceGroup)
SpaceGroup.GetOriginAlternative = new_instancemethod(_openbabel.SpaceGroup_GetOriginAlternative, None, SpaceGroup)
SpaceGroup.Transform = new_instancemethod(_openbabel.SpaceGroup_Transform, None, SpaceGroup)
SpaceGroup.BeginTransform = new_instancemethod(_openbabel.SpaceGroup_BeginTransform, None, SpaceGroup)
SpaceGroup.NextTransform = new_instancemethod(_openbabel.SpaceGroup_NextTransform, None, SpaceGroup)
SpaceGroup.__eq__ = new_instancemethod(_openbabel.SpaceGroup___eq__, None, SpaceGroup)
SpaceGroup.__ne__ = new_instancemethod(_openbabel.SpaceGroup___ne__, None, SpaceGroup)
SpaceGroup.IsValid = new_instancemethod(_openbabel.SpaceGroup_IsValid, None, SpaceGroup)
SpaceGroup_swigregister = _openbabel.SpaceGroup_swigregister
SpaceGroup_swigregister(SpaceGroup)

def SpaceGroup_GetSpaceGroup(*args):
    return _openbabel.SpaceGroup_GetSpaceGroup(*args)
SpaceGroup_GetSpaceGroup = _openbabel.SpaceGroup_GetSpaceGroup

def SpaceGroup_Find(group):
    return _openbabel.SpaceGroup_Find(group)
SpaceGroup_Find = _openbabel.SpaceGroup_Find

SETWORD = _openbabel.SETWORD
WORDROLL = _openbabel.WORDROLL
WORDMASK = _openbabel.WORDMASK
STARTWORDS = _openbabel.STARTWORDS
class OBBitVec(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBBitVec_swiginit(self, _openbabel.new_OBBitVec(*args))
    __swig_destroy__ = _openbabel.delete_OBBitVec
OBBitVec.SetBitOn = new_instancemethod(_openbabel.OBBitVec_SetBitOn, None, OBBitVec)
OBBitVec.SetBitOff = new_instancemethod(_openbabel.OBBitVec_SetBitOff, None, OBBitVec)
OBBitVec.SetRangeOn = new_instancemethod(_openbabel.OBBitVec_SetRangeOn, None, OBBitVec)
OBBitVec.SetRangeOff = new_instancemethod(_openbabel.OBBitVec_SetRangeOff, None, OBBitVec)
OBBitVec.Fold = new_instancemethod(_openbabel.OBBitVec_Fold, None, OBBitVec)
OBBitVec.FirstBit = new_instancemethod(_openbabel.OBBitVec_FirstBit, None, OBBitVec)
OBBitVec.NextBit = new_instancemethod(_openbabel.OBBitVec_NextBit, None, OBBitVec)
OBBitVec.EndBit = new_instancemethod(_openbabel.OBBitVec_EndBit, None, OBBitVec)
OBBitVec.GetSize = new_instancemethod(_openbabel.OBBitVec_GetSize, None, OBBitVec)
OBBitVec.CountBits = new_instancemethod(_openbabel.OBBitVec_CountBits, None, OBBitVec)
OBBitVec.IsEmpty = new_instancemethod(_openbabel.OBBitVec_IsEmpty, None, OBBitVec)
OBBitVec.Resize = new_instancemethod(_openbabel.OBBitVec_Resize, None, OBBitVec)
OBBitVec.ResizeWords = new_instancemethod(_openbabel.OBBitVec_ResizeWords, None, OBBitVec)
OBBitVec.BitIsSet = new_instancemethod(_openbabel.OBBitVec_BitIsSet, None, OBBitVec)
OBBitVec.FromVecInt = new_instancemethod(_openbabel.OBBitVec_FromVecInt, None, OBBitVec)
OBBitVec.FromString = new_instancemethod(_openbabel.OBBitVec_FromString, None, OBBitVec)
OBBitVec.ToVecInt = new_instancemethod(_openbabel.OBBitVec_ToVecInt, None, OBBitVec)
OBBitVec.Clear = new_instancemethod(_openbabel.OBBitVec_Clear, None, OBBitVec)
OBBitVec.Negate = new_instancemethod(_openbabel.OBBitVec_Negate, None, OBBitVec)
OBBitVec.GetWords = new_instancemethod(_openbabel.OBBitVec_GetWords, None, OBBitVec)
OBBitVec.__iand__ = new_instancemethod(_openbabel.OBBitVec___iand__, None, OBBitVec)
OBBitVec.__ior__ = new_instancemethod(_openbabel.OBBitVec___ior__, None, OBBitVec)
OBBitVec.__ixor__ = new_instancemethod(_openbabel.OBBitVec___ixor__, None, OBBitVec)
OBBitVec.__isub__ = new_instancemethod(_openbabel.OBBitVec___isub__, None, OBBitVec)
OBBitVec.__iadd__ = new_instancemethod(_openbabel.OBBitVec___iadd__, None, OBBitVec)
OBBitVec_swigregister = _openbabel.OBBitVec_swigregister
OBBitVec_swigregister(OBBitVec)


def Tanimoto(bv1, bv2):
    return _openbabel.Tanimoto(bv1, bv2)
Tanimoto = _openbabel.Tanimoto

def OBReleaseVersion():
    return _openbabel.OBReleaseVersion()
OBReleaseVersion = _openbabel.OBReleaseVersion
UndefinedData = _openbabel.UndefinedData
PairData = _openbabel.PairData
EnergyData = _openbabel.EnergyData
CommentData = _openbabel.CommentData
ConformerData = _openbabel.ConformerData
ExternalBondData = _openbabel.ExternalBondData
RotamerList = _openbabel.RotamerList
VirtualBondData = _openbabel.VirtualBondData
RingData = _openbabel.RingData
TorsionData = _openbabel.TorsionData
AngleData = _openbabel.AngleData
SerialNums = _openbabel.SerialNums
UnitCell = _openbabel.UnitCell
SpinData = _openbabel.SpinData
ChargeData = _openbabel.ChargeData
SymmetryData = _openbabel.SymmetryData
OccupationData = _openbabel.OccupationData
DensityData = _openbabel.DensityData
ElectronicData = _openbabel.ElectronicData
VibrationData = _openbabel.VibrationData
RotationData = _openbabel.RotationData
NuclearData = _openbabel.NuclearData
SetData = _openbabel.SetData
GridData = _openbabel.GridData
VectorData = _openbabel.VectorData
MatrixData = _openbabel.MatrixData
StereoData = _openbabel.StereoData
DOSData = _openbabel.DOSData
ElectronicTransitionData = _openbabel.ElectronicTransitionData
CustomData0 = _openbabel.CustomData0
CustomData1 = _openbabel.CustomData1
CustomData2 = _openbabel.CustomData2
CustomData3 = _openbabel.CustomData3
CustomData4 = _openbabel.CustomData4
CustomData5 = _openbabel.CustomData5
CustomData6 = _openbabel.CustomData6
CustomData7 = _openbabel.CustomData7
CustomData8 = _openbabel.CustomData8
CustomData9 = _openbabel.CustomData9
CustomData10 = _openbabel.CustomData10
CustomData11 = _openbabel.CustomData11
CustomData12 = _openbabel.CustomData12
CustomData13 = _openbabel.CustomData13
CustomData14 = _openbabel.CustomData14
CustomData15 = _openbabel.CustomData15
any = _openbabel.any
fileformatInput = _openbabel.fileformatInput
userInput = _openbabel.userInput
perceived = _openbabel.perceived
external = _openbabel.external
local = _openbabel.local
class OBGenericData(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBGenericData_swiginit(self, _openbabel.new_OBGenericData(*args))
    __swig_destroy__ = _openbabel.delete_OBGenericData
OBGenericData.Clone = new_instancemethod(_openbabel.OBGenericData_Clone, None, OBGenericData)
OBGenericData.SetAttribute = new_instancemethod(_openbabel.OBGenericData_SetAttribute, None, OBGenericData)
OBGenericData.SetOrigin = new_instancemethod(_openbabel.OBGenericData_SetOrigin, None, OBGenericData)
OBGenericData.GetAttribute = new_instancemethod(_openbabel.OBGenericData_GetAttribute, None, OBGenericData)
OBGenericData.GetDataType = new_instancemethod(_openbabel.OBGenericData_GetDataType, None, OBGenericData)
OBGenericData.GetValue = new_instancemethod(_openbabel.OBGenericData_GetValue, None, OBGenericData)
OBGenericData.GetOrigin = new_instancemethod(_openbabel.OBGenericData_GetOrigin, None, OBGenericData)
OBGenericData_swigregister = _openbabel.OBGenericData_swigregister
OBGenericData_swigregister(OBGenericData)

class OBBase(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBBase
    ClassDescription = staticmethod(_openbabel.OBBase_ClassDescription)

    def __init__(self):
        _openbabel.OBBase_swiginit(self, _openbabel.new_OBBase())
OBBase.Clear = new_instancemethod(_openbabel.OBBase_Clear, None, OBBase)
OBBase.DoTransformations = new_instancemethod(_openbabel.OBBase_DoTransformations, None, OBBase)
OBBase.GetTitle = new_instancemethod(_openbabel.OBBase_GetTitle, None, OBBase)
OBBase.SetTitle = new_instancemethod(_openbabel.OBBase_SetTitle, None, OBBase)
OBBase.HasData = new_instancemethod(_openbabel.OBBase_HasData, None, OBBase)
OBBase.DeleteData = new_instancemethod(_openbabel.OBBase_DeleteData, None, OBBase)
OBBase.CloneData = new_instancemethod(_openbabel.OBBase_CloneData, None, OBBase)
OBBase.DataSize = new_instancemethod(_openbabel.OBBase_DataSize, None, OBBase)
OBBase.GetAllData = new_instancemethod(_openbabel.OBBase_GetAllData, None, OBBase)
OBBase.GetData = new_instancemethod(_openbabel.OBBase_GetData, None, OBBase)
OBBase.BeginData = new_instancemethod(_openbabel.OBBase_BeginData, None, OBBase)
OBBase.EndData = new_instancemethod(_openbabel.OBBase_EndData, None, OBBase)
OBBase_swigregister = _openbabel.OBBase_swigregister
OBBase_swigregister(OBBase)

def OBBase_ClassDescription():
    return _openbabel.OBBase_ClassDescription()
OBBase_ClassDescription = _openbabel.OBBase_ClassDescription

class OBCommentData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBCommentData_swiginit(self, _openbabel.new_OBCommentData(*args))
    __swig_destroy__ = _openbabel.delete_OBCommentData
OBCommentData.SetData = new_instancemethod(_openbabel.OBCommentData_SetData, None, OBCommentData)
OBCommentData.GetData = new_instancemethod(_openbabel.OBCommentData_GetData, None, OBCommentData)
OBCommentData_swigregister = _openbabel.OBCommentData_swigregister
OBCommentData_swigregister(OBCommentData)

class OBExternalBond(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBExternalBond_swiginit(self, _openbabel.new_OBExternalBond(*args))
    __swig_destroy__ = _openbabel.delete_OBExternalBond
OBExternalBond.GetIdx = new_instancemethod(_openbabel.OBExternalBond_GetIdx, None, OBExternalBond)
OBExternalBond.GetAtom = new_instancemethod(_openbabel.OBExternalBond_GetAtom, None, OBExternalBond)
OBExternalBond.GetBond = new_instancemethod(_openbabel.OBExternalBond_GetBond, None, OBExternalBond)
OBExternalBond.SetIdx = new_instancemethod(_openbabel.OBExternalBond_SetIdx, None, OBExternalBond)
OBExternalBond.SetAtom = new_instancemethod(_openbabel.OBExternalBond_SetAtom, None, OBExternalBond)
OBExternalBond.SetBond = new_instancemethod(_openbabel.OBExternalBond_SetBond, None, OBExternalBond)
OBExternalBond_swigregister = _openbabel.OBExternalBond_swigregister
OBExternalBond_swigregister(OBExternalBond)

class OBExternalBondData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBExternalBondData_swiginit(self, _openbabel.new_OBExternalBondData())
    __swig_destroy__ = _openbabel.delete_OBExternalBondData
OBExternalBondData.SetData = new_instancemethod(_openbabel.OBExternalBondData_SetData, None, OBExternalBondData)
OBExternalBondData.GetData = new_instancemethod(_openbabel.OBExternalBondData_GetData, None, OBExternalBondData)
OBExternalBondData_swigregister = _openbabel.OBExternalBondData_swigregister
OBExternalBondData_swigregister(OBExternalBondData)

class OBPairData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBPairData_swiginit(self, _openbabel.new_OBPairData())
    __swig_destroy__ = _openbabel.delete_OBPairData
OBPairData.SetValue = new_instancemethod(_openbabel.OBPairData_SetValue, None, OBPairData)
OBPairData_swigregister = _openbabel.OBPairData_swigregister
OBPairData_swigregister(OBPairData)

class OBSetData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBSetData_swiginit(self, _openbabel.new_OBSetData())
    __swig_destroy__ = _openbabel.delete_OBSetData
OBSetData.AddData = new_instancemethod(_openbabel.OBSetData_AddData, None, OBSetData)
OBSetData.SetData = new_instancemethod(_openbabel.OBSetData_SetData, None, OBSetData)
OBSetData.GetData = new_instancemethod(_openbabel.OBSetData_GetData, None, OBSetData)
OBSetData.GetBegin = new_instancemethod(_openbabel.OBSetData_GetBegin, None, OBSetData)
OBSetData.GetEnd = new_instancemethod(_openbabel.OBSetData_GetEnd, None, OBSetData)
OBSetData.DeleteData = new_instancemethod(_openbabel.OBSetData_DeleteData, None, OBSetData)
OBSetData_swigregister = _openbabel.OBSetData_swigregister
OBSetData_swigregister(OBSetData)

class OBVirtualBond(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBVirtualBond_swiginit(self, _openbabel.new_OBVirtualBond(*args))
    __swig_destroy__ = _openbabel.delete_OBVirtualBond
OBVirtualBond.GetBgn = new_instancemethod(_openbabel.OBVirtualBond_GetBgn, None, OBVirtualBond)
OBVirtualBond.GetEnd = new_instancemethod(_openbabel.OBVirtualBond_GetEnd, None, OBVirtualBond)
OBVirtualBond.GetOrder = new_instancemethod(_openbabel.OBVirtualBond_GetOrder, None, OBVirtualBond)
OBVirtualBond.GetStereo = new_instancemethod(_openbabel.OBVirtualBond_GetStereo, None, OBVirtualBond)
OBVirtualBond_swigregister = _openbabel.OBVirtualBond_swigregister
OBVirtualBond_swigregister(OBVirtualBond)

class OBRingData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBRingData_swiginit(self, _openbabel.new_OBRingData(*args))
    __swig_destroy__ = _openbabel.delete_OBRingData
OBRingData.SetData = new_instancemethod(_openbabel.OBRingData_SetData, None, OBRingData)
OBRingData.PushBack = new_instancemethod(_openbabel.OBRingData_PushBack, None, OBRingData)
OBRingData.GetData = new_instancemethod(_openbabel.OBRingData_GetData, None, OBRingData)
OBRingData.BeginRings = new_instancemethod(_openbabel.OBRingData_BeginRings, None, OBRingData)
OBRingData.EndRings = new_instancemethod(_openbabel.OBRingData_EndRings, None, OBRingData)
OBRingData.BeginRing = new_instancemethod(_openbabel.OBRingData_BeginRing, None, OBRingData)
OBRingData.NextRing = new_instancemethod(_openbabel.OBRingData_NextRing, None, OBRingData)
OBRingData_swigregister = _openbabel.OBRingData_swigregister
OBRingData_swigregister(OBRingData)

class OBUnitCell(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Undefined = _openbabel.OBUnitCell_Undefined
    Triclinic = _openbabel.OBUnitCell_Triclinic
    Monoclinic = _openbabel.OBUnitCell_Monoclinic
    Orthorhombic = _openbabel.OBUnitCell_Orthorhombic
    Tetragonal = _openbabel.OBUnitCell_Tetragonal
    Rhombohedral = _openbabel.OBUnitCell_Rhombohedral
    Hexagonal = _openbabel.OBUnitCell_Hexagonal
    Cubic = _openbabel.OBUnitCell_Cubic

    def __init__(self, *args):
        _openbabel.OBUnitCell_swiginit(self, _openbabel.new_OBUnitCell(*args))
    __swig_destroy__ = _openbabel.delete_OBUnitCell
OBUnitCell.SetData = new_instancemethod(_openbabel.OBUnitCell_SetData, None, OBUnitCell)
OBUnitCell.SetOffset = new_instancemethod(_openbabel.OBUnitCell_SetOffset, None, OBUnitCell)
OBUnitCell.SetSpaceGroup = new_instancemethod(_openbabel.OBUnitCell_SetSpaceGroup, None, OBUnitCell)
OBUnitCell.SetLatticeType = new_instancemethod(_openbabel.OBUnitCell_SetLatticeType, None, OBUnitCell)
OBUnitCell.FillUnitCell = new_instancemethod(_openbabel.OBUnitCell_FillUnitCell, None, OBUnitCell)
OBUnitCell.GetA = new_instancemethod(_openbabel.OBUnitCell_GetA, None, OBUnitCell)
OBUnitCell.GetB = new_instancemethod(_openbabel.OBUnitCell_GetB, None, OBUnitCell)
OBUnitCell.GetC = new_instancemethod(_openbabel.OBUnitCell_GetC, None, OBUnitCell)
OBUnitCell.GetAlpha = new_instancemethod(_openbabel.OBUnitCell_GetAlpha, None, OBUnitCell)
OBUnitCell.GetBeta = new_instancemethod(_openbabel.OBUnitCell_GetBeta, None, OBUnitCell)
OBUnitCell.GetGamma = new_instancemethod(_openbabel.OBUnitCell_GetGamma, None, OBUnitCell)
OBUnitCell.GetOffset = new_instancemethod(_openbabel.OBUnitCell_GetOffset, None, OBUnitCell)
OBUnitCell.GetSpaceGroup = new_instancemethod(_openbabel.OBUnitCell_GetSpaceGroup, None, OBUnitCell)
OBUnitCell.GetSpaceGroupName = new_instancemethod(_openbabel.OBUnitCell_GetSpaceGroupName, None, OBUnitCell)
OBUnitCell.GetLatticeType = new_instancemethod(_openbabel.OBUnitCell_GetLatticeType, None, OBUnitCell)
OBUnitCell.GetCellVectors = new_instancemethod(_openbabel.OBUnitCell_GetCellVectors, None, OBUnitCell)
OBUnitCell.GetCellMatrix = new_instancemethod(_openbabel.OBUnitCell_GetCellMatrix, None, OBUnitCell)
OBUnitCell.GetOrthoMatrix = new_instancemethod(_openbabel.OBUnitCell_GetOrthoMatrix, None, OBUnitCell)
OBUnitCell.GetOrientationMatrix = new_instancemethod(_openbabel.OBUnitCell_GetOrientationMatrix, None, OBUnitCell)
OBUnitCell.GetFractionalMatrix = new_instancemethod(_openbabel.OBUnitCell_GetFractionalMatrix, None, OBUnitCell)
OBUnitCell.FractionalToCartesian = new_instancemethod(_openbabel.OBUnitCell_FractionalToCartesian, None, OBUnitCell)
OBUnitCell.CartesianToFractional = new_instancemethod(_openbabel.OBUnitCell_CartesianToFractional, None, OBUnitCell)
OBUnitCell.WrapCartesianCoordinate = new_instancemethod(_openbabel.OBUnitCell_WrapCartesianCoordinate, None, OBUnitCell)
OBUnitCell.WrapFractionalCoordinate = new_instancemethod(_openbabel.OBUnitCell_WrapFractionalCoordinate, None, OBUnitCell)
OBUnitCell.UnwrapCartesianNear = new_instancemethod(_openbabel.OBUnitCell_UnwrapCartesianNear, None, OBUnitCell)
OBUnitCell.UnwrapFractionalNear = new_instancemethod(_openbabel.OBUnitCell_UnwrapFractionalNear, None, OBUnitCell)
OBUnitCell.MinimumImageCartesian = new_instancemethod(_openbabel.OBUnitCell_MinimumImageCartesian, None, OBUnitCell)
OBUnitCell.MinimumImageFractional = new_instancemethod(_openbabel.OBUnitCell_MinimumImageFractional, None, OBUnitCell)
OBUnitCell.GetSpaceGroupNumber = new_instancemethod(_openbabel.OBUnitCell_GetSpaceGroupNumber, None, OBUnitCell)
OBUnitCell.GetCellVolume = new_instancemethod(_openbabel.OBUnitCell_GetCellVolume, None, OBUnitCell)
OBUnitCell_swigregister = _openbabel.OBUnitCell_swigregister
OBUnitCell_swigregister(OBUnitCell)

class OBConformerData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBConformerData_swiginit(self, _openbabel.new_OBConformerData(*args))
    __swig_destroy__ = _openbabel.delete_OBConformerData
OBConformerData.SetDimension = new_instancemethod(_openbabel.OBConformerData_SetDimension, None, OBConformerData)
OBConformerData.SetEnergies = new_instancemethod(_openbabel.OBConformerData_SetEnergies, None, OBConformerData)
OBConformerData.SetForces = new_instancemethod(_openbabel.OBConformerData_SetForces, None, OBConformerData)
OBConformerData.SetVelocities = new_instancemethod(_openbabel.OBConformerData_SetVelocities, None, OBConformerData)
OBConformerData.SetDisplacements = new_instancemethod(_openbabel.OBConformerData_SetDisplacements, None, OBConformerData)
OBConformerData.SetData = new_instancemethod(_openbabel.OBConformerData_SetData, None, OBConformerData)
OBConformerData.GetDimension = new_instancemethod(_openbabel.OBConformerData_GetDimension, None, OBConformerData)
OBConformerData.GetEnergies = new_instancemethod(_openbabel.OBConformerData_GetEnergies, None, OBConformerData)
OBConformerData.GetForces = new_instancemethod(_openbabel.OBConformerData_GetForces, None, OBConformerData)
OBConformerData.GetVelocities = new_instancemethod(_openbabel.OBConformerData_GetVelocities, None, OBConformerData)
OBConformerData.GetDisplacements = new_instancemethod(_openbabel.OBConformerData_GetDisplacements, None, OBConformerData)
OBConformerData.GetData = new_instancemethod(_openbabel.OBConformerData_GetData, None, OBConformerData)
OBConformerData_swigregister = _openbabel.OBConformerData_swigregister
OBConformerData_swigregister(OBConformerData)

class OBSymmetryData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBSymmetryData_swiginit(self, _openbabel.new_OBSymmetryData(*args))
    __swig_destroy__ = _openbabel.delete_OBSymmetryData
OBSymmetryData.SetData = new_instancemethod(_openbabel.OBSymmetryData_SetData, None, OBSymmetryData)
OBSymmetryData.SetPointGroup = new_instancemethod(_openbabel.OBSymmetryData_SetPointGroup, None, OBSymmetryData)
OBSymmetryData.SetSpaceGroup = new_instancemethod(_openbabel.OBSymmetryData_SetSpaceGroup, None, OBSymmetryData)
OBSymmetryData.GetPointGroup = new_instancemethod(_openbabel.OBSymmetryData_GetPointGroup, None, OBSymmetryData)
OBSymmetryData.GetSpaceGroup = new_instancemethod(_openbabel.OBSymmetryData_GetSpaceGroup, None, OBSymmetryData)
OBSymmetryData_swigregister = _openbabel.OBSymmetryData_swigregister
OBSymmetryData_swigregister(OBSymmetryData)

class OBTorsion(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, arg2):
        _openbabel.OBTorsion_swiginit(self, _openbabel.new_OBTorsion(arg2))
    __swig_destroy__ = _openbabel.delete_OBTorsion
OBTorsion.Clear = new_instancemethod(_openbabel.OBTorsion_Clear, None, OBTorsion)
OBTorsion.Empty = new_instancemethod(_openbabel.OBTorsion_Empty, None, OBTorsion)
OBTorsion.AddTorsion = new_instancemethod(_openbabel.OBTorsion_AddTorsion, None, OBTorsion)
OBTorsion.SetAngle = new_instancemethod(_openbabel.OBTorsion_SetAngle, None, OBTorsion)
OBTorsion.SetData = new_instancemethod(_openbabel.OBTorsion_SetData, None, OBTorsion)
OBTorsion.GetAngle = new_instancemethod(_openbabel.OBTorsion_GetAngle, None, OBTorsion)
OBTorsion.GetBondIdx = new_instancemethod(_openbabel.OBTorsion_GetBondIdx, None, OBTorsion)
OBTorsion.GetSize = new_instancemethod(_openbabel.OBTorsion_GetSize, None, OBTorsion)
OBTorsion.GetBC = new_instancemethod(_openbabel.OBTorsion_GetBC, None, OBTorsion)
OBTorsion.GetADs = new_instancemethod(_openbabel.OBTorsion_GetADs, None, OBTorsion)
OBTorsion.IsProtonRotor = new_instancemethod(_openbabel.OBTorsion_IsProtonRotor, None, OBTorsion)
OBTorsion_swigregister = _openbabel.OBTorsion_swigregister
OBTorsion_swigregister(OBTorsion)

class OBTorsionData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBTorsionData
OBTorsionData.Clear = new_instancemethod(_openbabel.OBTorsionData_Clear, None, OBTorsionData)
OBTorsionData.GetData = new_instancemethod(_openbabel.OBTorsionData_GetData, None, OBTorsionData)
OBTorsionData.GetSize = new_instancemethod(_openbabel.OBTorsionData_GetSize, None, OBTorsionData)
OBTorsionData.SetData = new_instancemethod(_openbabel.OBTorsionData_SetData, None, OBTorsionData)
OBTorsionData.FillTorsionArray = new_instancemethod(_openbabel.OBTorsionData_FillTorsionArray, None, OBTorsionData)
OBTorsionData_swigregister = _openbabel.OBTorsionData_swigregister
OBTorsionData_swigregister(OBTorsionData)

class OBAngle(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, arg2):
        _openbabel.OBAngle_swiginit(self, _openbabel.new_OBAngle(arg2))
    __swig_destroy__ = _openbabel.delete_OBAngle
OBAngle.__eq__ = new_instancemethod(_openbabel.OBAngle___eq__, None, OBAngle)
OBAngle.Clear = new_instancemethod(_openbabel.OBAngle_Clear, None, OBAngle)
OBAngle.GetAngle = new_instancemethod(_openbabel.OBAngle_GetAngle, None, OBAngle)
OBAngle.SetAngle = new_instancemethod(_openbabel.OBAngle_SetAngle, None, OBAngle)
OBAngle.SetAtoms = new_instancemethod(_openbabel.OBAngle_SetAtoms, None, OBAngle)
OBAngle_swigregister = _openbabel.OBAngle_swigregister
OBAngle_swigregister(OBAngle)

class OBAngleData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBAngleData
OBAngleData.Clear = new_instancemethod(_openbabel.OBAngleData_Clear, None, OBAngleData)
OBAngleData.FillAngleArray = new_instancemethod(_openbabel.OBAngleData_FillAngleArray, None, OBAngleData)
OBAngleData.SetData = new_instancemethod(_openbabel.OBAngleData_SetData, None, OBAngleData)
OBAngleData.GetSize = new_instancemethod(_openbabel.OBAngleData_GetSize, None, OBAngleData)
OBAngleData_swigregister = _openbabel.OBAngleData_swigregister
OBAngleData_swigregister(OBAngleData)

class OBSerialNums(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBSerialNums_swiginit(self, _openbabel.new_OBSerialNums(*args))
    __swig_destroy__ = _openbabel.delete_OBSerialNums
OBSerialNums.GetData = new_instancemethod(_openbabel.OBSerialNums_GetData, None, OBSerialNums)
OBSerialNums.SetData = new_instancemethod(_openbabel.OBSerialNums_SetData, None, OBSerialNums)
OBSerialNums_swigregister = _openbabel.OBSerialNums_swigregister
OBSerialNums_swigregister(OBSerialNums)

class OBVibrationData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBVibrationData_swiginit(self, _openbabel.new_OBVibrationData())
    __swig_destroy__ = _openbabel.delete_OBVibrationData
OBVibrationData.SetData = new_instancemethod(_openbabel.OBVibrationData_SetData, None, OBVibrationData)
OBVibrationData.GetLx = new_instancemethod(_openbabel.OBVibrationData_GetLx, None, OBVibrationData)
OBVibrationData.GetFrequencies = new_instancemethod(_openbabel.OBVibrationData_GetFrequencies, None, OBVibrationData)
OBVibrationData.GetIntensities = new_instancemethod(_openbabel.OBVibrationData_GetIntensities, None, OBVibrationData)
OBVibrationData.GetRamanActivities = new_instancemethod(_openbabel.OBVibrationData_GetRamanActivities, None, OBVibrationData)
OBVibrationData.GetNumberOfFrequencies = new_instancemethod(_openbabel.OBVibrationData_GetNumberOfFrequencies, None, OBVibrationData)
OBVibrationData_swigregister = _openbabel.OBVibrationData_swigregister
OBVibrationData_swigregister(OBVibrationData)

class OBDOSData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBDOSData_swiginit(self, _openbabel.new_OBDOSData())
    __swig_destroy__ = _openbabel.delete_OBDOSData
OBDOSData.SetData = new_instancemethod(_openbabel.OBDOSData_SetData, None, OBDOSData)
OBDOSData.GetFermiEnergy = new_instancemethod(_openbabel.OBDOSData_GetFermiEnergy, None, OBDOSData)
OBDOSData.GetEnergies = new_instancemethod(_openbabel.OBDOSData_GetEnergies, None, OBDOSData)
OBDOSData.GetDensities = new_instancemethod(_openbabel.OBDOSData_GetDensities, None, OBDOSData)
OBDOSData.GetIntegration = new_instancemethod(_openbabel.OBDOSData_GetIntegration, None, OBDOSData)
OBDOSData_swigregister = _openbabel.OBDOSData_swigregister
OBDOSData_swigregister(OBDOSData)

class OBOrbital(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBOrbital_swiginit(self, _openbabel.new_OBOrbital())
    __swig_destroy__ = _openbabel.delete_OBOrbital
OBOrbital.SetData = new_instancemethod(_openbabel.OBOrbital_SetData, None, OBOrbital)
OBOrbital.GetEnergy = new_instancemethod(_openbabel.OBOrbital_GetEnergy, None, OBOrbital)
OBOrbital.GetOccupation = new_instancemethod(_openbabel.OBOrbital_GetOccupation, None, OBOrbital)
OBOrbital.GetSymbol = new_instancemethod(_openbabel.OBOrbital_GetSymbol, None, OBOrbital)
OBOrbital_swigregister = _openbabel.OBOrbital_swigregister
OBOrbital_swigregister(OBOrbital)

class OBOrbitalData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBOrbitalData_swiginit(self, _openbabel.new_OBOrbitalData())
    __swig_destroy__ = _openbabel.delete_OBOrbitalData
OBOrbitalData.SetAlphaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_SetAlphaOrbitals, None, OBOrbitalData)
OBOrbitalData.SetBetaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_SetBetaOrbitals, None, OBOrbitalData)
OBOrbitalData.SetHOMO = new_instancemethod(_openbabel.OBOrbitalData_SetHOMO, None, OBOrbitalData)
OBOrbitalData.SetOpenShell = new_instancemethod(_openbabel.OBOrbitalData_SetOpenShell, None, OBOrbitalData)
OBOrbitalData.IsOpenShell = new_instancemethod(_openbabel.OBOrbitalData_IsOpenShell, None, OBOrbitalData)
OBOrbitalData.GetAlphaHOMO = new_instancemethod(_openbabel.OBOrbitalData_GetAlphaHOMO, None, OBOrbitalData)
OBOrbitalData.GetBetaHOMO = new_instancemethod(_openbabel.OBOrbitalData_GetBetaHOMO, None, OBOrbitalData)
OBOrbitalData.GetAlphaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_GetAlphaOrbitals, None, OBOrbitalData)
OBOrbitalData.GetBetaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_GetBetaOrbitals, None, OBOrbitalData)
OBOrbitalData.LoadClosedShellOrbitals = new_instancemethod(_openbabel.OBOrbitalData_LoadClosedShellOrbitals, None, OBOrbitalData)
OBOrbitalData.LoadAlphaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_LoadAlphaOrbitals, None, OBOrbitalData)
OBOrbitalData.LoadBetaOrbitals = new_instancemethod(_openbabel.OBOrbitalData_LoadBetaOrbitals, None, OBOrbitalData)
OBOrbitalData_swigregister = _openbabel.OBOrbitalData_swigregister
OBOrbitalData_swigregister(OBOrbitalData)

class OBElectronicTransitionData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBElectronicTransitionData_swiginit(self, _openbabel.new_OBElectronicTransitionData())
    __swig_destroy__ = _openbabel.delete_OBElectronicTransitionData
OBElectronicTransitionData.SetData = new_instancemethod(_openbabel.OBElectronicTransitionData_SetData, None, OBElectronicTransitionData)
OBElectronicTransitionData.SetEDipole = new_instancemethod(_openbabel.OBElectronicTransitionData_SetEDipole, None, OBElectronicTransitionData)
OBElectronicTransitionData.SetRotatoryStrengthsVelocity = new_instancemethod(_openbabel.OBElectronicTransitionData_SetRotatoryStrengthsVelocity, None, OBElectronicTransitionData)
OBElectronicTransitionData.SetRotatoryStrengthsLength = new_instancemethod(_openbabel.OBElectronicTransitionData_SetRotatoryStrengthsLength, None, OBElectronicTransitionData)
OBElectronicTransitionData.GetWavelengths = new_instancemethod(_openbabel.OBElectronicTransitionData_GetWavelengths, None, OBElectronicTransitionData)
OBElectronicTransitionData.GetForces = new_instancemethod(_openbabel.OBElectronicTransitionData_GetForces, None, OBElectronicTransitionData)
OBElectronicTransitionData.GetEDipole = new_instancemethod(_openbabel.OBElectronicTransitionData_GetEDipole, None, OBElectronicTransitionData)
OBElectronicTransitionData.GetRotatoryStrengthsVelocity = new_instancemethod(_openbabel.OBElectronicTransitionData_GetRotatoryStrengthsVelocity, None, OBElectronicTransitionData)
OBElectronicTransitionData.GetRotatoryStrengthsLength = new_instancemethod(_openbabel.OBElectronicTransitionData_GetRotatoryStrengthsLength, None, OBElectronicTransitionData)
OBElectronicTransitionData_swigregister = _openbabel.OBElectronicTransitionData_swigregister
OBElectronicTransitionData_swigregister(OBElectronicTransitionData)

class OBRotationData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    UNKNOWN = _openbabel.OBRotationData_UNKNOWN
    ASYMMETRIC = _openbabel.OBRotationData_ASYMMETRIC
    SYMMETRIC = _openbabel.OBRotationData_SYMMETRIC
    LINEAR = _openbabel.OBRotationData_LINEAR

    def __init__(self):
        _openbabel.OBRotationData_swiginit(self, _openbabel.new_OBRotationData())
    __swig_destroy__ = _openbabel.delete_OBRotationData
OBRotationData.SetData = new_instancemethod(_openbabel.OBRotationData_SetData, None, OBRotationData)
OBRotationData.GetRotConsts = new_instancemethod(_openbabel.OBRotationData_GetRotConsts, None, OBRotationData)
OBRotationData.GetSymmetryNumber = new_instancemethod(_openbabel.OBRotationData_GetSymmetryNumber, None, OBRotationData)
OBRotationData.GetRotorType = new_instancemethod(_openbabel.OBRotationData_GetRotorType, None, OBRotationData)
OBRotationData_swigregister = _openbabel.OBRotationData_swigregister
OBRotationData_swigregister(OBRotationData)

class OBVectorData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBVectorData_swiginit(self, _openbabel.new_OBVectorData())
    __swig_destroy__ = _openbabel.delete_OBVectorData
OBVectorData.SetData = new_instancemethod(_openbabel.OBVectorData_SetData, None, OBVectorData)
OBVectorData.GetData = new_instancemethod(_openbabel.OBVectorData_GetData, None, OBVectorData)
OBVectorData_swigregister = _openbabel.OBVectorData_swigregister
OBVectorData_swigregister(OBVectorData)

class OBMatrixData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBMatrixData_swiginit(self, _openbabel.new_OBMatrixData())
    __swig_destroy__ = _openbabel.delete_OBMatrixData
OBMatrixData.SetData = new_instancemethod(_openbabel.OBMatrixData_SetData, None, OBMatrixData)
OBMatrixData.GetData = new_instancemethod(_openbabel.OBMatrixData_GetData, None, OBMatrixData)
OBMatrixData_swigregister = _openbabel.OBMatrixData_swigregister
OBMatrixData_swigregister(OBMatrixData)

class OBFreeGridPoint(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBFreeGridPoint_swiginit(self, _openbabel.new_OBFreeGridPoint(*args))
    __swig_destroy__ = _openbabel.delete_OBFreeGridPoint
OBFreeGridPoint.GetX = new_instancemethod(_openbabel.OBFreeGridPoint_GetX, None, OBFreeGridPoint)
OBFreeGridPoint.GetY = new_instancemethod(_openbabel.OBFreeGridPoint_GetY, None, OBFreeGridPoint)
OBFreeGridPoint.GetZ = new_instancemethod(_openbabel.OBFreeGridPoint_GetZ, None, OBFreeGridPoint)
OBFreeGridPoint.GetV = new_instancemethod(_openbabel.OBFreeGridPoint_GetV, None, OBFreeGridPoint)
OBFreeGridPoint.SetX = new_instancemethod(_openbabel.OBFreeGridPoint_SetX, None, OBFreeGridPoint)
OBFreeGridPoint.SetY = new_instancemethod(_openbabel.OBFreeGridPoint_SetY, None, OBFreeGridPoint)
OBFreeGridPoint.SetZ = new_instancemethod(_openbabel.OBFreeGridPoint_SetZ, None, OBFreeGridPoint)
OBFreeGridPoint.SetV = new_instancemethod(_openbabel.OBFreeGridPoint_SetV, None, OBFreeGridPoint)
OBFreeGridPoint_swigregister = _openbabel.OBFreeGridPoint_swigregister
OBFreeGridPoint_swigregister(OBFreeGridPoint)

class OBFreeGrid(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBFreeGrid_swiginit(self, _openbabel.new_OBFreeGrid())
    __swig_destroy__ = _openbabel.delete_OBFreeGrid
OBFreeGrid.NumPoints = new_instancemethod(_openbabel.OBFreeGrid_NumPoints, None, OBFreeGrid)
OBFreeGrid.AddPoint = new_instancemethod(_openbabel.OBFreeGrid_AddPoint, None, OBFreeGrid)
OBFreeGrid.BeginPoints = new_instancemethod(_openbabel.OBFreeGrid_BeginPoints, None, OBFreeGrid)
OBFreeGrid.EndPoints = new_instancemethod(_openbabel.OBFreeGrid_EndPoints, None, OBFreeGrid)
OBFreeGrid.BeginPoint = new_instancemethod(_openbabel.OBFreeGrid_BeginPoint, None, OBFreeGrid)
OBFreeGrid.NextPoint = new_instancemethod(_openbabel.OBFreeGrid_NextPoint, None, OBFreeGrid)
OBFreeGrid.Clear = new_instancemethod(_openbabel.OBFreeGrid_Clear, None, OBFreeGrid)
OBFreeGrid_swigregister = _openbabel.OBFreeGrid_swigregister
OBFreeGrid_swigregister(OBFreeGrid)

class OBPcharge(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBPcharge_swiginit(self, _openbabel.new_OBPcharge())
    __swig_destroy__ = _openbabel.delete_OBPcharge
OBPcharge.NumPartialCharges = new_instancemethod(_openbabel.OBPcharge_NumPartialCharges, None, OBPcharge)
OBPcharge.AddPartialCharge = new_instancemethod(_openbabel.OBPcharge_AddPartialCharge, None, OBPcharge)
OBPcharge.GetPartialCharge = new_instancemethod(_openbabel.OBPcharge_GetPartialCharge, None, OBPcharge)
OBPcharge_swigregister = _openbabel.OBPcharge_swigregister
OBPcharge_swigregister(OBPcharge)

class OBPairInteger(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBPairInteger_swiginit(self, _openbabel.new_OBPairInteger())
    __swig_destroy__ = _openbabel.delete_OBPairInteger
OBPairInteger.SetValue = new_instancemethod(_openbabel.OBPairInteger_SetValue, None, OBPairInteger)
OBPairInteger.GetGenericValue = new_instancemethod(_openbabel.OBPairInteger_GetGenericValue, None, OBPairInteger)
OBPairInteger_swigregister = _openbabel.OBPairInteger_swigregister
OBPairInteger_swigregister(OBPairInteger)

class OBPairFloatingPoint(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBPairFloatingPoint_swiginit(self, _openbabel.new_OBPairFloatingPoint())
    __swig_destroy__ = _openbabel.delete_OBPairFloatingPoint
OBPairFloatingPoint.SetValue = new_instancemethod(_openbabel.OBPairFloatingPoint_SetValue, None, OBPairFloatingPoint)
OBPairFloatingPoint.GetGenericValue = new_instancemethod(_openbabel.OBPairFloatingPoint_GetGenericValue, None, OBPairFloatingPoint)
OBPairFloatingPoint_swigregister = _openbabel.OBPairFloatingPoint_swigregister
OBPairFloatingPoint_swigregister(OBPairFloatingPoint)

class OBGridData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBGridData_swiginit(self, _openbabel.new_OBGridData())
    __swig_destroy__ = _openbabel.delete_OBGridData
    BOHR = _openbabel.OBGridData_BOHR
    ANGSTROM = _openbabel.OBGridData_ANGSTROM
    OTHER = _openbabel.OBGridData_OTHER
OBGridData.GetXAxis = new_instancemethod(_openbabel.OBGridData_GetXAxis, None, OBGridData)
OBGridData.GetYAxis = new_instancemethod(_openbabel.OBGridData_GetYAxis, None, OBGridData)
OBGridData.GetZAxis = new_instancemethod(_openbabel.OBGridData_GetZAxis, None, OBGridData)
OBGridData.GetAxes = new_instancemethod(_openbabel.OBGridData_GetAxes, None, OBGridData)
OBGridData.GetNumberOfPoints = new_instancemethod(_openbabel.OBGridData_GetNumberOfPoints, None, OBGridData)
OBGridData.GetNumberOfSteps = new_instancemethod(_openbabel.OBGridData_GetNumberOfSteps, None, OBGridData)
OBGridData.GetValues = new_instancemethod(_openbabel.OBGridData_GetValues, None, OBGridData)
OBGridData.GetValue = new_instancemethod(_openbabel.OBGridData_GetValue, None, OBGridData)
OBGridData.GetUnit = new_instancemethod(_openbabel.OBGridData_GetUnit, None, OBGridData)
OBGridData.GetMinValue = new_instancemethod(_openbabel.OBGridData_GetMinValue, None, OBGridData)
OBGridData.GetMaxValue = new_instancemethod(_openbabel.OBGridData_GetMaxValue, None, OBGridData)
OBGridData.GetOriginVector = new_instancemethod(_openbabel.OBGridData_GetOriginVector, None, OBGridData)
OBGridData.GetMaxVector = new_instancemethod(_openbabel.OBGridData_GetMaxVector, None, OBGridData)
OBGridData.GetUnrestricted = new_instancemethod(_openbabel.OBGridData_GetUnrestricted, None, OBGridData)
OBGridData.GetNumSymmetries = new_instancemethod(_openbabel.OBGridData_GetNumSymmetries, None, OBGridData)
OBGridData.SetNumberOfPoints = new_instancemethod(_openbabel.OBGridData_SetNumberOfPoints, None, OBGridData)
OBGridData.SetLimits = new_instancemethod(_openbabel.OBGridData_SetLimits, None, OBGridData)
OBGridData.SetValue = new_instancemethod(_openbabel.OBGridData_SetValue, None, OBGridData)
OBGridData.SetValues = new_instancemethod(_openbabel.OBGridData_SetValues, None, OBGridData)
OBGridData.SetUnit = new_instancemethod(_openbabel.OBGridData_SetUnit, None, OBGridData)
OBGridData.SetUnrestricted = new_instancemethod(_openbabel.OBGridData_SetUnrestricted, None, OBGridData)
OBGridData.SetNumSymmetries = new_instancemethod(_openbabel.OBGridData_SetNumSymmetries, None, OBGridData)
OBGridData_swigregister = _openbabel.OBGridData_swigregister
OBGridData_swigregister(OBGridData)

MaxMonoAtom = _openbabel.MaxMonoAtom
MaxMonoBond = _openbabel.MaxMonoBond
class OBChainsParser(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBChainsParser_swiginit(self, _openbabel.new_OBChainsParser())
    __swig_destroy__ = _openbabel.delete_OBChainsParser
OBChainsParser.PerceiveChains = new_instancemethod(_openbabel.OBChainsParser_PerceiveChains, None, OBChainsParser)
OBChainsParser_swigregister = _openbabel.OBChainsParser_swigregister
OBChainsParser_swigregister(OBChainsParser)

class OBAtomTyper(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBAtomTyper_swiginit(self, _openbabel.new_OBAtomTyper(*args))
    __swig_destroy__ = _openbabel.delete_OBAtomTyper
OBAtomTyper.AssignHyb = new_instancemethod(_openbabel.OBAtomTyper_AssignHyb, None, OBAtomTyper)
OBAtomTyper.AssignTypes = new_instancemethod(_openbabel.OBAtomTyper_AssignTypes, None, OBAtomTyper)
OBAtomTyper_swigregister = _openbabel.OBAtomTyper_swigregister
OBAtomTyper_swigregister(OBAtomTyper)

class OBAromaticTyper(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBAromaticTyper_swiginit(self, _openbabel.new_OBAromaticTyper())
    __swig_destroy__ = _openbabel.delete_OBAromaticTyper
OBAromaticTyper.AssignAromaticFlags = new_instancemethod(_openbabel.OBAromaticTyper_AssignAromaticFlags, None, OBAromaticTyper)
OBAromaticTyper_swigregister = _openbabel.OBAromaticTyper_swigregister
OBAromaticTyper_swigregister(OBAromaticTyper)

class OBRingTyper(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRingTyper_swiginit(self, _openbabel.new_OBRingTyper())
    __swig_destroy__ = _openbabel.delete_OBRingTyper
OBRingTyper.AssignTypes = new_instancemethod(_openbabel.OBRingTyper_AssignTypes, None, OBRingTyper)
OBRingTyper_swigregister = _openbabel.OBRingTyper_swigregister
OBRingTyper_swigregister(OBRingTyper)

class dummy(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.dummy_swiginit(self, _openbabel.new_dummy())
    __swig_destroy__ = _openbabel.delete_dummy
dummy_swigregister = _openbabel.dummy_swigregister
dummy_swigregister(dummy)

class CharPtrLess(dummy):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.CharPtrLess_swiginit(self, _openbabel.new_CharPtrLess())
    __swig_destroy__ = _openbabel.delete_CharPtrLess
CharPtrLess.__call__ = new_instancemethod(_openbabel.CharPtrLess___call__, None, CharPtrLess)
CharPtrLess_swigregister = _openbabel.CharPtrLess_swigregister
CharPtrLess_swigregister(CharPtrLess)

class OBPlugin(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBPlugin
    GetPlugin = staticmethod(_openbabel.OBPlugin_GetPlugin)
    ListAsVector = staticmethod(_openbabel.OBPlugin_ListAsVector)
    List = staticmethod(_openbabel.OBPlugin_List)
    ListAsString = staticmethod(_openbabel.OBPlugin_ListAsString)
    FirstLine = staticmethod(_openbabel.OBPlugin_FirstLine)
    Begin = staticmethod(_openbabel.OBPlugin_Begin)
    End = staticmethod(_openbabel.OBPlugin_End)
    LoadAllPlugins = staticmethod(_openbabel.OBPlugin_LoadAllPlugins)
OBPlugin.Description = new_instancemethod(_openbabel.OBPlugin_Description, None, OBPlugin)
OBPlugin.TypeID = new_instancemethod(_openbabel.OBPlugin_TypeID, None, OBPlugin)
OBPlugin.Display = new_instancemethod(_openbabel.OBPlugin_Display, None, OBPlugin)
OBPlugin.MakeInstance = new_instancemethod(_openbabel.OBPlugin_MakeInstance, None, OBPlugin)
OBPlugin.Init = new_instancemethod(_openbabel.OBPlugin_Init, None, OBPlugin)
OBPlugin.GetID = new_instancemethod(_openbabel.OBPlugin_GetID, None, OBPlugin)
OBPlugin.GetMap = new_instancemethod(_openbabel.OBPlugin_GetMap, None, OBPlugin)
OBPlugin_swigregister = _openbabel.OBPlugin_swigregister
OBPlugin_swigregister(OBPlugin)

def OBPlugin_GetPlugin(Type, ID):
    return _openbabel.OBPlugin_GetPlugin(Type, ID)
OBPlugin_GetPlugin = _openbabel.OBPlugin_GetPlugin

def OBPlugin_ListAsVector(PluginID, param, vlist):
    return _openbabel.OBPlugin_ListAsVector(PluginID, param, vlist)
OBPlugin_ListAsVector = _openbabel.OBPlugin_ListAsVector

def OBPlugin_List(*args):
    return _openbabel.OBPlugin_List(*args)
OBPlugin_List = _openbabel.OBPlugin_List

def OBPlugin_ListAsString(PluginID, param=None):
    return _openbabel.OBPlugin_ListAsString(PluginID, param)
OBPlugin_ListAsString = _openbabel.OBPlugin_ListAsString

def OBPlugin_FirstLine(txt):
    return _openbabel.OBPlugin_FirstLine(txt)
OBPlugin_FirstLine = _openbabel.OBPlugin_FirstLine

def OBPlugin_Begin(PluginID):
    return _openbabel.OBPlugin_Begin(PluginID)
OBPlugin_Begin = _openbabel.OBPlugin_Begin

def OBPlugin_End(PluginID):
    return _openbabel.OBPlugin_End(PluginID)
OBPlugin_End = _openbabel.OBPlugin_End

def OBPlugin_LoadAllPlugins():
    return _openbabel.OBPlugin_LoadAllPlugins()
OBPlugin_LoadAllPlugins = _openbabel.OBPlugin_LoadAllPlugins

class stringbuf(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.stringbuf_swiginit(self, _openbabel.new_stringbuf())
    __swig_destroy__ = _openbabel.delete_stringbuf
stringbuf_swigregister = _openbabel.stringbuf_swigregister
stringbuf_swigregister(stringbuf)

obError = _openbabel.obError
obWarning = _openbabel.obWarning
obInfo = _openbabel.obInfo
obAuditMsg = _openbabel.obAuditMsg
obDebug = _openbabel.obDebug
always = _openbabel.always
onceOnly = _openbabel.onceOnly
class OBError(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBError_swiginit(self, _openbabel.new_OBError(*args))
    __swig_destroy__ = _openbabel.delete_OBError
OBError.message = new_instancemethod(_openbabel.OBError_message, None, OBError)
OBError.GetMethod = new_instancemethod(_openbabel.OBError_GetMethod, None, OBError)
OBError.GetError = new_instancemethod(_openbabel.OBError_GetError, None, OBError)
OBError.GetExplanation = new_instancemethod(_openbabel.OBError_GetExplanation, None, OBError)
OBError.GetPossibleCause = new_instancemethod(_openbabel.OBError_GetPossibleCause, None, OBError)
OBError.GetSuggestedRemedy = new_instancemethod(_openbabel.OBError_GetSuggestedRemedy, None, OBError)
OBError.GetLevel = new_instancemethod(_openbabel.OBError_GetLevel, None, OBError)
OBError.__eq__ = new_instancemethod(_openbabel.OBError___eq__, None, OBError)
OBError_swigregister = _openbabel.OBError_swigregister
OBError_swigregister(OBError)

class OBMessageHandler(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBMessageHandler_swiginit(self, _openbabel.new_OBMessageHandler())
    __swig_destroy__ = _openbabel.delete_OBMessageHandler
OBMessageHandler.ThrowError = new_instancemethod(_openbabel.OBMessageHandler_ThrowError, None, OBMessageHandler)
OBMessageHandler.GetMessagesOfLevel = new_instancemethod(_openbabel.OBMessageHandler_GetMessagesOfLevel, None, OBMessageHandler)
OBMessageHandler.StartLogging = new_instancemethod(_openbabel.OBMessageHandler_StartLogging, None, OBMessageHandler)
OBMessageHandler.StopLogging = new_instancemethod(_openbabel.OBMessageHandler_StopLogging, None, OBMessageHandler)
OBMessageHandler.SetMaxLogEntries = new_instancemethod(_openbabel.OBMessageHandler_SetMaxLogEntries, None, OBMessageHandler)
OBMessageHandler.GetMaxLogEntries = new_instancemethod(_openbabel.OBMessageHandler_GetMaxLogEntries, None, OBMessageHandler)
OBMessageHandler.ClearLog = new_instancemethod(_openbabel.OBMessageHandler_ClearLog, None, OBMessageHandler)
OBMessageHandler.SetOutputLevel = new_instancemethod(_openbabel.OBMessageHandler_SetOutputLevel, None, OBMessageHandler)
OBMessageHandler.GetOutputLevel = new_instancemethod(_openbabel.OBMessageHandler_GetOutputLevel, None, OBMessageHandler)
OBMessageHandler.SetOutputStream = new_instancemethod(_openbabel.OBMessageHandler_SetOutputStream, None, OBMessageHandler)
OBMessageHandler.GetOutputStream = new_instancemethod(_openbabel.OBMessageHandler_GetOutputStream, None, OBMessageHandler)
OBMessageHandler.StartErrorWrap = new_instancemethod(_openbabel.OBMessageHandler_StartErrorWrap, None, OBMessageHandler)
OBMessageHandler.StopErrorWrap = new_instancemethod(_openbabel.OBMessageHandler_StopErrorWrap, None, OBMessageHandler)
OBMessageHandler.GetErrorMessageCount = new_instancemethod(_openbabel.OBMessageHandler_GetErrorMessageCount, None, OBMessageHandler)
OBMessageHandler.GetWarningMessageCount = new_instancemethod(_openbabel.OBMessageHandler_GetWarningMessageCount, None, OBMessageHandler)
OBMessageHandler.GetInfoMessageCount = new_instancemethod(_openbabel.OBMessageHandler_GetInfoMessageCount, None, OBMessageHandler)
OBMessageHandler.GetAuditMessageCount = new_instancemethod(_openbabel.OBMessageHandler_GetAuditMessageCount, None, OBMessageHandler)
OBMessageHandler.GetDebugMessageCount = new_instancemethod(_openbabel.OBMessageHandler_GetDebugMessageCount, None, OBMessageHandler)
OBMessageHandler.GetMessageSummary = new_instancemethod(_openbabel.OBMessageHandler_GetMessageSummary, None, OBMessageHandler)
OBMessageHandler_swigregister = _openbabel.OBMessageHandler_swigregister
OBMessageHandler_swigregister(OBMessageHandler)

class obLogBuf(stringbuf):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_obLogBuf

    def __init__(self):
        _openbabel.obLogBuf_swiginit(self, _openbabel.new_obLogBuf())
obLogBuf_swigregister = _openbabel.obLogBuf_swigregister
obLogBuf_swigregister(obLogBuf)

NOTREADABLE = _openbabel.NOTREADABLE
READONEONLY = _openbabel.READONEONLY
READBINARY = _openbabel.READBINARY
ZEROATOMSOK = _openbabel.ZEROATOMSOK
NOTWRITABLE = _openbabel.NOTWRITABLE
WRITEONEONLY = _openbabel.WRITEONEONLY
WRITEBINARY = _openbabel.WRITEBINARY
READXML = _openbabel.READXML
DEPICTION2D = _openbabel.DEPICTION2D
DEFAULTFORMAT = _openbabel.DEFAULTFORMAT
class OBFormat(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBFormat_Default)
    FindType = staticmethod(_openbabel.OBFormat_FindType)
    FormatFromMIME = staticmethod(_openbabel.OBFormat_FormatFromMIME)
    __swig_destroy__ = _openbabel.delete_OBFormat
OBFormat.ReadMolecule = new_instancemethod(_openbabel.OBFormat_ReadMolecule, None, OBFormat)
OBFormat.ReadChemObject = new_instancemethod(_openbabel.OBFormat_ReadChemObject, None, OBFormat)
OBFormat.WriteMolecule = new_instancemethod(_openbabel.OBFormat_WriteMolecule, None, OBFormat)
OBFormat.WriteChemObject = new_instancemethod(_openbabel.OBFormat_WriteChemObject, None, OBFormat)
OBFormat.TargetClassDescription = new_instancemethod(_openbabel.OBFormat_TargetClassDescription, None, OBFormat)
OBFormat.GetType = new_instancemethod(_openbabel.OBFormat_GetType, None, OBFormat)
OBFormat.SpecificationURL = new_instancemethod(_openbabel.OBFormat_SpecificationURL, None, OBFormat)
OBFormat.GetMIMEType = new_instancemethod(_openbabel.OBFormat_GetMIMEType, None, OBFormat)
OBFormat.Flags = new_instancemethod(_openbabel.OBFormat_Flags, None, OBFormat)
OBFormat.SkipObjects = new_instancemethod(_openbabel.OBFormat_SkipObjects, None, OBFormat)
OBFormat.MakeNewInstance = new_instancemethod(_openbabel.OBFormat_MakeNewInstance, None, OBFormat)
OBFormat.RegisterFormat = new_instancemethod(_openbabel.OBFormat_RegisterFormat, None, OBFormat)
OBFormat.Display = new_instancemethod(_openbabel.OBFormat_Display, None, OBFormat)
OBFormat_swigregister = _openbabel.OBFormat_swigregister
OBFormat_swigregister(OBFormat)

def OBFormat_Default():
    return _openbabel.OBFormat_Default()
OBFormat_Default = _openbabel.OBFormat_Default

def OBFormat_FindType(ID):
    return _openbabel.OBFormat_FindType(ID)
OBFormat_FindType = _openbabel.OBFormat_FindType

def OBFormat_FormatFromMIME(MIME):
    return _openbabel.OBFormat_FormatFromMIME(MIME)
OBFormat_FormatFromMIME = _openbabel.OBFormat_FormatFromMIME

class OBConversion(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBConversion_swiginit(self, _openbabel.new_OBConversion(*args))
    __swig_destroy__ = _openbabel.delete_OBConversion
    RegisterFormat = staticmethod(_openbabel.OBConversion_RegisterFormat)
    FindFormat = staticmethod(_openbabel.OBConversion_FindFormat)
    FormatFromExt = staticmethod(_openbabel.OBConversion_FormatFromExt)
    FormatFromMIME = staticmethod(_openbabel.OBConversion_FormatFromMIME)
    Description = staticmethod(_openbabel.OBConversion_Description)
    INOPTIONS = _openbabel.OBConversion_INOPTIONS
    OUTOPTIONS = _openbabel.OBConversion_OUTOPTIONS
    GENOPTIONS = _openbabel.OBConversion_GENOPTIONS
    ALL = _openbabel.OBConversion_ALL
    RegisterOptionParam = staticmethod(_openbabel.OBConversion_RegisterOptionParam)
    GetOptionParams = staticmethod(_openbabel.OBConversion_GetOptionParams)
    GetDefaultFormat = staticmethod(_openbabel.OBConversion_GetDefaultFormat)
OBConversion.GetInStream = new_instancemethod(_openbabel.OBConversion_GetInStream, None, OBConversion)
OBConversion.GetOutStream = new_instancemethod(_openbabel.OBConversion_GetOutStream, None, OBConversion)
OBConversion.SetInStream = new_instancemethod(_openbabel.OBConversion_SetInStream, None, OBConversion)
OBConversion.SetOutStream = new_instancemethod(_openbabel.OBConversion_SetOutStream, None, OBConversion)
OBConversion.SetInAndOutFormats = new_instancemethod(_openbabel.OBConversion_SetInAndOutFormats, None, OBConversion)
OBConversion.SetInFormat = new_instancemethod(_openbabel.OBConversion_SetInFormat, None, OBConversion)
OBConversion.SetOutFormat = new_instancemethod(_openbabel.OBConversion_SetOutFormat, None, OBConversion)
OBConversion.GetInFormat = new_instancemethod(_openbabel.OBConversion_GetInFormat, None, OBConversion)
OBConversion.GetOutFormat = new_instancemethod(_openbabel.OBConversion_GetOutFormat, None, OBConversion)
OBConversion.GetInGzipped = new_instancemethod(_openbabel.OBConversion_GetInGzipped, None, OBConversion)
OBConversion.GetOutGzipped = new_instancemethod(_openbabel.OBConversion_GetOutGzipped, None, OBConversion)
OBConversion.GetInFilename = new_instancemethod(_openbabel.OBConversion_GetInFilename, None, OBConversion)
OBConversion.GetOutFilename = new_instancemethod(_openbabel.OBConversion_GetOutFilename, None, OBConversion)
OBConversion.GetInPos = new_instancemethod(_openbabel.OBConversion_GetInPos, None, OBConversion)
OBConversion.GetInLen = new_instancemethod(_openbabel.OBConversion_GetInLen, None, OBConversion)
OBConversion.GetTitle = new_instancemethod(_openbabel.OBConversion_GetTitle, None, OBConversion)
OBConversion.GetAuxConv = new_instancemethod(_openbabel.OBConversion_GetAuxConv, None, OBConversion)
OBConversion.SetAuxConv = new_instancemethod(_openbabel.OBConversion_SetAuxConv, None, OBConversion)
OBConversion.IsOption = new_instancemethod(_openbabel.OBConversion_IsOption, None, OBConversion)
OBConversion.GetOptions = new_instancemethod(_openbabel.OBConversion_GetOptions, None, OBConversion)
OBConversion.AddOption = new_instancemethod(_openbabel.OBConversion_AddOption, None, OBConversion)
OBConversion.RemoveOption = new_instancemethod(_openbabel.OBConversion_RemoveOption, None, OBConversion)
OBConversion.SetOptions = new_instancemethod(_openbabel.OBConversion_SetOptions, None, OBConversion)
OBConversion.CopyOptions = new_instancemethod(_openbabel.OBConversion_CopyOptions, None, OBConversion)
OBConversion.GetSupportedInputFormat = new_instancemethod(_openbabel.OBConversion_GetSupportedInputFormat, None, OBConversion)
OBConversion.GetSupportedOutputFormat = new_instancemethod(_openbabel.OBConversion_GetSupportedOutputFormat, None, OBConversion)
OBConversion.Convert = new_instancemethod(_openbabel.OBConversion_Convert, None, OBConversion)
OBConversion.FullConvert = new_instancemethod(_openbabel.OBConversion_FullConvert, None, OBConversion)
OBConversion.AddChemObject = new_instancemethod(_openbabel.OBConversion_AddChemObject, None, OBConversion)
OBConversion.GetChemObject = new_instancemethod(_openbabel.OBConversion_GetChemObject, None, OBConversion)
OBConversion.IsLast = new_instancemethod(_openbabel.OBConversion_IsLast, None, OBConversion)
OBConversion.IsFirstInput = new_instancemethod(_openbabel.OBConversion_IsFirstInput, None, OBConversion)
OBConversion.SetFirstInput = new_instancemethod(_openbabel.OBConversion_SetFirstInput, None, OBConversion)
OBConversion.GetOutputIndex = new_instancemethod(_openbabel.OBConversion_GetOutputIndex, None, OBConversion)
OBConversion.SetOutputIndex = new_instancemethod(_openbabel.OBConversion_SetOutputIndex, None, OBConversion)
OBConversion.SetMoreFilesToCome = new_instancemethod(_openbabel.OBConversion_SetMoreFilesToCome, None, OBConversion)
OBConversion.SetOneObjectOnly = new_instancemethod(_openbabel.OBConversion_SetOneObjectOnly, None, OBConversion)
OBConversion.SetLast = new_instancemethod(_openbabel.OBConversion_SetLast, None, OBConversion)
OBConversion.IsLastFile = new_instancemethod(_openbabel.OBConversion_IsLastFile, None, OBConversion)
OBConversion.GetCount = new_instancemethod(_openbabel.OBConversion_GetCount, None, OBConversion)
OBConversion.Write = new_instancemethod(_openbabel.OBConversion_Write, None, OBConversion)
OBConversion.WriteString = new_instancemethod(_openbabel.OBConversion_WriteString, None, OBConversion)
OBConversion.WriteFile = new_instancemethod(_openbabel.OBConversion_WriteFile, None, OBConversion)
OBConversion.CloseOutFile = new_instancemethod(_openbabel.OBConversion_CloseOutFile, None, OBConversion)
OBConversion.Read = new_instancemethod(_openbabel.OBConversion_Read, None, OBConversion)
OBConversion.ReadString = new_instancemethod(_openbabel.OBConversion_ReadString, None, OBConversion)
OBConversion.ReadFile = new_instancemethod(_openbabel.OBConversion_ReadFile, None, OBConversion)
OBConversion.OpenInAndOutFiles = new_instancemethod(_openbabel.OBConversion_OpenInAndOutFiles, None, OBConversion)
OBConversion.ReportNumberConverted = new_instancemethod(_openbabel.OBConversion_ReportNumberConverted, None, OBConversion)
OBConversion.NumInputObjects = new_instancemethod(_openbabel.OBConversion_NumInputObjects, None, OBConversion)
OBConversion_swigregister = _openbabel.OBConversion_swigregister
OBConversion_swigregister(OBConversion)

def OBConversion_RegisterFormat(ID, pFormat, MIME=None):
    return _openbabel.OBConversion_RegisterFormat(ID, pFormat, MIME)
OBConversion_RegisterFormat = _openbabel.OBConversion_RegisterFormat

def OBConversion_FindFormat(*args):
    return _openbabel.OBConversion_FindFormat(*args)
OBConversion_FindFormat = _openbabel.OBConversion_FindFormat

def OBConversion_FormatFromExt(*args):
    return _openbabel.OBConversion_FormatFromExt(*args)
OBConversion_FormatFromExt = _openbabel.OBConversion_FormatFromExt

def OBConversion_FormatFromMIME(MIME):
    return _openbabel.OBConversion_FormatFromMIME(MIME)
OBConversion_FormatFromMIME = _openbabel.OBConversion_FormatFromMIME

def OBConversion_Description():
    return _openbabel.OBConversion_Description()
OBConversion_Description = _openbabel.OBConversion_Description

def OBConversion_RegisterOptionParam(*args):
    return _openbabel.OBConversion_RegisterOptionParam(*args)
OBConversion_RegisterOptionParam = _openbabel.OBConversion_RegisterOptionParam

def OBConversion_GetOptionParams(name, typ):
    return _openbabel.OBConversion_GetOptionParams(name, typ)
OBConversion_GetOptionParams = _openbabel.OBConversion_GetOptionParams

def OBConversion_GetDefaultFormat():
    return _openbabel.OBConversion_GetDefaultFormat()
OBConversion_GetDefaultFormat = _openbabel.OBConversion_GetDefaultFormat


def OBBondGetSmallestRingSize(bond, bound):
    return _openbabel.OBBondGetSmallestRingSize(bond, bound)
OBBondGetSmallestRingSize = _openbabel.OBBondGetSmallestRingSize

def GetTypicalValence(element, bosum, charge):
    return _openbabel.GetTypicalValence(element, bosum, charge)
GetTypicalValence = _openbabel.GetTypicalValence

def OBAtomAssignTypicalImplicitHydrogens(atom):
    return _openbabel.OBAtomAssignTypicalImplicitHydrogens(atom)
OBAtomAssignTypicalImplicitHydrogens = _openbabel.OBAtomAssignTypicalImplicitHydrogens

def GetSymbol(atomic_number):
    return _openbabel.GetSymbol(atomic_number)
GetSymbol = _openbabel.GetSymbol

def GetName(atomic_number):
    return _openbabel.GetName(atomic_number)
GetName = _openbabel.GetName

def GetMass(atomic_number):
    return _openbabel.GetMass(atomic_number)
GetMass = _openbabel.GetMass

def GetExactMass(atomic_number, isotope=0):
    return _openbabel.GetExactMass(atomic_number, isotope)
GetExactMass = _openbabel.GetExactMass

def GetAtomicNum(ptr):
    return _openbabel.GetAtomicNum(ptr)
GetAtomicNum = _openbabel.GetAtomicNum

def GetAllredRochowElectroNeg(atomic_number):
    return _openbabel.GetAllredRochowElectroNeg(atomic_number)
GetAllredRochowElectroNeg = _openbabel.GetAllredRochowElectroNeg

def GetCovalentRad(atomic_number):
    return _openbabel.GetCovalentRad(atomic_number)
GetCovalentRad = _openbabel.GetCovalentRad

def GetVdwRad(atomic_number):
    return _openbabel.GetVdwRad(atomic_number)
GetVdwRad = _openbabel.GetVdwRad

def GetElectronAffinity(atomic_number):
    return _openbabel.GetElectronAffinity(atomic_number)
GetElectronAffinity = _openbabel.GetElectronAffinity

def GetIonization(atomic_number):
    return _openbabel.GetIonization(atomic_number)
GetIonization = _openbabel.GetIonization

def GetMaxBonds(atomic_number):
    return _openbabel.GetMaxBonds(atomic_number)
GetMaxBonds = _openbabel.GetMaxBonds

def GetElectroNeg(atomic_number):
    return _openbabel.GetElectroNeg(atomic_number)
GetElectroNeg = _openbabel.GetElectroNeg

def GetRGB(atomic_number, r, g, b):
    return _openbabel.GetRGB(atomic_number, r, g, b)
GetRGB = _openbabel.GetRGB
class OBResidue(OBBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBResidue_swiginit(self, _openbabel.new_OBResidue(*args))
    __swig_destroy__ = _openbabel.delete_OBResidue
OBResidue.AddAtom = new_instancemethod(_openbabel.OBResidue_AddAtom, None, OBResidue)
OBResidue.InsertAtom = new_instancemethod(_openbabel.OBResidue_InsertAtom, None, OBResidue)
OBResidue.RemoveAtom = new_instancemethod(_openbabel.OBResidue_RemoveAtom, None, OBResidue)
OBResidue.SetName = new_instancemethod(_openbabel.OBResidue_SetName, None, OBResidue)
OBResidue.SetNum = new_instancemethod(_openbabel.OBResidue_SetNum, None, OBResidue)
OBResidue.SetChain = new_instancemethod(_openbabel.OBResidue_SetChain, None, OBResidue)
OBResidue.SetChainNum = new_instancemethod(_openbabel.OBResidue_SetChainNum, None, OBResidue)
OBResidue.SetIdx = new_instancemethod(_openbabel.OBResidue_SetIdx, None, OBResidue)
OBResidue.SetInsertionCode = new_instancemethod(_openbabel.OBResidue_SetInsertionCode, None, OBResidue)
OBResidue.SetAtomID = new_instancemethod(_openbabel.OBResidue_SetAtomID, None, OBResidue)
OBResidue.SetHetAtom = new_instancemethod(_openbabel.OBResidue_SetHetAtom, None, OBResidue)
OBResidue.SetSerialNum = new_instancemethod(_openbabel.OBResidue_SetSerialNum, None, OBResidue)
OBResidue.GetName = new_instancemethod(_openbabel.OBResidue_GetName, None, OBResidue)
OBResidue.GetNum = new_instancemethod(_openbabel.OBResidue_GetNum, None, OBResidue)
OBResidue.GetNumString = new_instancemethod(_openbabel.OBResidue_GetNumString, None, OBResidue)
OBResidue.GetNumAtoms = new_instancemethod(_openbabel.OBResidue_GetNumAtoms, None, OBResidue)
OBResidue.GetChain = new_instancemethod(_openbabel.OBResidue_GetChain, None, OBResidue)
OBResidue.GetChainNum = new_instancemethod(_openbabel.OBResidue_GetChainNum, None, OBResidue)
OBResidue.GetIdx = new_instancemethod(_openbabel.OBResidue_GetIdx, None, OBResidue)
OBResidue.GetResKey = new_instancemethod(_openbabel.OBResidue_GetResKey, None, OBResidue)
OBResidue.GetBonds = new_instancemethod(_openbabel.OBResidue_GetBonds, None, OBResidue)
OBResidue.GetAtomID = new_instancemethod(_openbabel.OBResidue_GetAtomID, None, OBResidue)
OBResidue.GetSerialNum = new_instancemethod(_openbabel.OBResidue_GetSerialNum, None, OBResidue)
OBResidue.GetInsertionCode = new_instancemethod(_openbabel.OBResidue_GetInsertionCode, None, OBResidue)
OBResidue.GetAminoAcidProperty = new_instancemethod(_openbabel.OBResidue_GetAminoAcidProperty, None, OBResidue)
OBResidue.GetAtomProperty = new_instancemethod(_openbabel.OBResidue_GetAtomProperty, None, OBResidue)
OBResidue.GetResidueProperty = new_instancemethod(_openbabel.OBResidue_GetResidueProperty, None, OBResidue)
OBResidue.IsHetAtom = new_instancemethod(_openbabel.OBResidue_IsHetAtom, None, OBResidue)
OBResidue.IsResidueType = new_instancemethod(_openbabel.OBResidue_IsResidueType, None, OBResidue)
OBResidue.BeginAtoms = new_instancemethod(_openbabel.OBResidue_BeginAtoms, None, OBResidue)
OBResidue.EndAtoms = new_instancemethod(_openbabel.OBResidue_EndAtoms, None, OBResidue)
OBResidue.BeginAtom = new_instancemethod(_openbabel.OBResidue_BeginAtom, None, OBResidue)
OBResidue.NextAtom = new_instancemethod(_openbabel.OBResidue_NextAtom, None, OBResidue)
OBResidue_swigregister = _openbabel.OBResidue_swigregister
OBResidue_swigregister(OBResidue)
Dummy = cvar.Dummy
Hydrogen = cvar.Hydrogen
H = cvar.H
Helium = cvar.Helium
He = cvar.He
Lithium = cvar.Lithium
Li = cvar.Li
Beryllium = cvar.Beryllium
Be = cvar.Be
Boron = cvar.Boron
B = cvar.B
Carbon = cvar.Carbon
C = cvar.C
Nitrogen = cvar.Nitrogen
N = cvar.N
Oxygen = cvar.Oxygen
O = cvar.O
Fluorine = cvar.Fluorine
F = cvar.F
Neon = cvar.Neon
Ne = cvar.Ne
Sodium = cvar.Sodium
Na = cvar.Na
Magnesium = cvar.Magnesium
Mg = cvar.Mg
Aluminium = cvar.Aluminium
Al = cvar.Al
Silicon = cvar.Silicon
Si = cvar.Si
Phosphorus = cvar.Phosphorus
P = cvar.P
Sulfur = cvar.Sulfur
S = cvar.S
Chlorine = cvar.Chlorine
Cl = cvar.Cl
Argon = cvar.Argon
Ar = cvar.Ar
Potassium = cvar.Potassium
K = cvar.K
Calcium = cvar.Calcium
Ca = cvar.Ca
Scandium = cvar.Scandium
Sc = cvar.Sc
Titanium = cvar.Titanium
Ti = cvar.Ti
Vanadium = cvar.Vanadium
V = cvar.V
Chromium = cvar.Chromium
Cr = cvar.Cr
Manganese = cvar.Manganese
Mn = cvar.Mn
Iron = cvar.Iron
Fe = cvar.Fe
Cobalt = cvar.Cobalt
Co = cvar.Co
Nickel = cvar.Nickel
Ni = cvar.Ni
Copper = cvar.Copper
Cu = cvar.Cu
Zinc = cvar.Zinc
Zn = cvar.Zn
Gallium = cvar.Gallium
Ga = cvar.Ga
Germanium = cvar.Germanium
Ge = cvar.Ge
Arsenic = cvar.Arsenic
As = cvar.As
Selenium = cvar.Selenium
Se = cvar.Se
Bromine = cvar.Bromine
Br = cvar.Br
Krypton = cvar.Krypton
Kr = cvar.Kr
Rubidium = cvar.Rubidium
Rb = cvar.Rb
Strontium = cvar.Strontium
Sr = cvar.Sr
Yttrium = cvar.Yttrium
Y = cvar.Y
Zirconium = cvar.Zirconium
Zr = cvar.Zr
Niobium = cvar.Niobium
Nb = cvar.Nb
Molybdenum = cvar.Molybdenum
Mo = cvar.Mo
Technetium = cvar.Technetium
Tc = cvar.Tc
Ruthenium = cvar.Ruthenium
Ru = cvar.Ru
Rhodium = cvar.Rhodium
Rh = cvar.Rh
Palladium = cvar.Palladium
Pd = cvar.Pd
Silver = cvar.Silver
Ag = cvar.Ag
Cadmium = cvar.Cadmium
Cd = cvar.Cd
Indium = cvar.Indium
In = cvar.In
Tin = cvar.Tin
Sn = cvar.Sn
Antimony = cvar.Antimony
Sb = cvar.Sb
Tellurium = cvar.Tellurium
Te = cvar.Te
Iodine = cvar.Iodine
I = cvar.I
Xenon = cvar.Xenon
Xe = cvar.Xe
Caesium = cvar.Caesium
Cs = cvar.Cs
Barium = cvar.Barium
Ba = cvar.Ba
Lanthanum = cvar.Lanthanum
La = cvar.La
Cerium = cvar.Cerium
Ce = cvar.Ce
Praseodymium = cvar.Praseodymium
Pr = cvar.Pr
Neodymium = cvar.Neodymium
Nd = cvar.Nd
Promethium = cvar.Promethium
Pm = cvar.Pm
Samarium = cvar.Samarium
Sm = cvar.Sm
Europium = cvar.Europium
Eu = cvar.Eu
Gadolinium = cvar.Gadolinium
Gd = cvar.Gd
Terbium = cvar.Terbium
Tb = cvar.Tb
Dysprosium = cvar.Dysprosium
Dy = cvar.Dy
Holmium = cvar.Holmium
Ho = cvar.Ho
Erbium = cvar.Erbium
Er = cvar.Er
Thulium = cvar.Thulium
Tm = cvar.Tm
Ytterbium = cvar.Ytterbium
Yb = cvar.Yb
Lutetium = cvar.Lutetium
Lu = cvar.Lu
Hafnium = cvar.Hafnium
Hf = cvar.Hf
Tantalum = cvar.Tantalum
Ta = cvar.Ta
Tungsten = cvar.Tungsten
W = cvar.W
Rhenium = cvar.Rhenium
Re = cvar.Re
Osmium = cvar.Osmium
Os = cvar.Os
Iridium = cvar.Iridium
Ir = cvar.Ir
Platinum = cvar.Platinum
Pt = cvar.Pt
Gold = cvar.Gold
Au = cvar.Au
Mercury = cvar.Mercury
Hg = cvar.Hg
Thallium = cvar.Thallium
Tl = cvar.Tl
Lead = cvar.Lead
Pb = cvar.Pb
Bismuth = cvar.Bismuth
Bi = cvar.Bi
Polonium = cvar.Polonium
Po = cvar.Po
Astatine = cvar.Astatine
At = cvar.At
Radon = cvar.Radon
Rn = cvar.Rn
Francium = cvar.Francium
Fr = cvar.Fr
Radium = cvar.Radium
Ra = cvar.Ra
Actinium = cvar.Actinium
Ac = cvar.Ac
Thorium = cvar.Thorium
Th = cvar.Th
Protactinium = cvar.Protactinium
Pa = cvar.Pa
Uranium = cvar.Uranium
U = cvar.U
Neptunium = cvar.Neptunium
Np = cvar.Np
Plutonium = cvar.Plutonium
Pu = cvar.Pu
Americium = cvar.Americium
Am = cvar.Am
Curium = cvar.Curium
Cm = cvar.Cm
Berkelium = cvar.Berkelium
Bk = cvar.Bk
Californium = cvar.Californium
Cf = cvar.Cf
Einsteinium = cvar.Einsteinium
Es = cvar.Es
Fermium = cvar.Fermium
Fm = cvar.Fm
Mendelevium = cvar.Mendelevium
Md = cvar.Md
Nobelium = cvar.Nobelium
No = cvar.No
Lawrencium = cvar.Lawrencium
Lr = cvar.Lr
Rutherfordium = cvar.Rutherfordium
Rf = cvar.Rf
Dubnium = cvar.Dubnium
Db = cvar.Db
Seaborgium = cvar.Seaborgium
Sg = cvar.Sg
Bohrium = cvar.Bohrium
Bh = cvar.Bh
Hassium = cvar.Hassium
Hs = cvar.Hs
Meitnerium = cvar.Meitnerium
Mt = cvar.Mt
Darmstadtium = cvar.Darmstadtium
Ds = cvar.Ds
Roentgenium = cvar.Roentgenium
Rg = cvar.Rg
Copernicium = cvar.Copernicium
Cn = cvar.Cn
Nihonium = cvar.Nihonium
Nh = cvar.Nh
Flerovium = cvar.Flerovium
Fl = cvar.Fl
Moscovium = cvar.Moscovium
Mc = cvar.Mc
Livermorium = cvar.Livermorium
Lv = cvar.Lv
Tennessine = cvar.Tennessine
Ts = cvar.Ts
Oganesson = cvar.Oganesson
Og = cvar.Og

MAXSETNO = _openbabel.MAXSETNO
MAXELEM = _openbabel.MAXELEM
MAXRES = _openbabel.MAXRES
AA_ALA = _openbabel.AA_ALA
AA_GLY = _openbabel.AA_GLY
AA_LEU = _openbabel.AA_LEU
AA_SER = _openbabel.AA_SER
AA_VAL = _openbabel.AA_VAL
AA_THR = _openbabel.AA_THR
AA_LYS = _openbabel.AA_LYS
AA_ASP = _openbabel.AA_ASP
AA_ILE = _openbabel.AA_ILE
AA_ASN = _openbabel.AA_ASN
AA_GLU = _openbabel.AA_GLU
AA_PRO = _openbabel.AA_PRO
AA_ARG = _openbabel.AA_ARG
AA_PHE = _openbabel.AA_PHE
AA_GLN = _openbabel.AA_GLN
AA_TYR = _openbabel.AA_TYR
AA_HIS = _openbabel.AA_HIS
AA_CYS = _openbabel.AA_CYS
AA_MET = _openbabel.AA_MET
AA_TRP = _openbabel.AA_TRP
ACIDIC = _openbabel.ACIDIC
ACYCLIC = _openbabel.ACYCLIC
ALIPHATIC = _openbabel.ALIPHATIC
AROMATIC = _openbabel.AROMATIC
BASIC = _openbabel.BASIC
BURIED = _openbabel.BURIED
CHARGED = _openbabel.CHARGED
CYCLIC = _openbabel.CYCLIC
HYDROPHOBIC = _openbabel.HYDROPHOBIC
LARGE = _openbabel.LARGE
MEDIUM = _openbabel.MEDIUM
NEGATIVE = _openbabel.NEGATIVE
NEUTRAL = _openbabel.NEUTRAL
POLAR = _openbabel.POLAR
POSITIVE = _openbabel.POSITIVE
SMALL = _openbabel.SMALL
SURFACE = _openbabel.SURFACE
ALPHA_CARBON = _openbabel.ALPHA_CARBON
AMINO_BACKBONE = _openbabel.AMINO_BACKBONE
BACKBONE = _openbabel.BACKBONE
CYSTEINE_SULPHUR = _openbabel.CYSTEINE_SULPHUR
LIGAND = _openbabel.LIGAND
NUCLEIC_BACKBONE = _openbabel.NUCLEIC_BACKBONE
SHAPELY_BACKBONE = _openbabel.SHAPELY_BACKBONE
SHAPELY_SPECIAL = _openbabel.SHAPELY_SPECIAL
SIDECHAIN = _openbabel.SIDECHAIN
SUGAR_PHOSPHATE = _openbabel.SUGAR_PHOSPHATE
ALA = _openbabel.ALA
GLY = _openbabel.GLY
LEU = _openbabel.LEU
SER = _openbabel.SER
VAL = _openbabel.VAL
THR = _openbabel.THR
LYS = _openbabel.LYS
ASP = _openbabel.ASP
ILE = _openbabel.ILE
ASN = _openbabel.ASN
GLU = _openbabel.GLU
PRO = _openbabel.PRO
ARG = _openbabel.ARG
PHE = _openbabel.PHE
GLN = _openbabel.GLN
TYR = _openbabel.TYR
HIS = _openbabel.HIS
CYS = _openbabel.CYS
MET = _openbabel.MET
TRP = _openbabel.TRP
ASX = _openbabel.ASX
GLX = _openbabel.GLX
PCA = _openbabel.PCA
HYP = _openbabel.HYP
resA = _openbabel.resA
resC = _openbabel.resC
resG = _openbabel.resG
resT = _openbabel.resT
resU = _openbabel.resU
UPLUS = _openbabel.UPLUS
resI = _openbabel.resI
_1MA = _openbabel._1MA
_5MC = _openbabel._5MC
OMC = _openbabel.OMC
_1MG = _openbabel._1MG
_2MG = _openbabel._2MG
M2G = _openbabel.M2G
_7MG = _openbabel._7MG
OMG = _openbabel.OMG
YG = _openbabel.YG
H2U = _openbabel.H2U
_5MU = _openbabel._5MU
PSU = _openbabel.PSU
UNK = _openbabel.UNK
ACE = _openbabel.ACE
FOR = _openbabel.FOR
HOH = _openbabel.HOH
DOD = _openbabel.DOD
SO4 = _openbabel.SO4
PO4 = _openbabel.PO4
NAD = _openbabel.NAD
COA = _openbabel.COA
NAP = _openbabel.NAP
NDP = _openbabel.NDP
AMINO = _openbabel.AMINO
AMINO_NUCLEO = _openbabel.AMINO_NUCLEO
COENZYME = _openbabel.COENZYME
ION = _openbabel.ION
NUCLEO = _openbabel.NUCLEO
PROTEIN = _openbabel.PROTEIN
PURINE = _openbabel.PURINE
PYRIMIDINE = _openbabel.PYRIMIDINE
SOLVENT = _openbabel.SOLVENT
WATER = _openbabel.WATER
class OBInternalCoord(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    _a = _swig_property(_openbabel.OBInternalCoord__a_get, _openbabel.OBInternalCoord__a_set)
    _b = _swig_property(_openbabel.OBInternalCoord__b_get, _openbabel.OBInternalCoord__b_set)
    _c = _swig_property(_openbabel.OBInternalCoord__c_get, _openbabel.OBInternalCoord__c_set)
    _dst = _swig_property(_openbabel.OBInternalCoord__dst_get, _openbabel.OBInternalCoord__dst_set)
    _ang = _swig_property(_openbabel.OBInternalCoord__ang_get, _openbabel.OBInternalCoord__ang_set)
    _tor = _swig_property(_openbabel.OBInternalCoord__tor_get, _openbabel.OBInternalCoord__tor_set)

    def __init__(self, a=None, b=None, c=None, dst=0.0, ang=0.0, tor=0.0):
        _openbabel.OBInternalCoord_swiginit(self, _openbabel.new_OBInternalCoord(a, b, c, dst, ang, tor))
    __swig_destroy__ = _openbabel.delete_OBInternalCoord
OBInternalCoord_swigregister = _openbabel.OBInternalCoord_swigregister
OBInternalCoord_swigregister(OBInternalCoord)

OB_4RING_ATOM = _openbabel.OB_4RING_ATOM
OB_3RING_ATOM = _openbabel.OB_3RING_ATOM
OB_AROMATIC_ATOM = _openbabel.OB_AROMATIC_ATOM
OB_RING_ATOM = _openbabel.OB_RING_ATOM
OB_DONOR_ATOM = _openbabel.OB_DONOR_ATOM
OB_ACCEPTOR_ATOM = _openbabel.OB_ACCEPTOR_ATOM
OBATOM_TYPE_LEN = _openbabel.OBATOM_TYPE_LEN
class OBAtom(OBBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Visit = _swig_property(_openbabel.OBAtom_Visit_get, _openbabel.OBAtom_Visit_set)

    def __init__(self):
        _openbabel.OBAtom_swiginit(self, _openbabel.new_OBAtom())
    __swig_destroy__ = _openbabel.delete_OBAtom
OBAtom.__eq__ = new_instancemethod(_openbabel.OBAtom___eq__, None, OBAtom)
OBAtom.Duplicate = new_instancemethod(_openbabel.OBAtom_Duplicate, None, OBAtom)
OBAtom.SetIdx = new_instancemethod(_openbabel.OBAtom_SetIdx, None, OBAtom)
OBAtom.SetId = new_instancemethod(_openbabel.OBAtom_SetId, None, OBAtom)
OBAtom.SetHyb = new_instancemethod(_openbabel.OBAtom_SetHyb, None, OBAtom)
OBAtom.SetAtomicNum = new_instancemethod(_openbabel.OBAtom_SetAtomicNum, None, OBAtom)
OBAtom.SetIsotope = new_instancemethod(_openbabel.OBAtom_SetIsotope, None, OBAtom)
OBAtom.SetImplicitHCount = new_instancemethod(_openbabel.OBAtom_SetImplicitHCount, None, OBAtom)
OBAtom.SetFormalCharge = new_instancemethod(_openbabel.OBAtom_SetFormalCharge, None, OBAtom)
OBAtom.SetSpinMultiplicity = new_instancemethod(_openbabel.OBAtom_SetSpinMultiplicity, None, OBAtom)
OBAtom.SetType = new_instancemethod(_openbabel.OBAtom_SetType, None, OBAtom)
OBAtom.SetPartialCharge = new_instancemethod(_openbabel.OBAtom_SetPartialCharge, None, OBAtom)
OBAtom.SetCoordPtr = new_instancemethod(_openbabel.OBAtom_SetCoordPtr, None, OBAtom)
OBAtom.SetVector = new_instancemethod(_openbabel.OBAtom_SetVector, None, OBAtom)
OBAtom.SetResidue = new_instancemethod(_openbabel.OBAtom_SetResidue, None, OBAtom)
OBAtom.SetParent = new_instancemethod(_openbabel.OBAtom_SetParent, None, OBAtom)
OBAtom.SetAromatic = new_instancemethod(_openbabel.OBAtom_SetAromatic, None, OBAtom)
OBAtom.SetInRing = new_instancemethod(_openbabel.OBAtom_SetInRing, None, OBAtom)
OBAtom.ClearCoordPtr = new_instancemethod(_openbabel.OBAtom_ClearCoordPtr, None, OBAtom)
OBAtom.GetFormalCharge = new_instancemethod(_openbabel.OBAtom_GetFormalCharge, None, OBAtom)
OBAtom.GetAtomicNum = new_instancemethod(_openbabel.OBAtom_GetAtomicNum, None, OBAtom)
OBAtom.GetIsotope = new_instancemethod(_openbabel.OBAtom_GetIsotope, None, OBAtom)
OBAtom.GetSpinMultiplicity = new_instancemethod(_openbabel.OBAtom_GetSpinMultiplicity, None, OBAtom)
OBAtom.GetAtomicMass = new_instancemethod(_openbabel.OBAtom_GetAtomicMass, None, OBAtom)
OBAtom.GetExactMass = new_instancemethod(_openbabel.OBAtom_GetExactMass, None, OBAtom)
OBAtom.GetIdx = new_instancemethod(_openbabel.OBAtom_GetIdx, None, OBAtom)
OBAtom.GetIndex = new_instancemethod(_openbabel.OBAtom_GetIndex, None, OBAtom)
OBAtom.GetId = new_instancemethod(_openbabel.OBAtom_GetId, None, OBAtom)
OBAtom.GetCoordinateIdx = new_instancemethod(_openbabel.OBAtom_GetCoordinateIdx, None, OBAtom)
OBAtom.GetExplicitDegree = new_instancemethod(_openbabel.OBAtom_GetExplicitDegree, None, OBAtom)
OBAtom.GetTotalDegree = new_instancemethod(_openbabel.OBAtom_GetTotalDegree, None, OBAtom)
OBAtom.GetExplicitValence = new_instancemethod(_openbabel.OBAtom_GetExplicitValence, None, OBAtom)
OBAtom.GetTotalValence = new_instancemethod(_openbabel.OBAtom_GetTotalValence, None, OBAtom)
OBAtom.GetHyb = new_instancemethod(_openbabel.OBAtom_GetHyb, None, OBAtom)
OBAtom.GetImplicitHCount = new_instancemethod(_openbabel.OBAtom_GetImplicitHCount, None, OBAtom)
OBAtom.GetHvyDegree = new_instancemethod(_openbabel.OBAtom_GetHvyDegree, None, OBAtom)
OBAtom.GetHeteroDegree = new_instancemethod(_openbabel.OBAtom_GetHeteroDegree, None, OBAtom)
OBAtom.GetType = new_instancemethod(_openbabel.OBAtom_GetType, None, OBAtom)
OBAtom.GetX = new_instancemethod(_openbabel.OBAtom_GetX, None, OBAtom)
OBAtom.GetY = new_instancemethod(_openbabel.OBAtom_GetY, None, OBAtom)
OBAtom.GetZ = new_instancemethod(_openbabel.OBAtom_GetZ, None, OBAtom)
OBAtom.x = new_instancemethod(_openbabel.OBAtom_x, None, OBAtom)
OBAtom.y = new_instancemethod(_openbabel.OBAtom_y, None, OBAtom)
OBAtom.z = new_instancemethod(_openbabel.OBAtom_z, None, OBAtom)
OBAtom.GetCoordinate = new_instancemethod(_openbabel.OBAtom_GetCoordinate, None, OBAtom)
OBAtom.GetVector = new_instancemethod(_openbabel.OBAtom_GetVector, None, OBAtom)
OBAtom.GetPartialCharge = new_instancemethod(_openbabel.OBAtom_GetPartialCharge, None, OBAtom)
OBAtom.GetResidue = new_instancemethod(_openbabel.OBAtom_GetResidue, None, OBAtom)
OBAtom.GetParent = new_instancemethod(_openbabel.OBAtom_GetParent, None, OBAtom)
OBAtom.GetNewBondVector = new_instancemethod(_openbabel.OBAtom_GetNewBondVector, None, OBAtom)
OBAtom.GetBond = new_instancemethod(_openbabel.OBAtom_GetBond, None, OBAtom)
OBAtom.BeginBonds = new_instancemethod(_openbabel.OBAtom_BeginBonds, None, OBAtom)
OBAtom.EndBonds = new_instancemethod(_openbabel.OBAtom_EndBonds, None, OBAtom)
OBAtom.BeginBond = new_instancemethod(_openbabel.OBAtom_BeginBond, None, OBAtom)
OBAtom.NextBond = new_instancemethod(_openbabel.OBAtom_NextBond, None, OBAtom)
OBAtom.BeginNbrAtom = new_instancemethod(_openbabel.OBAtom_BeginNbrAtom, None, OBAtom)
OBAtom.NextNbrAtom = new_instancemethod(_openbabel.OBAtom_NextNbrAtom, None, OBAtom)
OBAtom.GetDistance = new_instancemethod(_openbabel.OBAtom_GetDistance, None, OBAtom)
OBAtom.GetAngle = new_instancemethod(_openbabel.OBAtom_GetAngle, None, OBAtom)
OBAtom.NewResidue = new_instancemethod(_openbabel.OBAtom_NewResidue, None, OBAtom)
OBAtom.AddResidue = new_instancemethod(_openbabel.OBAtom_AddResidue, None, OBAtom)
OBAtom.DeleteResidue = new_instancemethod(_openbabel.OBAtom_DeleteResidue, None, OBAtom)
OBAtom.AddBond = new_instancemethod(_openbabel.OBAtom_AddBond, None, OBAtom)
OBAtom.InsertBond = new_instancemethod(_openbabel.OBAtom_InsertBond, None, OBAtom)
OBAtom.DeleteBond = new_instancemethod(_openbabel.OBAtom_DeleteBond, None, OBAtom)
OBAtom.ClearBond = new_instancemethod(_openbabel.OBAtom_ClearBond, None, OBAtom)
OBAtom.HtoMethyl = new_instancemethod(_openbabel.OBAtom_HtoMethyl, None, OBAtom)
OBAtom.SetHybAndGeom = new_instancemethod(_openbabel.OBAtom_SetHybAndGeom, None, OBAtom)
OBAtom.CountFreeOxygens = new_instancemethod(_openbabel.OBAtom_CountFreeOxygens, None, OBAtom)
OBAtom.CountFreeSulfurs = new_instancemethod(_openbabel.OBAtom_CountFreeSulfurs, None, OBAtom)
OBAtom.ExplicitHydrogenCount = new_instancemethod(_openbabel.OBAtom_ExplicitHydrogenCount, None, OBAtom)
OBAtom.MemberOfRingCount = new_instancemethod(_openbabel.OBAtom_MemberOfRingCount, None, OBAtom)
OBAtom.MemberOfRingSize = new_instancemethod(_openbabel.OBAtom_MemberOfRingSize, None, OBAtom)
OBAtom.CountRingBonds = new_instancemethod(_openbabel.OBAtom_CountRingBonds, None, OBAtom)
OBAtom.SmallestBondAngle = new_instancemethod(_openbabel.OBAtom_SmallestBondAngle, None, OBAtom)
OBAtom.AverageBondAngle = new_instancemethod(_openbabel.OBAtom_AverageBondAngle, None, OBAtom)
OBAtom.LewisAcidBaseCounts = new_instancemethod(_openbabel.OBAtom_LewisAcidBaseCounts, None, OBAtom)
OBAtom.HasResidue = new_instancemethod(_openbabel.OBAtom_HasResidue, None, OBAtom)
OBAtom.IsHetAtom = new_instancemethod(_openbabel.OBAtom_IsHetAtom, None, OBAtom)
OBAtom.IsElement = new_instancemethod(_openbabel.OBAtom_IsElement, None, OBAtom)
OBAtom.IsAromatic = new_instancemethod(_openbabel.OBAtom_IsAromatic, None, OBAtom)
OBAtom.IsInRing = new_instancemethod(_openbabel.OBAtom_IsInRing, None, OBAtom)
OBAtom.IsInRingSize = new_instancemethod(_openbabel.OBAtom_IsInRingSize, None, OBAtom)
OBAtom.IsHeteroatom = new_instancemethod(_openbabel.OBAtom_IsHeteroatom, None, OBAtom)
OBAtom.IsConnected = new_instancemethod(_openbabel.OBAtom_IsConnected, None, OBAtom)
OBAtom.IsOneThree = new_instancemethod(_openbabel.OBAtom_IsOneThree, None, OBAtom)
OBAtom.IsOneFour = new_instancemethod(_openbabel.OBAtom_IsOneFour, None, OBAtom)
OBAtom.IsCarboxylOxygen = new_instancemethod(_openbabel.OBAtom_IsCarboxylOxygen, None, OBAtom)
OBAtom.IsPhosphateOxygen = new_instancemethod(_openbabel.OBAtom_IsPhosphateOxygen, None, OBAtom)
OBAtom.IsSulfateOxygen = new_instancemethod(_openbabel.OBAtom_IsSulfateOxygen, None, OBAtom)
OBAtom.IsNitroOxygen = new_instancemethod(_openbabel.OBAtom_IsNitroOxygen, None, OBAtom)
OBAtom.IsAmideNitrogen = new_instancemethod(_openbabel.OBAtom_IsAmideNitrogen, None, OBAtom)
OBAtom.IsPolarHydrogen = new_instancemethod(_openbabel.OBAtom_IsPolarHydrogen, None, OBAtom)
OBAtom.IsNonPolarHydrogen = new_instancemethod(_openbabel.OBAtom_IsNonPolarHydrogen, None, OBAtom)
OBAtom.IsAromaticNOxide = new_instancemethod(_openbabel.OBAtom_IsAromaticNOxide, None, OBAtom)
OBAtom.IsChiral = new_instancemethod(_openbabel.OBAtom_IsChiral, None, OBAtom)
OBAtom.IsPeriodic = new_instancemethod(_openbabel.OBAtom_IsPeriodic, None, OBAtom)
OBAtom.IsAxial = new_instancemethod(_openbabel.OBAtom_IsAxial, None, OBAtom)
OBAtom.IsHbondAcceptor = new_instancemethod(_openbabel.OBAtom_IsHbondAcceptor, None, OBAtom)
OBAtom.IsHbondAcceptorSimple = new_instancemethod(_openbabel.OBAtom_IsHbondAcceptorSimple, None, OBAtom)
OBAtom.IsHbondDonor = new_instancemethod(_openbabel.OBAtom_IsHbondDonor, None, OBAtom)
OBAtom.IsHbondDonorH = new_instancemethod(_openbabel.OBAtom_IsHbondDonorH, None, OBAtom)
OBAtom.IsMetal = new_instancemethod(_openbabel.OBAtom_IsMetal, None, OBAtom)
OBAtom.HasAlphaBetaUnsat = new_instancemethod(_openbabel.OBAtom_HasAlphaBetaUnsat, None, OBAtom)
OBAtom.HasBondOfOrder = new_instancemethod(_openbabel.OBAtom_HasBondOfOrder, None, OBAtom)
OBAtom.CountBondsOfOrder = new_instancemethod(_openbabel.OBAtom_CountBondsOfOrder, None, OBAtom)
OBAtom.HighestBondOrder = new_instancemethod(_openbabel.OBAtom_HighestBondOrder, None, OBAtom)
OBAtom.HasNonSingleBond = new_instancemethod(_openbabel.OBAtom_HasNonSingleBond, None, OBAtom)
OBAtom.HasSingleBond = new_instancemethod(_openbabel.OBAtom_HasSingleBond, None, OBAtom)
OBAtom.HasDoubleBond = new_instancemethod(_openbabel.OBAtom_HasDoubleBond, None, OBAtom)
OBAtom.HasAromaticBond = new_instancemethod(_openbabel.OBAtom_HasAromaticBond, None, OBAtom)
OBAtom.MatchesSMARTS = new_instancemethod(_openbabel.OBAtom_MatchesSMARTS, None, OBAtom)
OBAtom_swigregister = _openbabel.OBAtom_swigregister
OBAtom_swigregister(OBAtom)

OB_AROMATIC_BOND = _openbabel.OB_AROMATIC_BOND
OB_WEDGE_BOND = _openbabel.OB_WEDGE_BOND
OB_HASH_BOND = _openbabel.OB_HASH_BOND
OB_RING_BOND = _openbabel.OB_RING_BOND
OB_CLOSURE_BOND = _openbabel.OB_CLOSURE_BOND
OB_WEDGE_OR_HASH_BOND = _openbabel.OB_WEDGE_OR_HASH_BOND
class OBBond(OBBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Aromatic = _openbabel.OBBond_Aromatic
    Ring = _openbabel.OBBond_Ring
    Closure = _openbabel.OBBond_Closure
    Wedge = _openbabel.OBBond_Wedge
    Hash = _openbabel.OBBond_Hash
    WedgeOrHash = _openbabel.OBBond_WedgeOrHash
    CisOrTrans = _openbabel.OBBond_CisOrTrans
    Visit = _swig_property(_openbabel.OBBond_Visit_get, _openbabel.OBBond_Visit_set)

    def __init__(self):
        _openbabel.OBBond_swiginit(self, _openbabel.new_OBBond())
    __swig_destroy__ = _openbabel.delete_OBBond
OBBond.SetIdx = new_instancemethod(_openbabel.OBBond_SetIdx, None, OBBond)
OBBond.SetId = new_instancemethod(_openbabel.OBBond_SetId, None, OBBond)
OBBond.SetBondOrder = new_instancemethod(_openbabel.OBBond_SetBondOrder, None, OBBond)
OBBond.SetBegin = new_instancemethod(_openbabel.OBBond_SetBegin, None, OBBond)
OBBond.SetEnd = new_instancemethod(_openbabel.OBBond_SetEnd, None, OBBond)
OBBond.SetParent = new_instancemethod(_openbabel.OBBond_SetParent, None, OBBond)
OBBond.SetLength = new_instancemethod(_openbabel.OBBond_SetLength, None, OBBond)
OBBond.Set = new_instancemethod(_openbabel.OBBond_Set, None, OBBond)
OBBond.SetAromatic = new_instancemethod(_openbabel.OBBond_SetAromatic, None, OBBond)
OBBond.SetWedge = new_instancemethod(_openbabel.OBBond_SetWedge, None, OBBond)
OBBond.SetHash = new_instancemethod(_openbabel.OBBond_SetHash, None, OBBond)
OBBond.SetWedgeOrHash = new_instancemethod(_openbabel.OBBond_SetWedgeOrHash, None, OBBond)
OBBond.SetInRing = new_instancemethod(_openbabel.OBBond_SetInRing, None, OBBond)
OBBond.SetClosure = new_instancemethod(_openbabel.OBBond_SetClosure, None, OBBond)
OBBond.GetIdx = new_instancemethod(_openbabel.OBBond_GetIdx, None, OBBond)
OBBond.GetId = new_instancemethod(_openbabel.OBBond_GetId, None, OBBond)
OBBond.GetBondOrder = new_instancemethod(_openbabel.OBBond_GetBondOrder, None, OBBond)
OBBond.GetFlags = new_instancemethod(_openbabel.OBBond_GetFlags, None, OBBond)
OBBond.GetBeginAtomIdx = new_instancemethod(_openbabel.OBBond_GetBeginAtomIdx, None, OBBond)
OBBond.GetEndAtomIdx = new_instancemethod(_openbabel.OBBond_GetEndAtomIdx, None, OBBond)
OBBond.GetBeginAtom = new_instancemethod(_openbabel.OBBond_GetBeginAtom, None, OBBond)
OBBond.GetEndAtom = new_instancemethod(_openbabel.OBBond_GetEndAtom, None, OBBond)
OBBond.GetNbrAtom = new_instancemethod(_openbabel.OBBond_GetNbrAtom, None, OBBond)
OBBond.GetParent = new_instancemethod(_openbabel.OBBond_GetParent, None, OBBond)
OBBond.GetEquibLength = new_instancemethod(_openbabel.OBBond_GetEquibLength, None, OBBond)
OBBond.GetLength = new_instancemethod(_openbabel.OBBond_GetLength, None, OBBond)
OBBond.GetNbrAtomIdx = new_instancemethod(_openbabel.OBBond_GetNbrAtomIdx, None, OBBond)
OBBond.FindSmallestRing = new_instancemethod(_openbabel.OBBond_FindSmallestRing, None, OBBond)
OBBond.IsAromatic = new_instancemethod(_openbabel.OBBond_IsAromatic, None, OBBond)
OBBond.IsInRing = new_instancemethod(_openbabel.OBBond_IsInRing, None, OBBond)
OBBond.IsRotor = new_instancemethod(_openbabel.OBBond_IsRotor, None, OBBond)
OBBond.IsPeriodic = new_instancemethod(_openbabel.OBBond_IsPeriodic, None, OBBond)
OBBond.IsAmide = new_instancemethod(_openbabel.OBBond_IsAmide, None, OBBond)
OBBond.IsPrimaryAmide = new_instancemethod(_openbabel.OBBond_IsPrimaryAmide, None, OBBond)
OBBond.IsSecondaryAmide = new_instancemethod(_openbabel.OBBond_IsSecondaryAmide, None, OBBond)
OBBond.IsTertiaryAmide = new_instancemethod(_openbabel.OBBond_IsTertiaryAmide, None, OBBond)
OBBond.IsEster = new_instancemethod(_openbabel.OBBond_IsEster, None, OBBond)
OBBond.IsCarbonyl = new_instancemethod(_openbabel.OBBond_IsCarbonyl, None, OBBond)
OBBond.IsClosure = new_instancemethod(_openbabel.OBBond_IsClosure, None, OBBond)
OBBond.IsWedge = new_instancemethod(_openbabel.OBBond_IsWedge, None, OBBond)
OBBond.IsHash = new_instancemethod(_openbabel.OBBond_IsHash, None, OBBond)
OBBond.IsWedgeOrHash = new_instancemethod(_openbabel.OBBond_IsWedgeOrHash, None, OBBond)
OBBond.IsCisOrTrans = new_instancemethod(_openbabel.OBBond_IsCisOrTrans, None, OBBond)
OBBond.IsDoubleBondGeometry = new_instancemethod(_openbabel.OBBond_IsDoubleBondGeometry, None, OBBond)
OBBond_swigregister = _openbabel.OBBond_swigregister
OBBond_swigregister(OBBond)

class OBReaction(OBBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBReaction_swiginit(self, _openbabel.new_OBReaction())
    ClassDescription = staticmethod(_openbabel.OBReaction_ClassDescription)
    __swig_destroy__ = _openbabel.delete_OBReaction
OBReaction.NumReactants = new_instancemethod(_openbabel.OBReaction_NumReactants, None, OBReaction)
OBReaction.NumProducts = new_instancemethod(_openbabel.OBReaction_NumProducts, None, OBReaction)
OBReaction.NumAgents = new_instancemethod(_openbabel.OBReaction_NumAgents, None, OBReaction)
OBReaction.AddReactant = new_instancemethod(_openbabel.OBReaction_AddReactant, None, OBReaction)
OBReaction.AddProduct = new_instancemethod(_openbabel.OBReaction_AddProduct, None, OBReaction)
OBReaction.SetTransitionState = new_instancemethod(_openbabel.OBReaction_SetTransitionState, None, OBReaction)
OBReaction.AddAgent = new_instancemethod(_openbabel.OBReaction_AddAgent, None, OBReaction)
OBReaction.GetReactant = new_instancemethod(_openbabel.OBReaction_GetReactant, None, OBReaction)
OBReaction.GetProduct = new_instancemethod(_openbabel.OBReaction_GetProduct, None, OBReaction)
OBReaction.GetAgent = new_instancemethod(_openbabel.OBReaction_GetAgent, None, OBReaction)
OBReaction.GetTransitionState = new_instancemethod(_openbabel.OBReaction_GetTransitionState, None, OBReaction)
OBReaction.GetTitle = new_instancemethod(_openbabel.OBReaction_GetTitle, None, OBReaction)
OBReaction.GetComment = new_instancemethod(_openbabel.OBReaction_GetComment, None, OBReaction)
OBReaction.SetTitle = new_instancemethod(_openbabel.OBReaction_SetTitle, None, OBReaction)
OBReaction.SetComment = new_instancemethod(_openbabel.OBReaction_SetComment, None, OBReaction)
OBReaction.IsReversible = new_instancemethod(_openbabel.OBReaction_IsReversible, None, OBReaction)
OBReaction.SetReversible = new_instancemethod(_openbabel.OBReaction_SetReversible, None, OBReaction)
OBReaction_swigregister = _openbabel.OBReaction_swigregister
OBReaction_swigregister(OBReaction)

def OBReaction_ClassDescription():
    return _openbabel.OBReaction_ClassDescription()
OBReaction_ClassDescription = _openbabel.OBReaction_ClassDescription

NO_REACTIONROLE = _openbabel.NO_REACTIONROLE
REACTANT = _openbabel.REACTANT
AGENT = _openbabel.AGENT
PRODUCT = _openbabel.PRODUCT
class OBReactionFacade(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, mol):
        _openbabel.OBReactionFacade_swiginit(self, _openbabel.new_OBReactionFacade(mol))
    __swig_destroy__ = _openbabel.delete_OBReactionFacade
OBReactionFacade.AssignComponentIds = new_instancemethod(_openbabel.OBReactionFacade_AssignComponentIds, None, OBReactionFacade)
OBReactionFacade.GetRole = new_instancemethod(_openbabel.OBReactionFacade_GetRole, None, OBReactionFacade)
OBReactionFacade.GetComponentId = new_instancemethod(_openbabel.OBReactionFacade_GetComponentId, None, OBReactionFacade)
OBReactionFacade.SetRole = new_instancemethod(_openbabel.OBReactionFacade_SetRole, None, OBReactionFacade)
OBReactionFacade.SetComponentId = new_instancemethod(_openbabel.OBReactionFacade_SetComponentId, None, OBReactionFacade)
OBReactionFacade.IsValid = new_instancemethod(_openbabel.OBReactionFacade_IsValid, None, OBReactionFacade)
OBReactionFacade.AddComponent = new_instancemethod(_openbabel.OBReactionFacade_AddComponent, None, OBReactionFacade)
OBReactionFacade.ClearInternalState = new_instancemethod(_openbabel.OBReactionFacade_ClearInternalState, None, OBReactionFacade)
OBReactionFacade.GetComponent = new_instancemethod(_openbabel.OBReactionFacade_GetComponent, None, OBReactionFacade)
OBReactionFacade.NumComponents = new_instancemethod(_openbabel.OBReactionFacade_NumComponents, None, OBReactionFacade)
OBReactionFacade.ReassignComponent = new_instancemethod(_openbabel.OBReactionFacade_ReassignComponent, None, OBReactionFacade)
OBReactionFacade_swigregister = _openbabel.OBReactionFacade_swigregister
OBReactionFacade_swigregister(OBReactionFacade)


def exceptionIter(*args):
    raise Exception("""\nThis method can only be used from C++. To iterate from Python
use the Iter classes (OBMolAtomIter, etc.) as described at
http://openbabel.org/wiki/Python""")

OB_SSSR_MOL = _openbabel.OB_SSSR_MOL
OB_RINGFLAGS_MOL = _openbabel.OB_RINGFLAGS_MOL
OB_AROMATIC_MOL = _openbabel.OB_AROMATIC_MOL
OB_ATOMTYPES_MOL = _openbabel.OB_ATOMTYPES_MOL
OB_CHIRALITY_MOL = _openbabel.OB_CHIRALITY_MOL
OB_PCHARGE_MOL = _openbabel.OB_PCHARGE_MOL
OB_HYBRID_MOL = _openbabel.OB_HYBRID_MOL
OB_CLOSURE_MOL = _openbabel.OB_CLOSURE_MOL
OB_H_ADDED_MOL = _openbabel.OB_H_ADDED_MOL
OB_PH_CORRECTED_MOL = _openbabel.OB_PH_CORRECTED_MOL
OB_CHAINS_MOL = _openbabel.OB_CHAINS_MOL
OB_TCHARGE_MOL = _openbabel.OB_TCHARGE_MOL
OB_TSPIN_MOL = _openbabel.OB_TSPIN_MOL
OB_RINGTYPES_MOL = _openbabel.OB_RINGTYPES_MOL
OB_PATTERN_STRUCTURE = _openbabel.OB_PATTERN_STRUCTURE
OB_LSSR_MOL = _openbabel.OB_LSSR_MOL
OB_ATOMSPIN_MOL = _openbabel.OB_ATOMSPIN_MOL
OB_REACTION_MOL = _openbabel.OB_REACTION_MOL
OB_PERIODIC_MOL = _openbabel.OB_PERIODIC_MOL
OB_CURRENT_CONFORMER = _openbabel.OB_CURRENT_CONFORMER
AllHydrogen = _openbabel.AllHydrogen
PolarHydrogen = _openbabel.PolarHydrogen
NonPolarHydrogen = _openbabel.NonPolarHydrogen
class OBMol(OBBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBMol_swiginit(self, _openbabel.new_OBMol(*args))
    __swig_destroy__ = _openbabel.delete_OBMol
    ClassDescription = staticmethod(_openbabel.OBMol_ClassDescription)
OBMol.__iadd__ = new_instancemethod(_openbabel.OBMol___iadd__, None, OBMol)
OBMol.ReserveAtoms = new_instancemethod(_openbabel.OBMol_ReserveAtoms, None, OBMol)
OBMol.DestroyAtom = new_instancemethod(_openbabel.OBMol_DestroyAtom, None, OBMol)
OBMol.DestroyBond = new_instancemethod(_openbabel.OBMol_DestroyBond, None, OBMol)
OBMol.DestroyResidue = new_instancemethod(_openbabel.OBMol_DestroyResidue, None, OBMol)
OBMol.AddAtom = new_instancemethod(_openbabel.OBMol_AddAtom, None, OBMol)
OBMol.InsertAtom = new_instancemethod(_openbabel.OBMol_InsertAtom, None, OBMol)
OBMol.AddBond = new_instancemethod(_openbabel.OBMol_AddBond, None, OBMol)
OBMol.AddResidue = new_instancemethod(_openbabel.OBMol_AddResidue, None, OBMol)
OBMol.NewAtom = new_instancemethod(_openbabel.OBMol_NewAtom, None, OBMol)
OBMol.NewBond = new_instancemethod(_openbabel.OBMol_NewBond, None, OBMol)
OBMol.NewResidue = new_instancemethod(_openbabel.OBMol_NewResidue, None, OBMol)
OBMol.DeleteAtom = new_instancemethod(_openbabel.OBMol_DeleteAtom, None, OBMol)
OBMol.DeleteBond = new_instancemethod(_openbabel.OBMol_DeleteBond, None, OBMol)
OBMol.DeleteResidue = new_instancemethod(_openbabel.OBMol_DeleteResidue, None, OBMol)
OBMol.BeginModify = new_instancemethod(_openbabel.OBMol_BeginModify, None, OBMol)
OBMol.EndModify = new_instancemethod(_openbabel.OBMol_EndModify, None, OBMol)
OBMol.GetMod = new_instancemethod(_openbabel.OBMol_GetMod, None, OBMol)
OBMol.IncrementMod = new_instancemethod(_openbabel.OBMol_IncrementMod, None, OBMol)
OBMol.DecrementMod = new_instancemethod(_openbabel.OBMol_DecrementMod, None, OBMol)
OBMol.GetFlags = new_instancemethod(_openbabel.OBMol_GetFlags, None, OBMol)
OBMol.GetTitle = new_instancemethod(_openbabel.OBMol_GetTitle, None, OBMol)
OBMol.NumAtoms = new_instancemethod(_openbabel.OBMol_NumAtoms, None, OBMol)
OBMol.NumBonds = new_instancemethod(_openbabel.OBMol_NumBonds, None, OBMol)
OBMol.NumHvyAtoms = new_instancemethod(_openbabel.OBMol_NumHvyAtoms, None, OBMol)
OBMol.NumResidues = new_instancemethod(_openbabel.OBMol_NumResidues, None, OBMol)
OBMol.NumRotors = new_instancemethod(_openbabel.OBMol_NumRotors, None, OBMol)
OBMol.GetAtom = new_instancemethod(_openbabel.OBMol_GetAtom, None, OBMol)
OBMol.GetAtomById = new_instancemethod(_openbabel.OBMol_GetAtomById, None, OBMol)
OBMol.GetFirstAtom = new_instancemethod(_openbabel.OBMol_GetFirstAtom, None, OBMol)
OBMol.GetBondById = new_instancemethod(_openbabel.OBMol_GetBondById, None, OBMol)
OBMol.GetBond = new_instancemethod(_openbabel.OBMol_GetBond, None, OBMol)
OBMol.GetResidue = new_instancemethod(_openbabel.OBMol_GetResidue, None, OBMol)
OBMol.GetInternalCoord = new_instancemethod(_openbabel.OBMol_GetInternalCoord, None, OBMol)
OBMol.GetTorsion = new_instancemethod(_openbabel.OBMol_GetTorsion, None, OBMol)
OBMol.GetAngle = new_instancemethod(_openbabel.OBMol_GetAngle, None, OBMol)
OBMol.AreInSameRing = new_instancemethod(_openbabel.OBMol_AreInSameRing, None, OBMol)
OBMol.GetFormula = new_instancemethod(_openbabel.OBMol_GetFormula, None, OBMol)
OBMol.GetSpacedFormula = new_instancemethod(_openbabel.OBMol_GetSpacedFormula, None, OBMol)
OBMol.GetMolWt = new_instancemethod(_openbabel.OBMol_GetMolWt, None, OBMol)
OBMol.GetExactMass = new_instancemethod(_openbabel.OBMol_GetExactMass, None, OBMol)
OBMol.GetTotalCharge = new_instancemethod(_openbabel.OBMol_GetTotalCharge, None, OBMol)
OBMol.GetTotalSpinMultiplicity = new_instancemethod(_openbabel.OBMol_GetTotalSpinMultiplicity, None, OBMol)
OBMol.GetDimension = new_instancemethod(_openbabel.OBMol_GetDimension, None, OBMol)
OBMol.GetCoordinates = new_instancemethod(_openbabel.OBMol_GetCoordinates, None, OBMol)
OBMol.GetSSSR = new_instancemethod(_openbabel.OBMol_GetSSSR, None, OBMol)
OBMol.GetLSSR = new_instancemethod(_openbabel.OBMol_GetLSSR, None, OBMol)
OBMol.AutomaticFormalCharge = new_instancemethod(_openbabel.OBMol_AutomaticFormalCharge, None, OBMol)
OBMol.AutomaticPartialCharge = new_instancemethod(_openbabel.OBMol_AutomaticPartialCharge, None, OBMol)
OBMol.SetTitle = new_instancemethod(_openbabel.OBMol_SetTitle, None, OBMol)
OBMol.SetFormula = new_instancemethod(_openbabel.OBMol_SetFormula, None, OBMol)
OBMol.SetEnergy = new_instancemethod(_openbabel.OBMol_SetEnergy, None, OBMol)
OBMol.SetDimension = new_instancemethod(_openbabel.OBMol_SetDimension, None, OBMol)
OBMol.SetTotalCharge = new_instancemethod(_openbabel.OBMol_SetTotalCharge, None, OBMol)
OBMol.SetTotalSpinMultiplicity = new_instancemethod(_openbabel.OBMol_SetTotalSpinMultiplicity, None, OBMol)
OBMol.SetInternalCoord = new_instancemethod(_openbabel.OBMol_SetInternalCoord, None, OBMol)
OBMol.SetAutomaticFormalCharge = new_instancemethod(_openbabel.OBMol_SetAutomaticFormalCharge, None, OBMol)
OBMol.SetAutomaticPartialCharge = new_instancemethod(_openbabel.OBMol_SetAutomaticPartialCharge, None, OBMol)
OBMol.SetAromaticPerceived = new_instancemethod(_openbabel.OBMol_SetAromaticPerceived, None, OBMol)
OBMol.SetSSSRPerceived = new_instancemethod(_openbabel.OBMol_SetSSSRPerceived, None, OBMol)
OBMol.SetLSSRPerceived = new_instancemethod(_openbabel.OBMol_SetLSSRPerceived, None, OBMol)
OBMol.SetRingAtomsAndBondsPerceived = new_instancemethod(_openbabel.OBMol_SetRingAtomsAndBondsPerceived, None, OBMol)
OBMol.SetAtomTypesPerceived = new_instancemethod(_openbabel.OBMol_SetAtomTypesPerceived, None, OBMol)
OBMol.SetRingTypesPerceived = new_instancemethod(_openbabel.OBMol_SetRingTypesPerceived, None, OBMol)
OBMol.SetChainsPerceived = new_instancemethod(_openbabel.OBMol_SetChainsPerceived, None, OBMol)
OBMol.SetChiralityPerceived = new_instancemethod(_openbabel.OBMol_SetChiralityPerceived, None, OBMol)
OBMol.SetPartialChargesPerceived = new_instancemethod(_openbabel.OBMol_SetPartialChargesPerceived, None, OBMol)
OBMol.SetHybridizationPerceived = new_instancemethod(_openbabel.OBMol_SetHybridizationPerceived, None, OBMol)
OBMol.SetClosureBondsPerceived = new_instancemethod(_openbabel.OBMol_SetClosureBondsPerceived, None, OBMol)
OBMol.SetHydrogensAdded = new_instancemethod(_openbabel.OBMol_SetHydrogensAdded, None, OBMol)
OBMol.SetCorrectedForPH = new_instancemethod(_openbabel.OBMol_SetCorrectedForPH, None, OBMol)
OBMol.SetSpinMultiplicityAssigned = new_instancemethod(_openbabel.OBMol_SetSpinMultiplicityAssigned, None, OBMol)
OBMol.SetIsPatternStructure = new_instancemethod(_openbabel.OBMol_SetIsPatternStructure, None, OBMol)
OBMol.SetIsReaction = new_instancemethod(_openbabel.OBMol_SetIsReaction, None, OBMol)
OBMol.SetPeriodicMol = new_instancemethod(_openbabel.OBMol_SetPeriodicMol, None, OBMol)
OBMol.HasFlag = new_instancemethod(_openbabel.OBMol_HasFlag, None, OBMol)
OBMol.SetFlag = new_instancemethod(_openbabel.OBMol_SetFlag, None, OBMol)
OBMol.UnsetFlag = new_instancemethod(_openbabel.OBMol_UnsetFlag, None, OBMol)
OBMol.SetFlags = new_instancemethod(_openbabel.OBMol_SetFlags, None, OBMol)
OBMol.RenumberAtoms = new_instancemethod(_openbabel.OBMol_RenumberAtoms, None, OBMol)
OBMol.SetCoordinates = new_instancemethod(_openbabel.OBMol_SetCoordinates, None, OBMol)
OBMol.ToInertialFrame = new_instancemethod(_openbabel.OBMol_ToInertialFrame, None, OBMol)
OBMol.Translate = new_instancemethod(_openbabel.OBMol_Translate, None, OBMol)
OBMol.Rotate = new_instancemethod(_openbabel.OBMol_Rotate, None, OBMol)
OBMol.DeleteHydrogens = new_instancemethod(_openbabel.OBMol_DeleteHydrogens, None, OBMol)
OBMol.DeletePolarHydrogens = new_instancemethod(_openbabel.OBMol_DeletePolarHydrogens, None, OBMol)
OBMol.DeleteNonPolarHydrogens = new_instancemethod(_openbabel.OBMol_DeleteNonPolarHydrogens, None, OBMol)
OBMol.DeleteHydrogen = new_instancemethod(_openbabel.OBMol_DeleteHydrogen, None, OBMol)
OBMol.AddHydrogens = new_instancemethod(_openbabel.OBMol_AddHydrogens, None, OBMol)
OBMol.AddPolarHydrogens = new_instancemethod(_openbabel.OBMol_AddPolarHydrogens, None, OBMol)
OBMol.AddNonPolarHydrogens = new_instancemethod(_openbabel.OBMol_AddNonPolarHydrogens, None, OBMol)
OBMol.AddNewHydrogens = new_instancemethod(_openbabel.OBMol_AddNewHydrogens, None, OBMol)
OBMol.StripSalts = new_instancemethod(_openbabel.OBMol_StripSalts, None, OBMol)
OBMol.Separate = new_instancemethod(_openbabel.OBMol_Separate, None, OBMol)
OBMol.GetNextFragment = new_instancemethod(_openbabel.OBMol_GetNextFragment, None, OBMol)
OBMol.CopySubstructure = new_instancemethod(_openbabel.OBMol_CopySubstructure, None, OBMol)
OBMol.ConvertDativeBonds = new_instancemethod(_openbabel.OBMol_ConvertDativeBonds, None, OBMol)
OBMol.MakeDativeBonds = new_instancemethod(_openbabel.OBMol_MakeDativeBonds, None, OBMol)
OBMol.ConvertZeroBonds = new_instancemethod(_openbabel.OBMol_ConvertZeroBonds, None, OBMol)
OBMol.CorrectForPH = new_instancemethod(_openbabel.OBMol_CorrectForPH, None, OBMol)
OBMol.AssignSpinMultiplicity = new_instancemethod(_openbabel.OBMol_AssignSpinMultiplicity, None, OBMol)
OBMol.AssignTotalChargeToAtoms = new_instancemethod(_openbabel.OBMol_AssignTotalChargeToAtoms, None, OBMol)
OBMol.Center = new_instancemethod(_openbabel.OBMol_Center, None, OBMol)
OBMol.FindSSSR = new_instancemethod(_openbabel.OBMol_FindSSSR, None, OBMol)
OBMol.FindLSSR = new_instancemethod(_openbabel.OBMol_FindLSSR, None, OBMol)
OBMol.FindRingAtomsAndBonds = new_instancemethod(_openbabel.OBMol_FindRingAtomsAndBonds, None, OBMol)
OBMol.FindChildren = new_instancemethod(_openbabel.OBMol_FindChildren, None, OBMol)
OBMol.FindLargestFragment = new_instancemethod(_openbabel.OBMol_FindLargestFragment, None, OBMol)
OBMol.ContigFragList = new_instancemethod(_openbabel.OBMol_ContigFragList, None, OBMol)
OBMol.Align = new_instancemethod(_openbabel.OBMol_Align, None, OBMol)
OBMol.ConnectTheDots = new_instancemethod(_openbabel.OBMol_ConnectTheDots, None, OBMol)
OBMol.PerceiveBondOrders = new_instancemethod(_openbabel.OBMol_PerceiveBondOrders, None, OBMol)
OBMol.FindAngles = new_instancemethod(_openbabel.OBMol_FindAngles, None, OBMol)
OBMol.FindTorsions = new_instancemethod(_openbabel.OBMol_FindTorsions, None, OBMol)
OBMol.GetGTDVector = new_instancemethod(_openbabel.OBMol_GetGTDVector, None, OBMol)
OBMol.GetGIVector = new_instancemethod(_openbabel.OBMol_GetGIVector, None, OBMol)
OBMol.GetGIDVector = new_instancemethod(_openbabel.OBMol_GetGIDVector, None, OBMol)
OBMol.Has2D = new_instancemethod(_openbabel.OBMol_Has2D, None, OBMol)
OBMol.Has3D = new_instancemethod(_openbabel.OBMol_Has3D, None, OBMol)
OBMol.HasNonZeroCoords = new_instancemethod(_openbabel.OBMol_HasNonZeroCoords, None, OBMol)
OBMol.HasAromaticPerceived = new_instancemethod(_openbabel.OBMol_HasAromaticPerceived, None, OBMol)
OBMol.HasSSSRPerceived = new_instancemethod(_openbabel.OBMol_HasSSSRPerceived, None, OBMol)
OBMol.HasLSSRPerceived = new_instancemethod(_openbabel.OBMol_HasLSSRPerceived, None, OBMol)
OBMol.HasRingAtomsAndBondsPerceived = new_instancemethod(_openbabel.OBMol_HasRingAtomsAndBondsPerceived, None, OBMol)
OBMol.HasAtomTypesPerceived = new_instancemethod(_openbabel.OBMol_HasAtomTypesPerceived, None, OBMol)
OBMol.HasRingTypesPerceived = new_instancemethod(_openbabel.OBMol_HasRingTypesPerceived, None, OBMol)
OBMol.HasChiralityPerceived = new_instancemethod(_openbabel.OBMol_HasChiralityPerceived, None, OBMol)
OBMol.HasPartialChargesPerceived = new_instancemethod(_openbabel.OBMol_HasPartialChargesPerceived, None, OBMol)
OBMol.HasHybridizationPerceived = new_instancemethod(_openbabel.OBMol_HasHybridizationPerceived, None, OBMol)
OBMol.HasClosureBondsPerceived = new_instancemethod(_openbabel.OBMol_HasClosureBondsPerceived, None, OBMol)
OBMol.HasChainsPerceived = new_instancemethod(_openbabel.OBMol_HasChainsPerceived, None, OBMol)
OBMol.HasHydrogensAdded = new_instancemethod(_openbabel.OBMol_HasHydrogensAdded, None, OBMol)
OBMol.IsCorrectedForPH = new_instancemethod(_openbabel.OBMol_IsCorrectedForPH, None, OBMol)
OBMol.HasSpinMultiplicityAssigned = new_instancemethod(_openbabel.OBMol_HasSpinMultiplicityAssigned, None, OBMol)
OBMol.IsReaction = new_instancemethod(_openbabel.OBMol_IsReaction, None, OBMol)
OBMol.IsPeriodic = new_instancemethod(_openbabel.OBMol_IsPeriodic, None, OBMol)
OBMol.Empty = new_instancemethod(_openbabel.OBMol_Empty, None, OBMol)
OBMol.NumConformers = new_instancemethod(_openbabel.OBMol_NumConformers, None, OBMol)
OBMol.SetConformers = new_instancemethod(_openbabel.OBMol_SetConformers, None, OBMol)
OBMol.AddConformer = new_instancemethod(_openbabel.OBMol_AddConformer, None, OBMol)
OBMol.SetConformer = new_instancemethod(_openbabel.OBMol_SetConformer, None, OBMol)
OBMol.CopyConformer = new_instancemethod(_openbabel.OBMol_CopyConformer, None, OBMol)
OBMol.DeleteConformer = new_instancemethod(_openbabel.OBMol_DeleteConformer, None, OBMol)
OBMol.GetConformer = new_instancemethod(_openbabel.OBMol_GetConformer, None, OBMol)
OBMol.SetEnergies = new_instancemethod(_openbabel.OBMol_SetEnergies, None, OBMol)
OBMol.GetEnergies = new_instancemethod(_openbabel.OBMol_GetEnergies, None, OBMol)
OBMol.GetEnergy = new_instancemethod(_openbabel.OBMol_GetEnergy, None, OBMol)
OBMol.BeginConformer = new_instancemethod(_openbabel.OBMol_BeginConformer, None, OBMol)
OBMol.NextConformer = new_instancemethod(_openbabel.OBMol_NextConformer, None, OBMol)
OBMol.GetConformers = new_instancemethod(_openbabel.OBMol_GetConformers, None, OBMol)
OBMol.BeginInternalCoord = new_instancemethod(_openbabel.OBMol_BeginInternalCoord, None, OBMol)
OBMol.NextInternalCoord = new_instancemethod(_openbabel.OBMol_NextInternalCoord, None, OBMol)
OBMol.SetTorsion = new_instancemethod(_openbabel.OBMol_SetTorsion, None, OBMol)
OBMol_swigregister = _openbabel.OBMol_swigregister
OBMol_swigregister(OBMol)

def OBMol_ClassDescription():
    return _openbabel.OBMol_ClassDescription()
OBMol_ClassDescription = _openbabel.OBMol_ClassDescription


def ThrowError(*args):
    return _openbabel.ThrowError(*args)
ThrowError = _openbabel.ThrowError

def CartesianToInternal(arg1, arg2):
    return _openbabel.CartesianToInternal(arg1, arg2)
CartesianToInternal = _openbabel.CartesianToInternal

def InternalToCartesian(arg1, arg2):
    return _openbabel.InternalToCartesian(arg1, arg2)
InternalToCartesian = _openbabel.InternalToCartesian

def NewExtension(arg1, arg2):
    return _openbabel.NewExtension(arg1, arg2)
NewExtension = _openbabel.NewExtension
BUFF_SIZE = _openbabel.BUFF_SIZE

def get_rmat(arg1, arg2, arg3, arg4):
    return _openbabel.get_rmat(arg1, arg2, arg3, arg4)
get_rmat = _openbabel.get_rmat

def ob_make_rmat(mat, rmat):
    return _openbabel.ob_make_rmat(mat, rmat)
ob_make_rmat = _openbabel.ob_make_rmat

def qtrfit(r, f, size, u):
    return _openbabel.qtrfit(r, f, size, u)
qtrfit = _openbabel.qtrfit

def superimpose(arg1, arg2, arg3):
    return _openbabel.superimpose(arg1, arg2, arg3)
superimpose = _openbabel.superimpose

OBMol.BeginAtoms = OBMol.EndAtoms = OBMol.BeginAtom = OBMol.EndAtom = exceptionIter
OBMol.BeginBonds = OBMol.EndBonds = OBMol.BeginBond = OBMol.EndBond = exceptionIter
OBMol.BeginResidues = OBMol.EndResidues = OBMol.BeginResidue = OBMol.EndResidue = exceptionIter

class OBRing(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    ring_id = _swig_property(_openbabel.OBRing_ring_id_get, _openbabel.OBRing_ring_id_set)
    _path = _swig_property(_openbabel.OBRing__path_get, _openbabel.OBRing__path_set)
    _pathset = _swig_property(_openbabel.OBRing__pathset_get, _openbabel.OBRing__pathset_set)

    def __init__(self, *args):
        _openbabel.OBRing_swiginit(self, _openbabel.new_OBRing(*args))
    __swig_destroy__ = _openbabel.delete_OBRing
OBRing.Size = new_instancemethod(_openbabel.OBRing_Size, None, OBRing)
OBRing.PathSize = new_instancemethod(_openbabel.OBRing_PathSize, None, OBRing)
OBRing.IsAromatic = new_instancemethod(_openbabel.OBRing_IsAromatic, None, OBRing)
OBRing.SetType = new_instancemethod(_openbabel.OBRing_SetType, None, OBRing)
OBRing.GetType = new_instancemethod(_openbabel.OBRing_GetType, None, OBRing)
OBRing.GetRootAtom = new_instancemethod(_openbabel.OBRing_GetRootAtom, None, OBRing)
OBRing.IsMember = new_instancemethod(_openbabel.OBRing_IsMember, None, OBRing)
OBRing.IsInRing = new_instancemethod(_openbabel.OBRing_IsInRing, None, OBRing)
OBRing.SetParent = new_instancemethod(_openbabel.OBRing_SetParent, None, OBRing)
OBRing.GetParent = new_instancemethod(_openbabel.OBRing_GetParent, None, OBRing)
OBRing.findCenterAndNormal = new_instancemethod(_openbabel.OBRing_findCenterAndNormal, None, OBRing)
OBRing_swigregister = _openbabel.OBRing_swigregister
OBRing_swigregister(OBRing)
NoId = cvar.NoId


def CompareRingSize(arg1, arg2):
    return _openbabel.CompareRingSize(arg1, arg2)
CompareRingSize = _openbabel.CompareRingSize
class OBRingSearch(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRingSearch_swiginit(self, _openbabel.new_OBRingSearch())
    __swig_destroy__ = _openbabel.delete_OBRingSearch
OBRingSearch.SortRings = new_instancemethod(_openbabel.OBRingSearch_SortRings, None, OBRingSearch)
OBRingSearch.RemoveRedundant = new_instancemethod(_openbabel.OBRingSearch_RemoveRedundant, None, OBRingSearch)
OBRingSearch.AddRingFromClosure = new_instancemethod(_openbabel.OBRingSearch_AddRingFromClosure, None, OBRingSearch)
OBRingSearch.SaveUniqueRing = new_instancemethod(_openbabel.OBRingSearch_SaveUniqueRing, None, OBRingSearch)
OBRingSearch.WriteRings = new_instancemethod(_openbabel.OBRingSearch_WriteRings, None, OBRingSearch)
OBRingSearch.BeginRings = new_instancemethod(_openbabel.OBRingSearch_BeginRings, None, OBRingSearch)
OBRingSearch.EndRings = new_instancemethod(_openbabel.OBRingSearch_EndRings, None, OBRingSearch)
OBRingSearch_swigregister = _openbabel.OBRingSearch_swigregister
OBRingSearch_swigregister(OBRingSearch)

class OBRTree(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, arg2, arg3):
        _openbabel.OBRTree_swiginit(self, _openbabel.new_OBRTree(arg2, arg3))
    __swig_destroy__ = _openbabel.delete_OBRTree
OBRTree.GetAtomIdx = new_instancemethod(_openbabel.OBRTree_GetAtomIdx, None, OBRTree)
OBRTree.PathToRoot = new_instancemethod(_openbabel.OBRTree_PathToRoot, None, OBRTree)
OBRTree_swigregister = _openbabel.OBRTree_swigregister
OBRTree_swigregister(OBRTree)

class OBSmartsPattern(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBSmartsPattern

    def __init__(self, *args):
        _openbabel.OBSmartsPattern_swiginit(self, _openbabel.new_OBSmartsPattern(*args))
    All = _openbabel.OBSmartsPattern_All
    Single = _openbabel.OBSmartsPattern_Single
    AllUnique = _openbabel.OBSmartsPattern_AllUnique
OBSmartsPattern.Init = new_instancemethod(_openbabel.OBSmartsPattern_Init, None, OBSmartsPattern)
OBSmartsPattern.GetSMARTS = new_instancemethod(_openbabel.OBSmartsPattern_GetSMARTS, None, OBSmartsPattern)
OBSmartsPattern.Empty = new_instancemethod(_openbabel.OBSmartsPattern_Empty, None, OBSmartsPattern)
OBSmartsPattern.IsValid = new_instancemethod(_openbabel.OBSmartsPattern_IsValid, None, OBSmartsPattern)
OBSmartsPattern.NumAtoms = new_instancemethod(_openbabel.OBSmartsPattern_NumAtoms, None, OBSmartsPattern)
OBSmartsPattern.NumBonds = new_instancemethod(_openbabel.OBSmartsPattern_NumBonds, None, OBSmartsPattern)
OBSmartsPattern.GetBond = new_instancemethod(_openbabel.OBSmartsPattern_GetBond, None, OBSmartsPattern)
OBSmartsPattern.GetAtomicNum = new_instancemethod(_openbabel.OBSmartsPattern_GetAtomicNum, None, OBSmartsPattern)
OBSmartsPattern.GetCharge = new_instancemethod(_openbabel.OBSmartsPattern_GetCharge, None, OBSmartsPattern)
OBSmartsPattern.GetVectorBinding = new_instancemethod(_openbabel.OBSmartsPattern_GetVectorBinding, None, OBSmartsPattern)
OBSmartsPattern.Match = new_instancemethod(_openbabel.OBSmartsPattern_Match, None, OBSmartsPattern)
OBSmartsPattern.HasMatch = new_instancemethod(_openbabel.OBSmartsPattern_HasMatch, None, OBSmartsPattern)
OBSmartsPattern.RestrictedMatch = new_instancemethod(_openbabel.OBSmartsPattern_RestrictedMatch, None, OBSmartsPattern)
OBSmartsPattern.NumMatches = new_instancemethod(_openbabel.OBSmartsPattern_NumMatches, None, OBSmartsPattern)
OBSmartsPattern.GetMapList = new_instancemethod(_openbabel.OBSmartsPattern_GetMapList, None, OBSmartsPattern)
OBSmartsPattern.BeginMList = new_instancemethod(_openbabel.OBSmartsPattern_BeginMList, None, OBSmartsPattern)
OBSmartsPattern.EndMList = new_instancemethod(_openbabel.OBSmartsPattern_EndMList, None, OBSmartsPattern)
OBSmartsPattern.GetUMapList = new_instancemethod(_openbabel.OBSmartsPattern_GetUMapList, None, OBSmartsPattern)
OBSmartsPattern.WriteMapList = new_instancemethod(_openbabel.OBSmartsPattern_WriteMapList, None, OBSmartsPattern)
OBSmartsPattern_swigregister = _openbabel.OBSmartsPattern_swigregister
OBSmartsPattern_swigregister(OBSmartsPattern)

class OBSmartsMatcher(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBSmartsMatcher_swiginit(self, _openbabel.new_OBSmartsMatcher())
    __swig_destroy__ = _openbabel.delete_OBSmartsMatcher
OBSmartsMatcher.match = new_instancemethod(_openbabel.OBSmartsMatcher_match, None, OBSmartsMatcher)
OBSmartsMatcher_swigregister = _openbabel.OBSmartsMatcher_swigregister
OBSmartsMatcher_swigregister(OBSmartsMatcher)

class OBSSMatch(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, arg2, arg3):
        _openbabel.OBSSMatch_swiginit(self, _openbabel.new_OBSSMatch(arg2, arg3))
    __swig_destroy__ = _openbabel.delete_OBSSMatch
OBSSMatch.Match = new_instancemethod(_openbabel.OBSSMatch_Match, None, OBSSMatch)
OBSSMatch_swigregister = _openbabel.OBSSMatch_swigregister
OBSSMatch_swigregister(OBSSMatch)


def SmartsLexReplace(arg1, arg2):
    return _openbabel.SmartsLexReplace(arg1, arg2)
SmartsLexReplace = _openbabel.SmartsLexReplace
class AliasData(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.AliasData_swiginit(self, _openbabel.new_AliasData())
    RevertToAliasForm = staticmethod(_openbabel.AliasData_RevertToAliasForm)
    __swig_destroy__ = _openbabel.delete_AliasData
AliasData.SetAlias = new_instancemethod(_openbabel.AliasData_SetAlias, None, AliasData)
AliasData.GetAlias = new_instancemethod(_openbabel.AliasData_GetAlias, None, AliasData)
AliasData.GetColor = new_instancemethod(_openbabel.AliasData_GetColor, None, AliasData)
AliasData.SetColor = new_instancemethod(_openbabel.AliasData_SetColor, None, AliasData)
AliasData.IsExpanded = new_instancemethod(_openbabel.AliasData_IsExpanded, None, AliasData)
AliasData.Expand = new_instancemethod(_openbabel.AliasData_Expand, None, AliasData)
AliasData_swigregister = _openbabel.AliasData_swigregister
AliasData_swigregister(AliasData)
AliasDataType = cvar.AliasDataType

def AliasData_RevertToAliasForm(mol):
    return _openbabel.AliasData_RevertToAliasForm(mol)
AliasData_RevertToAliasForm = _openbabel.AliasData_RevertToAliasForm

class OBFingerprint(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBFingerprint_Default)
    FindType = staticmethod(_openbabel.OBFingerprint_FindType)
    __swig_destroy__ = _openbabel.delete_OBFingerprint
    FPT_UNIQUEBITS = _openbabel.OBFingerprint_FPT_UNIQUEBITS
    FPT_NOINFO = _openbabel.OBFingerprint_FPT_NOINFO
    Tanimoto = staticmethod(_openbabel.OBFingerprint_Tanimoto)
    Getbitsperint = staticmethod(_openbabel.OBFingerprint_Getbitsperint)
    FindFingerprint = staticmethod(_openbabel.OBFingerprint_FindFingerprint)
OBFingerprint.SetBit = new_instancemethod(_openbabel.OBFingerprint_SetBit, None, OBFingerprint)
OBFingerprint.GetBit = new_instancemethod(_openbabel.OBFingerprint_GetBit, None, OBFingerprint)
OBFingerprint.Fold = new_instancemethod(_openbabel.OBFingerprint_Fold, None, OBFingerprint)
OBFingerprint.GetFingerprint = new_instancemethod(_openbabel.OBFingerprint_GetFingerprint, None, OBFingerprint)
OBFingerprint.Flags = new_instancemethod(_openbabel.OBFingerprint_Flags, None, OBFingerprint)
OBFingerprint.SetFlags = new_instancemethod(_openbabel.OBFingerprint_SetFlags, None, OBFingerprint)
OBFingerprint.DescribeBits = new_instancemethod(_openbabel.OBFingerprint_DescribeBits, None, OBFingerprint)
OBFingerprint_swigregister = _openbabel.OBFingerprint_swigregister
OBFingerprint_swigregister(OBFingerprint)

def OBFingerprint_Default():
    return _openbabel.OBFingerprint_Default()
OBFingerprint_Default = _openbabel.OBFingerprint_Default

def OBFingerprint_FindType(ID):
    return _openbabel.OBFingerprint_FindType(ID)
OBFingerprint_FindType = _openbabel.OBFingerprint_FindType

def OBFingerprint_Tanimoto(*args):
    return _openbabel.OBFingerprint_Tanimoto(*args)
OBFingerprint_Tanimoto = _openbabel.OBFingerprint_Tanimoto

def OBFingerprint_Getbitsperint():
    return _openbabel.OBFingerprint_Getbitsperint()
OBFingerprint_Getbitsperint = _openbabel.OBFingerprint_Getbitsperint

def OBFingerprint_FindFingerprint(ID):
    return _openbabel.OBFingerprint_FindFingerprint(ID)
OBFingerprint_FindFingerprint = _openbabel.OBFingerprint_FindFingerprint

class FptIndexHeader(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    headerlength = _swig_property(_openbabel.FptIndexHeader_headerlength_get, _openbabel.FptIndexHeader_headerlength_set)
    nEntries = _swig_property(_openbabel.FptIndexHeader_nEntries_get, _openbabel.FptIndexHeader_nEntries_set)
    words = _swig_property(_openbabel.FptIndexHeader_words_get, _openbabel.FptIndexHeader_words_set)
    fpid = _swig_property(_openbabel.FptIndexHeader_fpid_get, _openbabel.FptIndexHeader_fpid_set)
    seek64 = _swig_property(_openbabel.FptIndexHeader_seek64_get, _openbabel.FptIndexHeader_seek64_set)
    datafilename = _swig_property(_openbabel.FptIndexHeader_datafilename_get, _openbabel.FptIndexHeader_datafilename_set)

    def __init__(self):
        _openbabel.FptIndexHeader_swiginit(self, _openbabel.new_FptIndexHeader())
    __swig_destroy__ = _openbabel.delete_FptIndexHeader
FptIndexHeader_swigregister = _openbabel.FptIndexHeader_swigregister
FptIndexHeader_swigregister(FptIndexHeader)

class FastSearch(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_FastSearch

    def __init__(self):
        _openbabel.FastSearch_swiginit(self, _openbabel.new_FastSearch())
FastSearch.ReadIndexFile = new_instancemethod(_openbabel.FastSearch_ReadIndexFile, None, FastSearch)
FastSearch.ReadIndex = new_instancemethod(_openbabel.FastSearch_ReadIndex, None, FastSearch)
FastSearch.Find = new_instancemethod(_openbabel.FastSearch_Find, None, FastSearch)
FastSearch.FindMatch = new_instancemethod(_openbabel.FastSearch_FindMatch, None, FastSearch)
FastSearch.FindSimilar = new_instancemethod(_openbabel.FastSearch_FindSimilar, None, FastSearch)
FastSearch.GetFingerprint = new_instancemethod(_openbabel.FastSearch_GetFingerprint, None, FastSearch)
FastSearch.GetIndexHeader = new_instancemethod(_openbabel.FastSearch_GetIndexHeader, None, FastSearch)
FastSearch_swigregister = _openbabel.FastSearch_swigregister
FastSearch_swigregister(FastSearch)

class FastSearchIndexer(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.FastSearchIndexer_swiginit(self, _openbabel.new_FastSearchIndexer(*args))
    __swig_destroy__ = _openbabel.delete_FastSearchIndexer
FastSearchIndexer.Add = new_instancemethod(_openbabel.FastSearchIndexer_Add, None, FastSearchIndexer)
FastSearchIndexer_swigregister = _openbabel.FastSearchIndexer_swigregister
FastSearchIndexer_swigregister(FastSearchIndexer)

class OBDescriptor(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBDescriptor_Default)

    def __init__(self, ID, IsDefault=False):
        _openbabel.OBDescriptor_swiginit(self, _openbabel.new_OBDescriptor(ID, IsDefault))
    FindType = staticmethod(_openbabel.OBDescriptor_FindType)
    FilterCompare = staticmethod(_openbabel.OBDescriptor_FilterCompare)
    AddProperties = staticmethod(_openbabel.OBDescriptor_AddProperties)
    DeleteProperties = staticmethod(_openbabel.OBDescriptor_DeleteProperties)
    GetValues = staticmethod(_openbabel.OBDescriptor_GetValues)
    GetIdentifier = staticmethod(_openbabel.OBDescriptor_GetIdentifier)
    __swig_destroy__ = _openbabel.delete_OBDescriptor
OBDescriptor.Predict = new_instancemethod(_openbabel.OBDescriptor_Predict, None, OBDescriptor)
OBDescriptor.PredictAndSave = new_instancemethod(_openbabel.OBDescriptor_PredictAndSave, None, OBDescriptor)
OBDescriptor.GetStringValue = new_instancemethod(_openbabel.OBDescriptor_GetStringValue, None, OBDescriptor)
OBDescriptor.Compare = new_instancemethod(_openbabel.OBDescriptor_Compare, None, OBDescriptor)
OBDescriptor.Display = new_instancemethod(_openbabel.OBDescriptor_Display, None, OBDescriptor)
OBDescriptor.Order = new_instancemethod(_openbabel.OBDescriptor_Order, None, OBDescriptor)
OBDescriptor_swigregister = _openbabel.OBDescriptor_swigregister
OBDescriptor_swigregister(OBDescriptor)

def OBDescriptor_Default():
    return _openbabel.OBDescriptor_Default()
OBDescriptor_Default = _openbabel.OBDescriptor_Default

def OBDescriptor_FindType(ID):
    return _openbabel.OBDescriptor_FindType(ID)
OBDescriptor_FindType = _openbabel.OBDescriptor_FindType

def OBDescriptor_FilterCompare(pOb, ss, noEval):
    return _openbabel.OBDescriptor_FilterCompare(pOb, ss, noEval)
OBDescriptor_FilterCompare = _openbabel.OBDescriptor_FilterCompare

def OBDescriptor_AddProperties(pOb, DescrList):
    return _openbabel.OBDescriptor_AddProperties(pOb, DescrList)
OBDescriptor_AddProperties = _openbabel.OBDescriptor_AddProperties

def OBDescriptor_DeleteProperties(pOb, DescrList):
    return _openbabel.OBDescriptor_DeleteProperties(pOb, DescrList)
OBDescriptor_DeleteProperties = _openbabel.OBDescriptor_DeleteProperties

def OBDescriptor_GetValues(pOb, DescrList):
    return _openbabel.OBDescriptor_GetValues(pOb, DescrList)
OBDescriptor_GetValues = _openbabel.OBDescriptor_GetValues

def OBDescriptor_GetIdentifier(optionText):
    return _openbabel.OBDescriptor_GetIdentifier(optionText)
OBDescriptor_GetIdentifier = _openbabel.OBDescriptor_GetIdentifier

OBFF_LOGLVL_NONE = _openbabel.OBFF_LOGLVL_NONE
OBFF_LOGLVL_LOW = _openbabel.OBFF_LOGLVL_LOW
OBFF_LOGLVL_MEDIUM = _openbabel.OBFF_LOGLVL_MEDIUM
OBFF_LOGLVL_HIGH = _openbabel.OBFF_LOGLVL_HIGH
OBFF_ENERGY = _openbabel.OBFF_ENERGY
OBFF_EBOND = _openbabel.OBFF_EBOND
OBFF_EANGLE = _openbabel.OBFF_EANGLE
OBFF_ESTRBND = _openbabel.OBFF_ESTRBND
OBFF_ETORSION = _openbabel.OBFF_ETORSION
OBFF_EOOP = _openbabel.OBFF_EOOP
OBFF_EVDW = _openbabel.OBFF_EVDW
OBFF_EELECTROSTATIC = _openbabel.OBFF_EELECTROSTATIC
OBFF_CONST_IGNORE = _openbabel.OBFF_CONST_IGNORE
OBFF_CONST_ATOM = _openbabel.OBFF_CONST_ATOM
OBFF_CONST_ATOM_X = _openbabel.OBFF_CONST_ATOM_X
OBFF_CONST_ATOM_Y = _openbabel.OBFF_CONST_ATOM_Y
OBFF_CONST_ATOM_Z = _openbabel.OBFF_CONST_ATOM_Z
OBFF_CONST_DISTANCE = _openbabel.OBFF_CONST_DISTANCE
OBFF_CONST_ANGLE = _openbabel.OBFF_CONST_ANGLE
OBFF_CONST_TORSION = _openbabel.OBFF_CONST_TORSION
OBFF_CONST_CHIRAL = _openbabel.OBFF_CONST_CHIRAL
OBFF_NUMERICAL_GRADIENT = _openbabel.OBFF_NUMERICAL_GRADIENT
OBFF_ANALYTICAL_GRADIENT = _openbabel.OBFF_ANALYTICAL_GRADIENT
class LineSearchType(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Simple = _openbabel.LineSearchType_Simple
    Newton2Num = _openbabel.LineSearchType_Newton2Num

    def __init__(self):
        _openbabel.LineSearchType_swiginit(self, _openbabel.new_LineSearchType())
    __swig_destroy__ = _openbabel.delete_LineSearchType
LineSearchType_swigregister = _openbabel.LineSearchType_swigregister
LineSearchType_swigregister(LineSearchType)
KCAL_TO_KJ = cvar.KCAL_TO_KJ
GAS_CONSTANT = cvar.GAS_CONSTANT

class OBFFParameter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    a = _swig_property(_openbabel.OBFFParameter_a_get, _openbabel.OBFFParameter_a_set)
    b = _swig_property(_openbabel.OBFFParameter_b_get, _openbabel.OBFFParameter_b_set)
    c = _swig_property(_openbabel.OBFFParameter_c_get, _openbabel.OBFFParameter_c_set)
    d = _swig_property(_openbabel.OBFFParameter_d_get, _openbabel.OBFFParameter_d_set)
    _a = _swig_property(_openbabel.OBFFParameter__a_get, _openbabel.OBFFParameter__a_set)
    _b = _swig_property(_openbabel.OBFFParameter__b_get, _openbabel.OBFFParameter__b_set)
    _c = _swig_property(_openbabel.OBFFParameter__c_get, _openbabel.OBFFParameter__c_set)
    _d = _swig_property(_openbabel.OBFFParameter__d_get, _openbabel.OBFFParameter__d_set)
    _ipar = _swig_property(_openbabel.OBFFParameter__ipar_get, _openbabel.OBFFParameter__ipar_set)
    _dpar = _swig_property(_openbabel.OBFFParameter__dpar_get, _openbabel.OBFFParameter__dpar_set)

    def __init__(self):
        _openbabel.OBFFParameter_swiginit(self, _openbabel.new_OBFFParameter())
    __swig_destroy__ = _openbabel.delete_OBFFParameter
OBFFParameter.clear = new_instancemethod(_openbabel.OBFFParameter_clear, None, OBFFParameter)
OBFFParameter_swigregister = _openbabel.OBFFParameter_swigregister
OBFFParameter_swigregister(OBFFParameter)

class OBFFCalculation2(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    energy = _swig_property(_openbabel.OBFFCalculation2_energy_get, _openbabel.OBFFCalculation2_energy_set)
    a = _swig_property(_openbabel.OBFFCalculation2_a_get, _openbabel.OBFFCalculation2_a_set)
    b = _swig_property(_openbabel.OBFFCalculation2_b_get, _openbabel.OBFFCalculation2_b_set)
    idx_a = _swig_property(_openbabel.OBFFCalculation2_idx_a_get, _openbabel.OBFFCalculation2_idx_a_set)
    idx_b = _swig_property(_openbabel.OBFFCalculation2_idx_b_get, _openbabel.OBFFCalculation2_idx_b_set)
    pos_a = _swig_property(_openbabel.OBFFCalculation2_pos_a_get, _openbabel.OBFFCalculation2_pos_a_set)
    pos_b = _swig_property(_openbabel.OBFFCalculation2_pos_b_get, _openbabel.OBFFCalculation2_pos_b_set)
    force_a = _swig_property(_openbabel.OBFFCalculation2_force_a_get, _openbabel.OBFFCalculation2_force_a_set)
    force_b = _swig_property(_openbabel.OBFFCalculation2_force_b_get, _openbabel.OBFFCalculation2_force_b_set)
    __swig_destroy__ = _openbabel.delete_OBFFCalculation2

    def __init__(self):
        _openbabel.OBFFCalculation2_swiginit(self, _openbabel.new_OBFFCalculation2())
OBFFCalculation2.SetupPointers = new_instancemethod(_openbabel.OBFFCalculation2_SetupPointers, None, OBFFCalculation2)
OBFFCalculation2_swigregister = _openbabel.OBFFCalculation2_swigregister
OBFFCalculation2_swigregister(OBFFCalculation2)

class OBFFCalculation3(OBFFCalculation2):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    c = _swig_property(_openbabel.OBFFCalculation3_c_get, _openbabel.OBFFCalculation3_c_set)
    idx_c = _swig_property(_openbabel.OBFFCalculation3_idx_c_get, _openbabel.OBFFCalculation3_idx_c_set)
    pos_c = _swig_property(_openbabel.OBFFCalculation3_pos_c_get, _openbabel.OBFFCalculation3_pos_c_set)
    force_c = _swig_property(_openbabel.OBFFCalculation3_force_c_get, _openbabel.OBFFCalculation3_force_c_set)
    __swig_destroy__ = _openbabel.delete_OBFFCalculation3

    def __init__(self):
        _openbabel.OBFFCalculation3_swiginit(self, _openbabel.new_OBFFCalculation3())
OBFFCalculation3_swigregister = _openbabel.OBFFCalculation3_swigregister
OBFFCalculation3_swigregister(OBFFCalculation3)

class OBFFCalculation4(OBFFCalculation3):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    d = _swig_property(_openbabel.OBFFCalculation4_d_get, _openbabel.OBFFCalculation4_d_set)
    idx_d = _swig_property(_openbabel.OBFFCalculation4_idx_d_get, _openbabel.OBFFCalculation4_idx_d_set)
    pos_d = _swig_property(_openbabel.OBFFCalculation4_pos_d_get, _openbabel.OBFFCalculation4_pos_d_set)
    force_d = _swig_property(_openbabel.OBFFCalculation4_force_d_get, _openbabel.OBFFCalculation4_force_d_set)
    __swig_destroy__ = _openbabel.delete_OBFFCalculation4

    def __init__(self):
        _openbabel.OBFFCalculation4_swiginit(self, _openbabel.new_OBFFCalculation4())
OBFFCalculation4_swigregister = _openbabel.OBFFCalculation4_swigregister
OBFFCalculation4_swigregister(OBFFCalculation4)

class OBFFConstraint(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    factor = _swig_property(_openbabel.OBFFConstraint_factor_get, _openbabel.OBFFConstraint_factor_set)
    constraint_value = _swig_property(_openbabel.OBFFConstraint_constraint_value_get, _openbabel.OBFFConstraint_constraint_value_set)
    rab0 = _swig_property(_openbabel.OBFFConstraint_rab0_get, _openbabel.OBFFConstraint_rab0_set)
    rbc0 = _swig_property(_openbabel.OBFFConstraint_rbc0_get, _openbabel.OBFFConstraint_rbc0_set)
    type = _swig_property(_openbabel.OBFFConstraint_type_get, _openbabel.OBFFConstraint_type_set)
    ia = _swig_property(_openbabel.OBFFConstraint_ia_get, _openbabel.OBFFConstraint_ia_set)
    ib = _swig_property(_openbabel.OBFFConstraint_ib_get, _openbabel.OBFFConstraint_ib_set)
    ic = _swig_property(_openbabel.OBFFConstraint_ic_get, _openbabel.OBFFConstraint_ic_set)
    id = _swig_property(_openbabel.OBFFConstraint_id_get, _openbabel.OBFFConstraint_id_set)
    a = _swig_property(_openbabel.OBFFConstraint_a_get, _openbabel.OBFFConstraint_a_set)
    b = _swig_property(_openbabel.OBFFConstraint_b_get, _openbabel.OBFFConstraint_b_set)
    c = _swig_property(_openbabel.OBFFConstraint_c_get, _openbabel.OBFFConstraint_c_set)
    d = _swig_property(_openbabel.OBFFConstraint_d_get, _openbabel.OBFFConstraint_d_set)
    grada = _swig_property(_openbabel.OBFFConstraint_grada_get, _openbabel.OBFFConstraint_grada_set)
    gradb = _swig_property(_openbabel.OBFFConstraint_gradb_get, _openbabel.OBFFConstraint_gradb_set)
    gradc = _swig_property(_openbabel.OBFFConstraint_gradc_get, _openbabel.OBFFConstraint_gradc_set)
    gradd = _swig_property(_openbabel.OBFFConstraint_gradd_get, _openbabel.OBFFConstraint_gradd_set)

    def __init__(self):
        _openbabel.OBFFConstraint_swiginit(self, _openbabel.new_OBFFConstraint())
    __swig_destroy__ = _openbabel.delete_OBFFConstraint
OBFFConstraint.GetGradient = new_instancemethod(_openbabel.OBFFConstraint_GetGradient, None, OBFFConstraint)
OBFFConstraint_swigregister = _openbabel.OBFFConstraint_swigregister
OBFFConstraint_swigregister(OBFFConstraint)

class OBFFConstraints(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBFFConstraints_swiginit(self, _openbabel.new_OBFFConstraints())
    __swig_destroy__ = _openbabel.delete_OBFFConstraints
OBFFConstraints.Clear = new_instancemethod(_openbabel.OBFFConstraints_Clear, None, OBFFConstraints)
OBFFConstraints.GetConstraintEnergy = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintEnergy, None, OBFFConstraints)
OBFFConstraints.GetGradient = new_instancemethod(_openbabel.OBFFConstraints_GetGradient, None, OBFFConstraints)
OBFFConstraints.Setup = new_instancemethod(_openbabel.OBFFConstraints_Setup, None, OBFFConstraints)
OBFFConstraints.SetFactor = new_instancemethod(_openbabel.OBFFConstraints_SetFactor, None, OBFFConstraints)
OBFFConstraints.AddIgnore = new_instancemethod(_openbabel.OBFFConstraints_AddIgnore, None, OBFFConstraints)
OBFFConstraints.AddAtomConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddAtomConstraint, None, OBFFConstraints)
OBFFConstraints.AddAtomXConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddAtomXConstraint, None, OBFFConstraints)
OBFFConstraints.AddAtomYConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddAtomYConstraint, None, OBFFConstraints)
OBFFConstraints.AddAtomZConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddAtomZConstraint, None, OBFFConstraints)
OBFFConstraints.AddDistanceConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddDistanceConstraint, None, OBFFConstraints)
OBFFConstraints.AddAngleConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddAngleConstraint, None, OBFFConstraints)
OBFFConstraints.AddTorsionConstraint = new_instancemethod(_openbabel.OBFFConstraints_AddTorsionConstraint, None, OBFFConstraints)
OBFFConstraints.DeleteConstraint = new_instancemethod(_openbabel.OBFFConstraints_DeleteConstraint, None, OBFFConstraints)
OBFFConstraints.GetFactor = new_instancemethod(_openbabel.OBFFConstraints_GetFactor, None, OBFFConstraints)
OBFFConstraints.Size = new_instancemethod(_openbabel.OBFFConstraints_Size, None, OBFFConstraints)
OBFFConstraints.GetConstraintType = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintType, None, OBFFConstraints)
OBFFConstraints.GetConstraintValue = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintValue, None, OBFFConstraints)
OBFFConstraints.GetConstraintAtomA = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintAtomA, None, OBFFConstraints)
OBFFConstraints.GetConstraintAtomB = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintAtomB, None, OBFFConstraints)
OBFFConstraints.GetConstraintAtomC = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintAtomC, None, OBFFConstraints)
OBFFConstraints.GetConstraintAtomD = new_instancemethod(_openbabel.OBFFConstraints_GetConstraintAtomD, None, OBFFConstraints)
OBFFConstraints.IsIgnored = new_instancemethod(_openbabel.OBFFConstraints_IsIgnored, None, OBFFConstraints)
OBFFConstraints.IsFixed = new_instancemethod(_openbabel.OBFFConstraints_IsFixed, None, OBFFConstraints)
OBFFConstraints.IsXFixed = new_instancemethod(_openbabel.OBFFConstraints_IsXFixed, None, OBFFConstraints)
OBFFConstraints.IsYFixed = new_instancemethod(_openbabel.OBFFConstraints_IsYFixed, None, OBFFConstraints)
OBFFConstraints.IsZFixed = new_instancemethod(_openbabel.OBFFConstraints_IsZFixed, None, OBFFConstraints)
OBFFConstraints.GetIgnoredBitVec = new_instancemethod(_openbabel.OBFFConstraints_GetIgnoredBitVec, None, OBFFConstraints)
OBFFConstraints.GetFixedBitVec = new_instancemethod(_openbabel.OBFFConstraints_GetFixedBitVec, None, OBFFConstraints)
OBFFConstraints_swigregister = _openbabel.OBFFConstraints_swigregister
OBFFConstraints_swigregister(OBFFConstraints)

class OBForceField(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBForceField_Default)
    FindType = staticmethod(_openbabel.OBForceField_FindType)
    __swig_destroy__ = _openbabel.delete_OBForceField
    FindForceField = staticmethod(_openbabel.OBForceField_FindForceField)
    IgnoreCalculation = staticmethod(_openbabel.OBForceField_IgnoreCalculation)
    VectorBondDerivative = staticmethod(_openbabel.OBForceField_VectorBondDerivative)
    VectorDistanceDerivative = staticmethod(_openbabel.OBForceField_VectorDistanceDerivative)
    VectorLengthDerivative = staticmethod(_openbabel.OBForceField_VectorLengthDerivative)
    VectorAngleDerivative = staticmethod(_openbabel.OBForceField_VectorAngleDerivative)
    VectorOOPDerivative = staticmethod(_openbabel.OBForceField_VectorOOPDerivative)
    VectorTorsionDerivative = staticmethod(_openbabel.OBForceField_VectorTorsionDerivative)
    VectorSubtract = staticmethod(_openbabel.OBForceField_VectorSubtract)
    VectorAdd = staticmethod(_openbabel.OBForceField_VectorAdd)
    VectorDivide = staticmethod(_openbabel.OBForceField_VectorDivide)
    VectorMultiply = staticmethod(_openbabel.OBForceField_VectorMultiply)
    VectorSelfMultiply = staticmethod(_openbabel.OBForceField_VectorSelfMultiply)
    VectorNormalize = staticmethod(_openbabel.OBForceField_VectorNormalize)
    VectorCopy = staticmethod(_openbabel.OBForceField_VectorCopy)
    VectorLength = staticmethod(_openbabel.OBForceField_VectorLength)
    VectorDistance = staticmethod(_openbabel.OBForceField_VectorDistance)
    VectorAngle = staticmethod(_openbabel.OBForceField_VectorAngle)
    VectorTorsion = staticmethod(_openbabel.OBForceField_VectorTorsion)
    VectorOOP = staticmethod(_openbabel.OBForceField_VectorOOP)
    VectorClear = staticmethod(_openbabel.OBForceField_VectorClear)
    VectorDot = staticmethod(_openbabel.OBForceField_VectorDot)
    VectorCross = staticmethod(_openbabel.OBForceField_VectorCross)
    PrintVector = staticmethod(_openbabel.OBForceField_PrintVector)
OBForceField.MakeNewInstance = new_instancemethod(_openbabel.OBForceField_MakeNewInstance, None, OBForceField)
OBForceField.SetParameterFile = new_instancemethod(_openbabel.OBForceField_SetParameterFile, None, OBForceField)
OBForceField.GetUnit = new_instancemethod(_openbabel.OBForceField_GetUnit, None, OBForceField)
OBForceField.HasAnalyticalGradients = new_instancemethod(_openbabel.OBForceField_HasAnalyticalGradients, None, OBForceField)
OBForceField.Setup = new_instancemethod(_openbabel.OBForceField_Setup, None, OBForceField)
OBForceField.ParseParamFile = new_instancemethod(_openbabel.OBForceField_ParseParamFile, None, OBForceField)
OBForceField.SetTypes = new_instancemethod(_openbabel.OBForceField_SetTypes, None, OBForceField)
OBForceField.SetFormalCharges = new_instancemethod(_openbabel.OBForceField_SetFormalCharges, None, OBForceField)
OBForceField.SetPartialCharges = new_instancemethod(_openbabel.OBForceField_SetPartialCharges, None, OBForceField)
OBForceField.SetupCalculations = new_instancemethod(_openbabel.OBForceField_SetupCalculations, None, OBForceField)
OBForceField.SetupPointers = new_instancemethod(_openbabel.OBForceField_SetupPointers, None, OBForceField)
OBForceField.IsSetupNeeded = new_instancemethod(_openbabel.OBForceField_IsSetupNeeded, None, OBForceField)
OBForceField.GetAtomTypes = new_instancemethod(_openbabel.OBForceField_GetAtomTypes, None, OBForceField)
OBForceField.GetPartialCharges = new_instancemethod(_openbabel.OBForceField_GetPartialCharges, None, OBForceField)
OBForceField.GetCoordinates = new_instancemethod(_openbabel.OBForceField_GetCoordinates, None, OBForceField)
OBForceField.UpdateCoordinates = new_instancemethod(_openbabel.OBForceField_UpdateCoordinates, None, OBForceField)
OBForceField.GetConformers = new_instancemethod(_openbabel.OBForceField_GetConformers, None, OBForceField)
OBForceField.UpdateConformers = new_instancemethod(_openbabel.OBForceField_UpdateConformers, None, OBForceField)
OBForceField.SetCoordinates = new_instancemethod(_openbabel.OBForceField_SetCoordinates, None, OBForceField)
OBForceField.SetConformers = new_instancemethod(_openbabel.OBForceField_SetConformers, None, OBForceField)
OBForceField.GetGrid = new_instancemethod(_openbabel.OBForceField_GetGrid, None, OBForceField)
OBForceField.AddIntraGroup = new_instancemethod(_openbabel.OBForceField_AddIntraGroup, None, OBForceField)
OBForceField.AddInterGroup = new_instancemethod(_openbabel.OBForceField_AddInterGroup, None, OBForceField)
OBForceField.AddInterGroups = new_instancemethod(_openbabel.OBForceField_AddInterGroups, None, OBForceField)
OBForceField.ClearGroups = new_instancemethod(_openbabel.OBForceField_ClearGroups, None, OBForceField)
OBForceField.HasGroups = new_instancemethod(_openbabel.OBForceField_HasGroups, None, OBForceField)
OBForceField.EnableCutOff = new_instancemethod(_openbabel.OBForceField_EnableCutOff, None, OBForceField)
OBForceField.IsCutOffEnabled = new_instancemethod(_openbabel.OBForceField_IsCutOffEnabled, None, OBForceField)
OBForceField.SetVDWCutOff = new_instancemethod(_openbabel.OBForceField_SetVDWCutOff, None, OBForceField)
OBForceField.GetVDWCutOff = new_instancemethod(_openbabel.OBForceField_GetVDWCutOff, None, OBForceField)
OBForceField.SetElectrostaticCutOff = new_instancemethod(_openbabel.OBForceField_SetElectrostaticCutOff, None, OBForceField)
OBForceField.GetElectrostaticCutOff = new_instancemethod(_openbabel.OBForceField_GetElectrostaticCutOff, None, OBForceField)
OBForceField.SetDielectricConstant = new_instancemethod(_openbabel.OBForceField_SetDielectricConstant, None, OBForceField)
OBForceField.GetDielectricConstant = new_instancemethod(_openbabel.OBForceField_GetDielectricConstant, None, OBForceField)
OBForceField.SetUpdateFrequency = new_instancemethod(_openbabel.OBForceField_SetUpdateFrequency, None, OBForceField)
OBForceField.GetUpdateFrequency = new_instancemethod(_openbabel.OBForceField_GetUpdateFrequency, None, OBForceField)
OBForceField.UpdatePairsSimple = new_instancemethod(_openbabel.OBForceField_UpdatePairsSimple, None, OBForceField)
OBForceField.GetNumPairs = new_instancemethod(_openbabel.OBForceField_GetNumPairs, None, OBForceField)
OBForceField.GetNumElectrostaticPairs = new_instancemethod(_openbabel.OBForceField_GetNumElectrostaticPairs, None, OBForceField)
OBForceField.GetNumVDWPairs = new_instancemethod(_openbabel.OBForceField_GetNumVDWPairs, None, OBForceField)
OBForceField.EnableAllPairs = new_instancemethod(_openbabel.OBForceField_EnableAllPairs, None, OBForceField)
OBForceField.GetGradient = new_instancemethod(_openbabel.OBForceField_GetGradient, None, OBForceField)
OBForceField.GetGradientPtr = new_instancemethod(_openbabel.OBForceField_GetGradientPtr, None, OBForceField)
OBForceField.Energy = new_instancemethod(_openbabel.OBForceField_Energy, None, OBForceField)
OBForceField.E_Bond = new_instancemethod(_openbabel.OBForceField_E_Bond, None, OBForceField)
OBForceField.E_Angle = new_instancemethod(_openbabel.OBForceField_E_Angle, None, OBForceField)
OBForceField.E_StrBnd = new_instancemethod(_openbabel.OBForceField_E_StrBnd, None, OBForceField)
OBForceField.E_Torsion = new_instancemethod(_openbabel.OBForceField_E_Torsion, None, OBForceField)
OBForceField.E_OOP = new_instancemethod(_openbabel.OBForceField_E_OOP, None, OBForceField)
OBForceField.E_VDW = new_instancemethod(_openbabel.OBForceField_E_VDW, None, OBForceField)
OBForceField.E_Electrostatic = new_instancemethod(_openbabel.OBForceField_E_Electrostatic, None, OBForceField)
OBForceField.PrintTypes = new_instancemethod(_openbabel.OBForceField_PrintTypes, None, OBForceField)
OBForceField.PrintFormalCharges = new_instancemethod(_openbabel.OBForceField_PrintFormalCharges, None, OBForceField)
OBForceField.PrintPartialCharges = new_instancemethod(_openbabel.OBForceField_PrintPartialCharges, None, OBForceField)
OBForceField.PrintVelocities = new_instancemethod(_openbabel.OBForceField_PrintVelocities, None, OBForceField)
OBForceField.SetLogFile = new_instancemethod(_openbabel.OBForceField_SetLogFile, None, OBForceField)
OBForceField.SetLogLevel = new_instancemethod(_openbabel.OBForceField_SetLogLevel, None, OBForceField)
OBForceField.GetLogLevel = new_instancemethod(_openbabel.OBForceField_GetLogLevel, None, OBForceField)
OBForceField.OBFFLog = new_instancemethod(_openbabel.OBForceField_OBFFLog, None, OBForceField)
OBForceField.DistanceGeometry = new_instancemethod(_openbabel.OBForceField_DistanceGeometry, None, OBForceField)
OBForceField.SystematicRotorSearch = new_instancemethod(_openbabel.OBForceField_SystematicRotorSearch, None, OBForceField)
OBForceField.SystematicRotorSearchInitialize = new_instancemethod(_openbabel.OBForceField_SystematicRotorSearchInitialize, None, OBForceField)
OBForceField.SystematicRotorSearchNextConformer = new_instancemethod(_openbabel.OBForceField_SystematicRotorSearchNextConformer, None, OBForceField)
OBForceField.RandomRotorSearch = new_instancemethod(_openbabel.OBForceField_RandomRotorSearch, None, OBForceField)
OBForceField.RandomRotorSearchInitialize = new_instancemethod(_openbabel.OBForceField_RandomRotorSearchInitialize, None, OBForceField)
OBForceField.RandomRotorSearchNextConformer = new_instancemethod(_openbabel.OBForceField_RandomRotorSearchNextConformer, None, OBForceField)
OBForceField.WeightedRotorSearch = new_instancemethod(_openbabel.OBForceField_WeightedRotorSearch, None, OBForceField)
OBForceField.FastRotorSearch = new_instancemethod(_openbabel.OBForceField_FastRotorSearch, None, OBForceField)
OBForceField.DiverseConfGen = new_instancemethod(_openbabel.OBForceField_DiverseConfGen, None, OBForceField)
OBForceField.SetLineSearchType = new_instancemethod(_openbabel.OBForceField_SetLineSearchType, None, OBForceField)
OBForceField.GetLineSearchType = new_instancemethod(_openbabel.OBForceField_GetLineSearchType, None, OBForceField)
OBForceField.LineSearch = new_instancemethod(_openbabel.OBForceField_LineSearch, None, OBForceField)
OBForceField.Newton2NumLineSearch = new_instancemethod(_openbabel.OBForceField_Newton2NumLineSearch, None, OBForceField)
OBForceField.LineSearchTakeStep = new_instancemethod(_openbabel.OBForceField_LineSearchTakeStep, None, OBForceField)
OBForceField.SteepestDescent = new_instancemethod(_openbabel.OBForceField_SteepestDescent, None, OBForceField)
OBForceField.SteepestDescentInitialize = new_instancemethod(_openbabel.OBForceField_SteepestDescentInitialize, None, OBForceField)
OBForceField.SteepestDescentTakeNSteps = new_instancemethod(_openbabel.OBForceField_SteepestDescentTakeNSteps, None, OBForceField)
OBForceField.ConjugateGradients = new_instancemethod(_openbabel.OBForceField_ConjugateGradients, None, OBForceField)
OBForceField.ConjugateGradientsInitialize = new_instancemethod(_openbabel.OBForceField_ConjugateGradientsInitialize, None, OBForceField)
OBForceField.ConjugateGradientsTakeNSteps = new_instancemethod(_openbabel.OBForceField_ConjugateGradientsTakeNSteps, None, OBForceField)
OBForceField.GenerateVelocities = new_instancemethod(_openbabel.OBForceField_GenerateVelocities, None, OBForceField)
OBForceField.CorrectVelocities = new_instancemethod(_openbabel.OBForceField_CorrectVelocities, None, OBForceField)
OBForceField.MolecularDynamicsTakeNSteps = new_instancemethod(_openbabel.OBForceField_MolecularDynamicsTakeNSteps, None, OBForceField)
OBForceField.GetConstraints = new_instancemethod(_openbabel.OBForceField_GetConstraints, None, OBForceField)
OBForceField.SetConstraints = new_instancemethod(_openbabel.OBForceField_SetConstraints, None, OBForceField)
OBForceField.SetFixAtom = new_instancemethod(_openbabel.OBForceField_SetFixAtom, None, OBForceField)
OBForceField.UnsetFixAtom = new_instancemethod(_openbabel.OBForceField_UnsetFixAtom, None, OBForceField)
OBForceField.SetIgnoreAtom = new_instancemethod(_openbabel.OBForceField_SetIgnoreAtom, None, OBForceField)
OBForceField.UnsetIgnoreAtom = new_instancemethod(_openbabel.OBForceField_UnsetIgnoreAtom, None, OBForceField)
OBForceField.DetectExplosion = new_instancemethod(_openbabel.OBForceField_DetectExplosion, None, OBForceField)
OBForceField.ValidateLineSearch = new_instancemethod(_openbabel.OBForceField_ValidateLineSearch, None, OBForceField)
OBForceField.ValidateSteepestDescent = new_instancemethod(_openbabel.OBForceField_ValidateSteepestDescent, None, OBForceField)
OBForceField.ValidateConjugateGradients = new_instancemethod(_openbabel.OBForceField_ValidateConjugateGradients, None, OBForceField)
OBForceField.Validate = new_instancemethod(_openbabel.OBForceField_Validate, None, OBForceField)
OBForceField.ValidateGradients = new_instancemethod(_openbabel.OBForceField_ValidateGradients, None, OBForceField)
OBForceField.ValidateGradientError = new_instancemethod(_openbabel.OBForceField_ValidateGradientError, None, OBForceField)
OBForceField.SetLogToStdOut = new_instancemethod(_openbabel.OBForceField_SetLogToStdOut, None, OBForceField)
OBForceField.SetLogToStdErr = new_instancemethod(_openbabel.OBForceField_SetLogToStdErr, None, OBForceField)
OBForceField_swigregister = _openbabel.OBForceField_swigregister
OBForceField_swigregister(OBForceField)

def OBForceField_Default():
    return _openbabel.OBForceField_Default()
OBForceField_Default = _openbabel.OBForceField_Default

def OBForceField_FindType(ID):
    return _openbabel.OBForceField_FindType(ID)
OBForceField_FindType = _openbabel.OBForceField_FindType

def OBForceField_FindForceField(*args):
    return _openbabel.OBForceField_FindForceField(*args)
OBForceField_FindForceField = _openbabel.OBForceField_FindForceField

def OBForceField_IgnoreCalculation(*args):
    return _openbabel.OBForceField_IgnoreCalculation(*args)
OBForceField_IgnoreCalculation = _openbabel.OBForceField_IgnoreCalculation

def OBForceField_VectorBondDerivative(pos_a, pos_b, force_a, force_b):
    return _openbabel.OBForceField_VectorBondDerivative(pos_a, pos_b, force_a, force_b)
OBForceField_VectorBondDerivative = _openbabel.OBForceField_VectorBondDerivative

def OBForceField_VectorDistanceDerivative(pos_i, pos_j, force_i, force_j):
    return _openbabel.OBForceField_VectorDistanceDerivative(pos_i, pos_j, force_i, force_j)
OBForceField_VectorDistanceDerivative = _openbabel.OBForceField_VectorDistanceDerivative

def OBForceField_VectorLengthDerivative(a, b):
    return _openbabel.OBForceField_VectorLengthDerivative(a, b)
OBForceField_VectorLengthDerivative = _openbabel.OBForceField_VectorLengthDerivative

def OBForceField_VectorAngleDerivative(*args):
    return _openbabel.OBForceField_VectorAngleDerivative(*args)
OBForceField_VectorAngleDerivative = _openbabel.OBForceField_VectorAngleDerivative

def OBForceField_VectorOOPDerivative(*args):
    return _openbabel.OBForceField_VectorOOPDerivative(*args)
OBForceField_VectorOOPDerivative = _openbabel.OBForceField_VectorOOPDerivative

def OBForceField_VectorTorsionDerivative(*args):
    return _openbabel.OBForceField_VectorTorsionDerivative(*args)
OBForceField_VectorTorsionDerivative = _openbabel.OBForceField_VectorTorsionDerivative

def OBForceField_VectorSubtract(i, j, result):
    return _openbabel.OBForceField_VectorSubtract(i, j, result)
OBForceField_VectorSubtract = _openbabel.OBForceField_VectorSubtract

def OBForceField_VectorAdd(i, j, result):
    return _openbabel.OBForceField_VectorAdd(i, j, result)
OBForceField_VectorAdd = _openbabel.OBForceField_VectorAdd

def OBForceField_VectorDivide(i, n, result):
    return _openbabel.OBForceField_VectorDivide(i, n, result)
OBForceField_VectorDivide = _openbabel.OBForceField_VectorDivide

def OBForceField_VectorMultiply(i, n, result):
    return _openbabel.OBForceField_VectorMultiply(i, n, result)
OBForceField_VectorMultiply = _openbabel.OBForceField_VectorMultiply

def OBForceField_VectorSelfMultiply(i, n):
    return _openbabel.OBForceField_VectorSelfMultiply(i, n)
OBForceField_VectorSelfMultiply = _openbabel.OBForceField_VectorSelfMultiply

def OBForceField_VectorNormalize(i):
    return _openbabel.OBForceField_VectorNormalize(i)
OBForceField_VectorNormalize = _openbabel.OBForceField_VectorNormalize

def OBForceField_VectorCopy(arg2, to):
    return _openbabel.OBForceField_VectorCopy(arg2, to)
OBForceField_VectorCopy = _openbabel.OBForceField_VectorCopy

def OBForceField_VectorLength(i):
    return _openbabel.OBForceField_VectorLength(i)
OBForceField_VectorLength = _openbabel.OBForceField_VectorLength

def OBForceField_VectorDistance(pos_i, pos_j):
    return _openbabel.OBForceField_VectorDistance(pos_i, pos_j)
OBForceField_VectorDistance = _openbabel.OBForceField_VectorDistance

def OBForceField_VectorAngle(i, j, k):
    return _openbabel.OBForceField_VectorAngle(i, j, k)
OBForceField_VectorAngle = _openbabel.OBForceField_VectorAngle

def OBForceField_VectorTorsion(i, j, k, l):
    return _openbabel.OBForceField_VectorTorsion(i, j, k, l)
OBForceField_VectorTorsion = _openbabel.OBForceField_VectorTorsion

def OBForceField_VectorOOP(i, j, k, l):
    return _openbabel.OBForceField_VectorOOP(i, j, k, l)
OBForceField_VectorOOP = _openbabel.OBForceField_VectorOOP

def OBForceField_VectorClear(i):
    return _openbabel.OBForceField_VectorClear(i)
OBForceField_VectorClear = _openbabel.OBForceField_VectorClear

def OBForceField_VectorDot(i, j):
    return _openbabel.OBForceField_VectorDot(i, j)
OBForceField_VectorDot = _openbabel.OBForceField_VectorDot

def OBForceField_VectorCross(i, j, result):
    return _openbabel.OBForceField_VectorCross(i, j, result)
OBForceField_VectorCross = _openbabel.OBForceField_VectorCross

def OBForceField_PrintVector(i):
    return _openbabel.OBForceField_PrintVector(i)
OBForceField_PrintVector = _openbabel.OBForceField_PrintVector

class OBBuilder(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBBuilder_swiginit(self, _openbabel.new_OBBuilder())
    GetNewBondVector = staticmethod(_openbabel.OBBuilder_GetNewBondVector)
    Connect = staticmethod(_openbabel.OBBuilder_Connect)
    Swap = staticmethod(_openbabel.OBBuilder_Swap)
    CorrectStereoBonds = staticmethod(_openbabel.OBBuilder_CorrectStereoBonds)
    CorrectStereoAtoms = staticmethod(_openbabel.OBBuilder_CorrectStereoAtoms)
    IsSpiroAtom = staticmethod(_openbabel.OBBuilder_IsSpiroAtom)
    GetFragment = staticmethod(_openbabel.OBBuilder_GetFragment)
    AddNbrs = staticmethod(_openbabel.OBBuilder_AddNbrs)
    __swig_destroy__ = _openbabel.delete_OBBuilder
OBBuilder.Build = new_instancemethod(_openbabel.OBBuilder_Build, None, OBBuilder)
OBBuilder.SetKeepRings = new_instancemethod(_openbabel.OBBuilder_SetKeepRings, None, OBBuilder)
OBBuilder.UnsetKeepRings = new_instancemethod(_openbabel.OBBuilder_UnsetKeepRings, None, OBBuilder)
OBBuilder.AddRingFragment = new_instancemethod(_openbabel.OBBuilder_AddRingFragment, None, OBBuilder)
OBBuilder.LoadFragments = new_instancemethod(_openbabel.OBBuilder_LoadFragments, None, OBBuilder)
OBBuilder.GetFragmentCoord = new_instancemethod(_openbabel.OBBuilder_GetFragmentCoord, None, OBBuilder)
OBBuilder_swigregister = _openbabel.OBBuilder_swigregister
OBBuilder_swigregister(OBBuilder)

def OBBuilder_GetNewBondVector(*args):
    return _openbabel.OBBuilder_GetNewBondVector(*args)
OBBuilder_GetNewBondVector = _openbabel.OBBuilder_GetNewBondVector

def OBBuilder_Connect(*args):
    return _openbabel.OBBuilder_Connect(*args)
OBBuilder_Connect = _openbabel.OBBuilder_Connect

def OBBuilder_Swap(mol, a, b, c, d):
    return _openbabel.OBBuilder_Swap(mol, a, b, c, d)
OBBuilder_Swap = _openbabel.OBBuilder_Swap

def OBBuilder_CorrectStereoBonds(mol):
    return _openbabel.OBBuilder_CorrectStereoBonds(mol)
OBBuilder_CorrectStereoBonds = _openbabel.OBBuilder_CorrectStereoBonds

def OBBuilder_CorrectStereoAtoms(mol, warn=True):
    return _openbabel.OBBuilder_CorrectStereoAtoms(mol, warn)
OBBuilder_CorrectStereoAtoms = _openbabel.OBBuilder_CorrectStereoAtoms

def OBBuilder_IsSpiroAtom(atomId, mol):
    return _openbabel.OBBuilder_IsSpiroAtom(atomId, mol)
OBBuilder_IsSpiroAtom = _openbabel.OBBuilder_IsSpiroAtom

def OBBuilder_GetFragment(atom):
    return _openbabel.OBBuilder_GetFragment(atom)
OBBuilder_GetFragment = _openbabel.OBBuilder_GetFragment

def OBBuilder_AddNbrs(fragment, atom):
    return _openbabel.OBBuilder_AddNbrs(fragment, atom)
OBBuilder_AddNbrs = _openbabel.OBBuilder_AddNbrs

class OBOp(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBOp_Default)
    FindType = staticmethod(_openbabel.OBOp_FindType)
    OpOptions = staticmethod(_openbabel.OBOp_OpOptions)
    DoOps = staticmethod(_openbabel.OBOp_DoOps)
    __swig_destroy__ = _openbabel.delete_OBOp
OBOp.Do = new_instancemethod(_openbabel.OBOp_Do, None, OBOp)
OBOp.WorksWith = new_instancemethod(_openbabel.OBOp_WorksWith, None, OBOp)
OBOp.ProcessVec = new_instancemethod(_openbabel.OBOp_ProcessVec, None, OBOp)
OBOp_swigregister = _openbabel.OBOp_swigregister
OBOp_swigregister(OBOp)

def OBOp_Default():
    return _openbabel.OBOp_Default()
OBOp_Default = _openbabel.OBOp_Default

def OBOp_FindType(ID):
    return _openbabel.OBOp_FindType(ID)
OBOp_FindType = _openbabel.OBOp_FindType

def OBOp_OpOptions(pOb):
    return _openbabel.OBOp_OpOptions(pOb)
OBOp_OpOptions = _openbabel.OBOp_OpOptions

def OBOp_DoOps(pOb, pOptions, pConv):
    return _openbabel.OBOp_DoOps(pOb, pOptions, pConv)
OBOp_DoOps = _openbabel.OBOp_DoOps

class OBChargeModel(OBPlugin):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    Default = staticmethod(_openbabel.OBChargeModel_Default)

    def __init__(self, ID, IsDefault=False):
        _openbabel.OBChargeModel_swiginit(self, _openbabel.new_OBChargeModel(ID, IsDefault))
    FindType = staticmethod(_openbabel.OBChargeModel_FindType)
    __swig_destroy__ = _openbabel.delete_OBChargeModel
OBChargeModel.ComputeCharges = new_instancemethod(_openbabel.OBChargeModel_ComputeCharges, None, OBChargeModel)
OBChargeModel.GetFormalCharges = new_instancemethod(_openbabel.OBChargeModel_GetFormalCharges, None, OBChargeModel)
OBChargeModel.GetPartialCharges = new_instancemethod(_openbabel.OBChargeModel_GetPartialCharges, None, OBChargeModel)
OBChargeModel.GetDipoleMoment = new_instancemethod(_openbabel.OBChargeModel_GetDipoleMoment, None, OBChargeModel)
OBChargeModel_swigregister = _openbabel.OBChargeModel_swigregister
OBChargeModel_swigregister(OBChargeModel)

def OBChargeModel_Default():
    return _openbabel.OBChargeModel_Default()
OBChargeModel_Default = _openbabel.OBChargeModel_Default

def OBChargeModel_FindType(ID):
    return _openbabel.OBChargeModel_FindType(ID)
OBChargeModel_FindType = _openbabel.OBChargeModel_FindType

class OBChemTsfm(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBChemTsfm_swiginit(self, _openbabel.new_OBChemTsfm())
    __swig_destroy__ = _openbabel.delete_OBChemTsfm
OBChemTsfm.Init = new_instancemethod(_openbabel.OBChemTsfm_Init, None, OBChemTsfm)
OBChemTsfm.Apply = new_instancemethod(_openbabel.OBChemTsfm_Apply, None, OBChemTsfm)
OBChemTsfm.IsAcid = new_instancemethod(_openbabel.OBChemTsfm_IsAcid, None, OBChemTsfm)
OBChemTsfm.IsBase = new_instancemethod(_openbabel.OBChemTsfm_IsBase, None, OBChemTsfm)
OBChemTsfm_swigregister = _openbabel.OBChemTsfm_swigregister
OBChemTsfm_swigregister(OBChemTsfm)

class OBPhModel(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBPhModel_swiginit(self, _openbabel.new_OBPhModel())
    __swig_destroy__ = _openbabel.delete_OBPhModel
OBPhModel.AssignSeedPartialCharge = new_instancemethod(_openbabel.OBPhModel_AssignSeedPartialCharge, None, OBPhModel)
OBPhModel.CorrectForPH = new_instancemethod(_openbabel.OBPhModel_CorrectForPH, None, OBPhModel)
OBPhModel_swigregister = _openbabel.OBPhModel_swigregister
OBPhModel_swigregister(OBPhModel)

class OBGraphSym(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, pmol, frag_atoms=None):
        _openbabel.OBGraphSym_swiginit(self, _openbabel.new_OBGraphSym(pmol, frag_atoms))
    __swig_destroy__ = _openbabel.delete_OBGraphSym
OBGraphSym.GetSymmetry = new_instancemethod(_openbabel.OBGraphSym_GetSymmetry, None, OBGraphSym)
OBGraphSym.ClearSymmetry = new_instancemethod(_openbabel.OBGraphSym_ClearSymmetry, None, OBGraphSym)
OBGraphSym_swigregister = _openbabel.OBGraphSym_swigregister
OBGraphSym_swigregister(OBGraphSym)
OBGraphSym.NoSymmetryClass = _openbabel.cvar.OBGraphSym_NoSymmetryClass

class OBIsomorphismMapper(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBIsomorphismMapper
    GetInstance = staticmethod(_openbabel.OBIsomorphismMapper_GetInstance)
OBIsomorphismMapper.MapFirst = new_instancemethod(_openbabel.OBIsomorphismMapper_MapFirst, None, OBIsomorphismMapper)
OBIsomorphismMapper.MapUnique = new_instancemethod(_openbabel.OBIsomorphismMapper_MapUnique, None, OBIsomorphismMapper)
OBIsomorphismMapper.MapAll = new_instancemethod(_openbabel.OBIsomorphismMapper_MapAll, None, OBIsomorphismMapper)
OBIsomorphismMapper.MapGeneric = new_instancemethod(_openbabel.OBIsomorphismMapper_MapGeneric, None, OBIsomorphismMapper)
OBIsomorphismMapper.SetTimeout = new_instancemethod(_openbabel.OBIsomorphismMapper_SetTimeout, None, OBIsomorphismMapper)
OBIsomorphismMapper_swigregister = _openbabel.OBIsomorphismMapper_swigregister
OBIsomorphismMapper_swigregister(OBIsomorphismMapper)

def OBIsomorphismMapper_GetInstance(*args):
    return _openbabel.OBIsomorphismMapper_GetInstance(*args)
OBIsomorphismMapper_GetInstance = _openbabel.OBIsomorphismMapper_GetInstance


def MapsTo(map, queryIndex, queriedIndex):
    return _openbabel.MapsTo(map, queryIndex, queriedIndex)
MapsTo = _openbabel.MapsTo

def FindAutomorphisms(*args):
    return _openbabel.FindAutomorphisms(*args)
FindAutomorphisms = _openbabel.FindAutomorphisms
class OBQueryAtom(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, atomicNum=6, isInRing=False, isAromatic=False):
        _openbabel.OBQueryAtom_swiginit(self, _openbabel.new_OBQueryAtom(atomicNum, isInRing, isAromatic))
    __swig_destroy__ = _openbabel.delete_OBQueryAtom
OBQueryAtom.GetIndex = new_instancemethod(_openbabel.OBQueryAtom_GetIndex, None, OBQueryAtom)
OBQueryAtom.GetBonds = new_instancemethod(_openbabel.OBQueryAtom_GetBonds, None, OBQueryAtom)
OBQueryAtom.GetNbrs = new_instancemethod(_openbabel.OBQueryAtom_GetNbrs, None, OBQueryAtom)
OBQueryAtom.Matches = new_instancemethod(_openbabel.OBQueryAtom_Matches, None, OBQueryAtom)
OBQueryAtom_swigregister = _openbabel.OBQueryAtom_swigregister
OBQueryAtom_swigregister(OBQueryAtom)

class OBQueryBond(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, begin, end, order=1, aromatic=False):
        _openbabel.OBQueryBond_swiginit(self, _openbabel.new_OBQueryBond(begin, end, order, aromatic))
    __swig_destroy__ = _openbabel.delete_OBQueryBond
OBQueryBond.GetIndex = new_instancemethod(_openbabel.OBQueryBond_GetIndex, None, OBQueryBond)
OBQueryBond.GetBeginAtom = new_instancemethod(_openbabel.OBQueryBond_GetBeginAtom, None, OBQueryBond)
OBQueryBond.GetEndAtom = new_instancemethod(_openbabel.OBQueryBond_GetEndAtom, None, OBQueryBond)
OBQueryBond.Matches = new_instancemethod(_openbabel.OBQueryBond_Matches, None, OBQueryBond)
OBQueryBond_swigregister = _openbabel.OBQueryBond_swigregister
OBQueryBond_swigregister(OBQueryBond)

class OBQuery(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBQuery

    def __init__(self):
        _openbabel.OBQuery_swiginit(self, _openbabel.new_OBQuery())
OBQuery.NumAtoms = new_instancemethod(_openbabel.OBQuery_NumAtoms, None, OBQuery)
OBQuery.NumBonds = new_instancemethod(_openbabel.OBQuery_NumBonds, None, OBQuery)
OBQuery.GetAtoms = new_instancemethod(_openbabel.OBQuery_GetAtoms, None, OBQuery)
OBQuery.GetBonds = new_instancemethod(_openbabel.OBQuery_GetBonds, None, OBQuery)
OBQuery.GetBond = new_instancemethod(_openbabel.OBQuery_GetBond, None, OBQuery)
OBQuery.AddAtom = new_instancemethod(_openbabel.OBQuery_AddAtom, None, OBQuery)
OBQuery.AddBond = new_instancemethod(_openbabel.OBQuery_AddBond, None, OBQuery)
OBQuery_swigregister = _openbabel.OBQuery_swigregister
OBQuery_swigregister(OBQuery)


def CompileMoleculeQuery(*args):
    return _openbabel.CompileMoleculeQuery(*args)
CompileMoleculeQuery = _openbabel.CompileMoleculeQuery

def CompileSmilesQuery(*args):
    return _openbabel.CompileSmilesQuery(*args)
CompileSmilesQuery = _openbabel.CompileSmilesQuery

def CanonicalLabels(*args):
    return _openbabel.CanonicalLabels(*args)
CanonicalLabels = _openbabel.CanonicalLabels
class OBStereo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    CisTrans = _openbabel.OBStereo_CisTrans
    ExtendedCisTrans = _openbabel.OBStereo_ExtendedCisTrans
    SquarePlanar = _openbabel.OBStereo_SquarePlanar
    Tetrahedral = _openbabel.OBStereo_Tetrahedral
    ExtendedTetrahedral = _openbabel.OBStereo_ExtendedTetrahedral
    TrigonalBipyramidal = _openbabel.OBStereo_TrigonalBipyramidal
    Octahedral = _openbabel.OBStereo_Octahedral
    NotStereo = _openbabel.OBStereo_NotStereo
    UpBond = _openbabel.OBStereo_UpBond
    DownBond = _openbabel.OBStereo_DownBond
    UnknownDir = _openbabel.OBStereo_UnknownDir
    ShapeU = _openbabel.OBStereo_ShapeU
    ShapeZ = _openbabel.OBStereo_ShapeZ
    Shape4 = _openbabel.OBStereo_Shape4
    ViewFrom = _openbabel.OBStereo_ViewFrom
    ViewTowards = _openbabel.OBStereo_ViewTowards
    Clockwise = _openbabel.OBStereo_Clockwise
    AntiClockwise = _openbabel.OBStereo_AntiClockwise
    UnknownWinding = _openbabel.OBStereo_UnknownWinding
    NoRef = _openbabel.OBStereo_NoRef
    ImplicitRef = _openbabel.OBStereo_ImplicitRef
    MakeRefs = staticmethod(_openbabel.OBStereo_MakeRefs)
    ContainsSameRefs = staticmethod(_openbabel.OBStereo_ContainsSameRefs)
    ContainsRef = staticmethod(_openbabel.OBStereo_ContainsRef)
    NumInversions = staticmethod(_openbabel.OBStereo_NumInversions)
    Permutate = staticmethod(_openbabel.OBStereo_Permutate)
    Permutated = staticmethod(_openbabel.OBStereo_Permutated)

    def __init__(self):
        _openbabel.OBStereo_swiginit(self, _openbabel.new_OBStereo())
    __swig_destroy__ = _openbabel.delete_OBStereo
OBStereo_swigregister = _openbabel.OBStereo_swigregister
OBStereo_swigregister(OBStereo)

def OBStereo_MakeRefs(*args):
    return _openbabel.OBStereo_MakeRefs(*args)
OBStereo_MakeRefs = _openbabel.OBStereo_MakeRefs

def OBStereo_ContainsSameRefs(refs1, refs2):
    return _openbabel.OBStereo_ContainsSameRefs(refs1, refs2)
OBStereo_ContainsSameRefs = _openbabel.OBStereo_ContainsSameRefs

def OBStereo_ContainsRef(refs, ref):
    return _openbabel.OBStereo_ContainsRef(refs, ref)
OBStereo_ContainsRef = _openbabel.OBStereo_ContainsRef

def OBStereo_NumInversions(refs):
    return _openbabel.OBStereo_NumInversions(refs)
OBStereo_NumInversions = _openbabel.OBStereo_NumInversions

def OBStereo_Permutate(refs, i, j):
    return _openbabel.OBStereo_Permutate(refs, i, j)
OBStereo_Permutate = _openbabel.OBStereo_Permutate

def OBStereo_Permutated(refs, i, j):
    return _openbabel.OBStereo_Permutated(refs, i, j)
OBStereo_Permutated = _openbabel.OBStereo_Permutated

class OBStereoUnit(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBStereoUnit_swiginit(self, _openbabel.new_OBStereoUnit(*args))
    type = _swig_property(_openbabel.OBStereoUnit_type_get, _openbabel.OBStereoUnit_type_set)
    id = _swig_property(_openbabel.OBStereoUnit_id_get, _openbabel.OBStereoUnit_id_set)
    para = _swig_property(_openbabel.OBStereoUnit_para_get, _openbabel.OBStereoUnit_para_set)
    __swig_destroy__ = _openbabel.delete_OBStereoUnit
OBStereoUnit_swigregister = _openbabel.OBStereoUnit_swigregister
OBStereoUnit_swigregister(OBStereoUnit)

class OBStereoBase(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBStereoBase
OBStereoBase.GetMolecule = new_instancemethod(_openbabel.OBStereoBase_GetMolecule, None, OBStereoBase)
OBStereoBase.GetType = new_instancemethod(_openbabel.OBStereoBase_GetType, None, OBStereoBase)
OBStereoBase.SetSpecified = new_instancemethod(_openbabel.OBStereoBase_SetSpecified, None, OBStereoBase)
OBStereoBase.IsSpecified = new_instancemethod(_openbabel.OBStereoBase_IsSpecified, None, OBStereoBase)
OBStereoBase_swigregister = _openbabel.OBStereoBase_swigregister
OBStereoBase_swigregister(OBStereoBase)

class OBStereoFacade(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, mol, perceive=True):
        _openbabel.OBStereoFacade_swiginit(self, _openbabel.new_OBStereoFacade(mol, perceive))
    __swig_destroy__ = _openbabel.delete_OBStereoFacade
OBStereoFacade.NumTetrahedralStereo = new_instancemethod(_openbabel.OBStereoFacade_NumTetrahedralStereo, None, OBStereoFacade)
OBStereoFacade.GetAllTetrahedralStereo = new_instancemethod(_openbabel.OBStereoFacade_GetAllTetrahedralStereo, None, OBStereoFacade)
OBStereoFacade.HasTetrahedralStereo = new_instancemethod(_openbabel.OBStereoFacade_HasTetrahedralStereo, None, OBStereoFacade)
OBStereoFacade.GetTetrahedralStereo = new_instancemethod(_openbabel.OBStereoFacade_GetTetrahedralStereo, None, OBStereoFacade)
OBStereoFacade.NumCisTransStereo = new_instancemethod(_openbabel.OBStereoFacade_NumCisTransStereo, None, OBStereoFacade)
OBStereoFacade.GetAllCisTransStereo = new_instancemethod(_openbabel.OBStereoFacade_GetAllCisTransStereo, None, OBStereoFacade)
OBStereoFacade.HasCisTransStereo = new_instancemethod(_openbabel.OBStereoFacade_HasCisTransStereo, None, OBStereoFacade)
OBStereoFacade.GetCisTransStereo = new_instancemethod(_openbabel.OBStereoFacade_GetCisTransStereo, None, OBStereoFacade)
OBStereoFacade.NumSquarePlanarStereo = new_instancemethod(_openbabel.OBStereoFacade_NumSquarePlanarStereo, None, OBStereoFacade)
OBStereoFacade.GetAllSquarePlanarStereo = new_instancemethod(_openbabel.OBStereoFacade_GetAllSquarePlanarStereo, None, OBStereoFacade)
OBStereoFacade.HasSquarePlanarStereo = new_instancemethod(_openbabel.OBStereoFacade_HasSquarePlanarStereo, None, OBStereoFacade)
OBStereoFacade.GetSquarePlanarStereo = new_instancemethod(_openbabel.OBStereoFacade_GetSquarePlanarStereo, None, OBStereoFacade)
OBStereoFacade_swigregister = _openbabel.OBStereoFacade_swigregister
OBStereoFacade_swigregister(OBStereoFacade)


def PerceiveStereo(mol, force=False):
    return _openbabel.PerceiveStereo(mol, force)
PerceiveStereo = _openbabel.PerceiveStereo

def StereoFrom2D(mol, updown=None, force=False):
    return _openbabel.StereoFrom2D(mol, updown, force)
StereoFrom2D = _openbabel.StereoFrom2D

def StereoFrom3D(mol, force=False):
    return _openbabel.StereoFrom3D(mol, force)
StereoFrom3D = _openbabel.StereoFrom3D

def StereoFrom0D(mol):
    return _openbabel.StereoFrom0D(mol)
StereoFrom0D = _openbabel.StereoFrom0D

def TetrahedralFrom3D(mol, stereoUnits, addToMol=True):
    return _openbabel.TetrahedralFrom3D(mol, stereoUnits, addToMol)
TetrahedralFrom3D = _openbabel.TetrahedralFrom3D

def TetrahedralFrom2D(mol, stereoUnits, addToMol=True):
    return _openbabel.TetrahedralFrom2D(mol, stereoUnits, addToMol)
TetrahedralFrom2D = _openbabel.TetrahedralFrom2D

def TetrahedralFrom0D(mol, stereoUnits, addToMol=True):
    return _openbabel.TetrahedralFrom0D(mol, stereoUnits, addToMol)
TetrahedralFrom0D = _openbabel.TetrahedralFrom0D

def CisTransFrom3D(mol, stereoUnits, addToMol=True):
    return _openbabel.CisTransFrom3D(mol, stereoUnits, addToMol)
CisTransFrom3D = _openbabel.CisTransFrom3D

def CisTransFrom2D(mol, stereoUnits, updown=None, addToMol=True):
    return _openbabel.CisTransFrom2D(mol, stereoUnits, updown, addToMol)
CisTransFrom2D = _openbabel.CisTransFrom2D

def TetStereoToWedgeHash(mol, updown, arg3):
    return _openbabel.TetStereoToWedgeHash(mol, updown, arg3)
TetStereoToWedgeHash = _openbabel.TetStereoToWedgeHash

def GetUnspecifiedCisTrans(mol):
    return _openbabel.GetUnspecifiedCisTrans(mol)
GetUnspecifiedCisTrans = _openbabel.GetUnspecifiedCisTrans

def StereoRefToImplicit(mol, atomId):
    return _openbabel.StereoRefToImplicit(mol, atomId)
StereoRefToImplicit = _openbabel.StereoRefToImplicit

def ImplicitRefToStereo(mol, centerId, newId):
    return _openbabel.ImplicitRefToStereo(mol, centerId, newId)
ImplicitRefToStereo = _openbabel.ImplicitRefToStereo

def CisTransFrom0D(mol, stereoUnits, addToMol=True):
    return _openbabel.CisTransFrom0D(mol, stereoUnits, addToMol)
CisTransFrom0D = _openbabel.CisTransFrom0D

def FindStereogenicUnits(*args):
    return _openbabel.FindStereogenicUnits(*args)
FindStereogenicUnits = _openbabel.FindStereogenicUnits
class OBRotorRule(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, buffer, ref, vals, d):
        _openbabel.OBRotorRule_swiginit(self, _openbabel.new_OBRotorRule(buffer, ref, vals, d))
    __swig_destroy__ = _openbabel.delete_OBRotorRule
OBRotorRule.IsValid = new_instancemethod(_openbabel.OBRotorRule_IsValid, None, OBRotorRule)
OBRotorRule.GetReferenceAtoms = new_instancemethod(_openbabel.OBRotorRule_GetReferenceAtoms, None, OBRotorRule)
OBRotorRule.SetDelta = new_instancemethod(_openbabel.OBRotorRule_SetDelta, None, OBRotorRule)
OBRotorRule.GetDelta = new_instancemethod(_openbabel.OBRotorRule_GetDelta, None, OBRotorRule)
OBRotorRule.GetTorsionVals = new_instancemethod(_openbabel.OBRotorRule_GetTorsionVals, None, OBRotorRule)
OBRotorRule.GetSmartsString = new_instancemethod(_openbabel.OBRotorRule_GetSmartsString, None, OBRotorRule)
OBRotorRule.GetSmartsPattern = new_instancemethod(_openbabel.OBRotorRule_GetSmartsPattern, None, OBRotorRule)
OBRotorRule_swigregister = _openbabel.OBRotorRule_swigregister
OBRotorRule_swigregister(OBRotorRule)

class OBRotorRules(OBGlobalDataBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRotorRules_swiginit(self, _openbabel.new_OBRotorRules())
    __swig_destroy__ = _openbabel.delete_OBRotorRules
OBRotorRules.SetFilename = new_instancemethod(_openbabel.OBRotorRules_SetFilename, None, OBRotorRules)
OBRotorRules.GetRotorIncrements = new_instancemethod(_openbabel.OBRotorRules_GetRotorIncrements, None, OBRotorRules)
OBRotorRules.Quiet = new_instancemethod(_openbabel.OBRotorRules_Quiet, None, OBRotorRules)
OBRotorRules_swigregister = _openbabel.OBRotorRules_swigregister
OBRotorRules_swigregister(OBRotorRules)

class OBRotor(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRotor_swiginit(self, _openbabel.new_OBRotor())
    __swig_destroy__ = _openbabel.delete_OBRotor
OBRotor.SetBond = new_instancemethod(_openbabel.OBRotor_SetBond, None, OBRotor)
OBRotor.SetRings = new_instancemethod(_openbabel.OBRotor_SetRings, None, OBRotor)
OBRotor.SetIdx = new_instancemethod(_openbabel.OBRotor_SetIdx, None, OBRotor)
OBRotor.SetDihedralAtoms = new_instancemethod(_openbabel.OBRotor_SetDihedralAtoms, None, OBRotor)
OBRotor.SetRotAtoms = new_instancemethod(_openbabel.OBRotor_SetRotAtoms, None, OBRotor)
OBRotor.SetTorsionValues = new_instancemethod(_openbabel.OBRotor_SetTorsionValues, None, OBRotor)
OBRotor.SetFixedBonds = new_instancemethod(_openbabel.OBRotor_SetFixedBonds, None, OBRotor)
OBRotor.SetToAngle = new_instancemethod(_openbabel.OBRotor_SetToAngle, None, OBRotor)
OBRotor.SetRotor = new_instancemethod(_openbabel.OBRotor_SetRotor, None, OBRotor)
OBRotor.Precompute = new_instancemethod(_openbabel.OBRotor_Precompute, None, OBRotor)
OBRotor.Precalc = new_instancemethod(_openbabel.OBRotor_Precalc, None, OBRotor)
OBRotor.Set = new_instancemethod(_openbabel.OBRotor_Set, None, OBRotor)
OBRotor.GetBond = new_instancemethod(_openbabel.OBRotor_GetBond, None, OBRotor)
OBRotor.Size = new_instancemethod(_openbabel.OBRotor_Size, None, OBRotor)
OBRotor.GetIdx = new_instancemethod(_openbabel.OBRotor_GetIdx, None, OBRotor)
OBRotor.GetDihedralAtoms = new_instancemethod(_openbabel.OBRotor_GetDihedralAtoms, None, OBRotor)
OBRotor.GetTorsionValues = new_instancemethod(_openbabel.OBRotor_GetTorsionValues, None, OBRotor)
OBRotor.GetFixedBonds = new_instancemethod(_openbabel.OBRotor_GetFixedBonds, None, OBRotor)
OBRotor.CalcTorsion = new_instancemethod(_openbabel.OBRotor_CalcTorsion, None, OBRotor)
OBRotor.CalcBondLength = new_instancemethod(_openbabel.OBRotor_CalcBondLength, None, OBRotor)
OBRotor.BeginTorIncrement = new_instancemethod(_openbabel.OBRotor_BeginTorIncrement, None, OBRotor)
OBRotor.EndTorIncrement = new_instancemethod(_openbabel.OBRotor_EndTorIncrement, None, OBRotor)
OBRotor.RemoveSymTorsionValues = new_instancemethod(_openbabel.OBRotor_RemoveSymTorsionValues, None, OBRotor)
OBRotor.SetDelta = new_instancemethod(_openbabel.OBRotor_SetDelta, None, OBRotor)
OBRotor.GetDelta = new_instancemethod(_openbabel.OBRotor_GetDelta, None, OBRotor)
OBRotor.GetFixedAtoms = new_instancemethod(_openbabel.OBRotor_GetFixedAtoms, None, OBRotor)
OBRotor.SetFixedAtoms = new_instancemethod(_openbabel.OBRotor_SetFixedAtoms, None, OBRotor)
OBRotor.GetEvalAtoms = new_instancemethod(_openbabel.OBRotor_GetEvalAtoms, None, OBRotor)
OBRotor.SetEvalAtoms = new_instancemethod(_openbabel.OBRotor_SetEvalAtoms, None, OBRotor)
OBRotor.GetRotAtoms = new_instancemethod(_openbabel.OBRotor_GetRotAtoms, None, OBRotor)
OBRotor.GetResolution = new_instancemethod(_openbabel.OBRotor_GetResolution, None, OBRotor)
OBRotor.SetNumCoords = new_instancemethod(_openbabel.OBRotor_SetNumCoords, None, OBRotor)
OBRotor_swigregister = _openbabel.OBRotor_swigregister
OBRotor_swigregister(OBRotor)

class OBRotorList(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRotorList_swiginit(self, _openbabel.new_OBRotorList())
    __swig_destroy__ = _openbabel.delete_OBRotorList
OBRotorList.Clear = new_instancemethod(_openbabel.OBRotorList_Clear, None, OBRotorList)
OBRotorList.Size = new_instancemethod(_openbabel.OBRotorList_Size, None, OBRotorList)
OBRotorList.IsFixedBond = new_instancemethod(_openbabel.OBRotorList_IsFixedBond, None, OBRotorList)
OBRotorList.HasFixedBonds = new_instancemethod(_openbabel.OBRotorList_HasFixedBonds, None, OBRotorList)
OBRotorList.RemoveSymVals = new_instancemethod(_openbabel.OBRotorList_RemoveSymVals, None, OBRotorList)
OBRotorList.HasRingRotors = new_instancemethod(_openbabel.OBRotorList_HasRingRotors, None, OBRotorList)
OBRotorList.Setup = new_instancemethod(_openbabel.OBRotorList_Setup, None, OBRotorList)
OBRotorList.SetFixedBonds = new_instancemethod(_openbabel.OBRotorList_SetFixedBonds, None, OBRotorList)
OBRotorList.Init = new_instancemethod(_openbabel.OBRotorList_Init, None, OBRotorList)
OBRotorList.SetQuiet = new_instancemethod(_openbabel.OBRotorList_SetQuiet, None, OBRotorList)
OBRotorList.SetRotAtoms = new_instancemethod(_openbabel.OBRotorList_SetRotAtoms, None, OBRotorList)
OBRotorList.FindRotors = new_instancemethod(_openbabel.OBRotorList_FindRotors, None, OBRotorList)
OBRotorList.SetEvalAtoms = new_instancemethod(_openbabel.OBRotorList_SetEvalAtoms, None, OBRotorList)
OBRotorList.AssignTorVals = new_instancemethod(_openbabel.OBRotorList_AssignTorVals, None, OBRotorList)
OBRotorList.BeginRotor = new_instancemethod(_openbabel.OBRotorList_BeginRotor, None, OBRotorList)
OBRotorList.NextRotor = new_instancemethod(_openbabel.OBRotorList_NextRotor, None, OBRotorList)
OBRotorList.BeginRotors = new_instancemethod(_openbabel.OBRotorList_BeginRotors, None, OBRotorList)
OBRotorList.EndRotors = new_instancemethod(_openbabel.OBRotorList_EndRotors, None, OBRotorList)
OBRotorList.IdentifyEvalAtoms = new_instancemethod(_openbabel.OBRotorList_IdentifyEvalAtoms, None, OBRotorList)
OBRotorList.SetFixAtoms = new_instancemethod(_openbabel.OBRotorList_SetFixAtoms, None, OBRotorList)
OBRotorList.HasFixedAtoms = new_instancemethod(_openbabel.OBRotorList_HasFixedAtoms, None, OBRotorList)
OBRotorList.IgnoreSymmetryRemoval = new_instancemethod(_openbabel.OBRotorList_IgnoreSymmetryRemoval, None, OBRotorList)
OBRotorList.SetRotAtomsByFix = new_instancemethod(_openbabel.OBRotorList_SetRotAtomsByFix, None, OBRotorList)
OBRotorList_swigregister = _openbabel.OBRotorList_swigregister
OBRotorList_swigregister(OBRotorList)

class rotor_digit(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.rotor_digit_swiginit(self, _openbabel.new_rotor_digit(*args))
    __swig_destroy__ = _openbabel.delete_rotor_digit
rotor_digit.set_size = new_instancemethod(_openbabel.rotor_digit_set_size, None, rotor_digit)
rotor_digit.set_state = new_instancemethod(_openbabel.rotor_digit_set_state, None, rotor_digit)
rotor_digit.get_state = new_instancemethod(_openbabel.rotor_digit_get_state, None, rotor_digit)
rotor_digit.size = new_instancemethod(_openbabel.rotor_digit_size, None, rotor_digit)
rotor_digit.next = new_instancemethod(_openbabel.rotor_digit_next, None, rotor_digit)
rotor_digit_swigregister = _openbabel.rotor_digit_swigregister
rotor_digit_swigregister(rotor_digit)

class OBRotorKeys(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRotorKeys_swiginit(self, _openbabel.new_OBRotorKeys())
    __swig_destroy__ = _openbabel.delete_OBRotorKeys
OBRotorKeys.Clear = new_instancemethod(_openbabel.OBRotorKeys_Clear, None, OBRotorKeys)
OBRotorKeys.NumKeys = new_instancemethod(_openbabel.OBRotorKeys_NumKeys, None, OBRotorKeys)
OBRotorKeys.AddRotor = new_instancemethod(_openbabel.OBRotorKeys_AddRotor, None, OBRotorKeys)
OBRotorKeys.Next = new_instancemethod(_openbabel.OBRotorKeys_Next, None, OBRotorKeys)
OBRotorKeys.GetKey = new_instancemethod(_openbabel.OBRotorKeys_GetKey, None, OBRotorKeys)
OBRotorKeys_swigregister = _openbabel.OBRotorKeys_swigregister
OBRotorKeys_swigregister(OBRotorKeys)

class OBRotamerList(OBGenericData):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRotamerList_swiginit(self, _openbabel.new_OBRotamerList())
    __swig_destroy__ = _openbabel.delete_OBRotamerList
OBRotamerList.Setup = new_instancemethod(_openbabel.OBRotamerList_Setup, None, OBRotamerList)
OBRotamerList.NumRotors = new_instancemethod(_openbabel.OBRotamerList_NumRotors, None, OBRotamerList)
OBRotamerList.NumRotamers = new_instancemethod(_openbabel.OBRotamerList_NumRotamers, None, OBRotamerList)
OBRotamerList.AddRotamer = new_instancemethod(_openbabel.OBRotamerList_AddRotamer, None, OBRotamerList)
OBRotamerList.AddRotamers = new_instancemethod(_openbabel.OBRotamerList_AddRotamers, None, OBRotamerList)
OBRotamerList.GetReferenceArray = new_instancemethod(_openbabel.OBRotamerList_GetReferenceArray, None, OBRotamerList)
OBRotamerList.BeginRotamer = new_instancemethod(_openbabel.OBRotamerList_BeginRotamer, None, OBRotamerList)
OBRotamerList.EndRotamer = new_instancemethod(_openbabel.OBRotamerList_EndRotamer, None, OBRotamerList)
OBRotamerList.CreateConformerList = new_instancemethod(_openbabel.OBRotamerList_CreateConformerList, None, OBRotamerList)
OBRotamerList.ExpandConformerList = new_instancemethod(_openbabel.OBRotamerList_ExpandConformerList, None, OBRotamerList)
OBRotamerList.SetCurrentCoordinates = new_instancemethod(_openbabel.OBRotamerList_SetCurrentCoordinates, None, OBRotamerList)
OBRotamerList.SetBaseCoordinateSets = new_instancemethod(_openbabel.OBRotamerList_SetBaseCoordinateSets, None, OBRotamerList)
OBRotamerList.NumBaseCoordinateSets = new_instancemethod(_openbabel.OBRotamerList_NumBaseCoordinateSets, None, OBRotamerList)
OBRotamerList.GetBaseCoordinateSet = new_instancemethod(_openbabel.OBRotamerList_GetBaseCoordinateSet, None, OBRotamerList)
OBRotamerList.NumAtoms = new_instancemethod(_openbabel.OBRotamerList_NumAtoms, None, OBRotamerList)
OBRotamerList_swigregister = _openbabel.OBRotamerList_swigregister
OBRotamerList_swigregister(OBRotamerList)

N_PROPERTIES = _openbabel.N_PROPERTIES
class OBSpectrophore(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    AngStepSize1 = _openbabel.OBSpectrophore_AngStepSize1
    AngStepSize2 = _openbabel.OBSpectrophore_AngStepSize2
    AngStepSize5 = _openbabel.OBSpectrophore_AngStepSize5
    AngStepSize10 = _openbabel.OBSpectrophore_AngStepSize10
    AngStepSize15 = _openbabel.OBSpectrophore_AngStepSize15
    AngStepSize20 = _openbabel.OBSpectrophore_AngStepSize20
    AngStepSize30 = _openbabel.OBSpectrophore_AngStepSize30
    AngStepSize36 = _openbabel.OBSpectrophore_AngStepSize36
    AngStepSize45 = _openbabel.OBSpectrophore_AngStepSize45
    AngStepSize60 = _openbabel.OBSpectrophore_AngStepSize60
    NoNormalization = _openbabel.OBSpectrophore_NoNormalization
    NormalizationTowardsZeroMean = _openbabel.OBSpectrophore_NormalizationTowardsZeroMean
    NormalizationTowardsUnitStd = _openbabel.OBSpectrophore_NormalizationTowardsUnitStd
    NormalizationTowardsZeroMeanAndUnitStd = _openbabel.OBSpectrophore_NormalizationTowardsZeroMeanAndUnitStd
    NoStereoSpecificProbes = _openbabel.OBSpectrophore_NoStereoSpecificProbes
    UniqueStereoSpecificProbes = _openbabel.OBSpectrophore_UniqueStereoSpecificProbes
    MirrorStereoSpecificProbes = _openbabel.OBSpectrophore_MirrorStereoSpecificProbes
    AllStereoSpecificProbes = _openbabel.OBSpectrophore_AllStereoSpecificProbes

    def __init__(self, *args):
        _openbabel.OBSpectrophore_swiginit(self, _openbabel.new_OBSpectrophore(*args))
    __swig_destroy__ = _openbabel.delete_OBSpectrophore
OBSpectrophore.SetResolution = new_instancemethod(_openbabel.OBSpectrophore_SetResolution, None, OBSpectrophore)
OBSpectrophore.SetAccuracy = new_instancemethod(_openbabel.OBSpectrophore_SetAccuracy, None, OBSpectrophore)
OBSpectrophore.SetStereo = new_instancemethod(_openbabel.OBSpectrophore_SetStereo, None, OBSpectrophore)
OBSpectrophore.SetNormalization = new_instancemethod(_openbabel.OBSpectrophore_SetNormalization, None, OBSpectrophore)
OBSpectrophore.GetAccuracy = new_instancemethod(_openbabel.OBSpectrophore_GetAccuracy, None, OBSpectrophore)
OBSpectrophore.GetResolution = new_instancemethod(_openbabel.OBSpectrophore_GetResolution, None, OBSpectrophore)
OBSpectrophore.GetStereo = new_instancemethod(_openbabel.OBSpectrophore_GetStereo, None, OBSpectrophore)
OBSpectrophore.GetNormalization = new_instancemethod(_openbabel.OBSpectrophore_GetNormalization, None, OBSpectrophore)
OBSpectrophore.GetSpectrophore = new_instancemethod(_openbabel.OBSpectrophore_GetSpectrophore, None, OBSpectrophore)
OBSpectrophore_swigregister = _openbabel.OBSpectrophore_swigregister
OBSpectrophore_swigregister(OBSpectrophore)

class OBConformerFilter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBConformerFilter
OBConformerFilter.IsGood = new_instancemethod(_openbabel.OBConformerFilter_IsGood, None, OBConformerFilter)
OBConformerFilter_swigregister = _openbabel.OBConformerFilter_swigregister
OBConformerFilter_swigregister(OBConformerFilter)

class OBConformerFilters(OBConformerFilter):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, filters):
        _openbabel.OBConformerFilters_swiginit(self, _openbabel.new_OBConformerFilters(filters))
    __swig_destroy__ = _openbabel.delete_OBConformerFilters
OBConformerFilters_swigregister = _openbabel.OBConformerFilters_swigregister
OBConformerFilters_swigregister(OBConformerFilters)

class OBStericConformerFilter(OBConformerFilter):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBStericConformerFilter_swiginit(self, _openbabel.new_OBStericConformerFilter(*args))
    __swig_destroy__ = _openbabel.delete_OBStericConformerFilter
OBStericConformerFilter_swigregister = _openbabel.OBStericConformerFilter_swigregister
OBStericConformerFilter_swigregister(OBStericConformerFilter)

class OBConformerScore(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    HighScore = _openbabel.OBConformerScore_HighScore
    LowScore = _openbabel.OBConformerScore_LowScore
    Highest = _openbabel.OBConformerScore_Highest
    Lowest = _openbabel.OBConformerScore_Lowest
    Sum = _openbabel.OBConformerScore_Sum
    Average = _openbabel.OBConformerScore_Average
    __swig_destroy__ = _openbabel.delete_OBConformerScore
OBConformerScore.GetPreferred = new_instancemethod(_openbabel.OBConformerScore_GetPreferred, None, OBConformerScore)
OBConformerScore.GetConvergence = new_instancemethod(_openbabel.OBConformerScore_GetConvergence, None, OBConformerScore)
OBConformerScore.Score = new_instancemethod(_openbabel.OBConformerScore_Score, None, OBConformerScore)
OBConformerScore_swigregister = _openbabel.OBConformerScore_swigregister
OBConformerScore_swigregister(OBConformerScore)

class OBRMSDConformerScore(OBConformerScore):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBRMSDConformerScore_swiginit(self, _openbabel.new_OBRMSDConformerScore())
    __swig_destroy__ = _openbabel.delete_OBRMSDConformerScore
OBRMSDConformerScore_swigregister = _openbabel.OBRMSDConformerScore_swigregister
OBRMSDConformerScore_swigregister(OBRMSDConformerScore)

class OBEnergyConformerScore(OBConformerScore):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBEnergyConformerScore_swiginit(self, _openbabel.new_OBEnergyConformerScore())
    __swig_destroy__ = _openbabel.delete_OBEnergyConformerScore
OBEnergyConformerScore.GetNbEnergyCompute = new_instancemethod(_openbabel.OBEnergyConformerScore_GetNbEnergyCompute, None, OBEnergyConformerScore)
OBEnergyConformerScore.GetNbEnergyRequest = new_instancemethod(_openbabel.OBEnergyConformerScore_GetNbEnergyRequest, None, OBEnergyConformerScore)
OBEnergyConformerScore_swigregister = _openbabel.OBEnergyConformerScore_swigregister
OBEnergyConformerScore_swigregister(OBEnergyConformerScore)

class OBMinimizingEnergyConformerScore(OBConformerScore):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBMinimizingEnergyConformerScore_swiginit(self, _openbabel.new_OBMinimizingEnergyConformerScore())
    __swig_destroy__ = _openbabel.delete_OBMinimizingEnergyConformerScore
OBMinimizingEnergyConformerScore.GetNbEnergyCompute = new_instancemethod(_openbabel.OBMinimizingEnergyConformerScore_GetNbEnergyCompute, None, OBMinimizingEnergyConformerScore)
OBMinimizingEnergyConformerScore.GetNbEnergyRequest = new_instancemethod(_openbabel.OBMinimizingEnergyConformerScore_GetNbEnergyRequest, None, OBMinimizingEnergyConformerScore)
OBMinimizingEnergyConformerScore_swigregister = _openbabel.OBMinimizingEnergyConformerScore_swigregister
OBMinimizingEnergyConformerScore_swigregister(OBMinimizingEnergyConformerScore)

class OBMinimizingRMSDConformerScore(OBConformerScore):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBMinimizingRMSDConformerScore_swiginit(self, _openbabel.new_OBMinimizingRMSDConformerScore())
    __swig_destroy__ = _openbabel.delete_OBMinimizingRMSDConformerScore
OBMinimizingRMSDConformerScore_swigregister = _openbabel.OBMinimizingRMSDConformerScore_swigregister
OBMinimizingRMSDConformerScore_swigregister(OBMinimizingRMSDConformerScore)

class OBConformerSearch(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _openbabel.OBConformerSearch_swiginit(self, _openbabel.new_OBConformerSearch())
    __swig_destroy__ = _openbabel.delete_OBConformerSearch
OBConformerSearch.Setup = new_instancemethod(_openbabel.OBConformerSearch_Setup, None, OBConformerSearch)
OBConformerSearch.SetNumConformers = new_instancemethod(_openbabel.OBConformerSearch_SetNumConformers, None, OBConformerSearch)
OBConformerSearch.SetNumChildren = new_instancemethod(_openbabel.OBConformerSearch_SetNumChildren, None, OBConformerSearch)
OBConformerSearch.SetMutability = new_instancemethod(_openbabel.OBConformerSearch_SetMutability, None, OBConformerSearch)
OBConformerSearch.SetConvergence = new_instancemethod(_openbabel.OBConformerSearch_SetConvergence, None, OBConformerSearch)
OBConformerSearch.SetFixedBonds = new_instancemethod(_openbabel.OBConformerSearch_SetFixedBonds, None, OBConformerSearch)
OBConformerSearch.SetFilter = new_instancemethod(_openbabel.OBConformerSearch_SetFilter, None, OBConformerSearch)
OBConformerSearch.SetScore = new_instancemethod(_openbabel.OBConformerSearch_SetScore, None, OBConformerSearch)
OBConformerSearch.PrintRotors = new_instancemethod(_openbabel.OBConformerSearch_PrintRotors, None, OBConformerSearch)
OBConformerSearch.Search = new_instancemethod(_openbabel.OBConformerSearch_Search, None, OBConformerSearch)
OBConformerSearch.GetRotorKeys = new_instancemethod(_openbabel.OBConformerSearch_GetRotorKeys, None, OBConformerSearch)
OBConformerSearch.GetConformers = new_instancemethod(_openbabel.OBConformerSearch_GetConformers, None, OBConformerSearch)
OBConformerSearch.SetLogStream = new_instancemethod(_openbabel.OBConformerSearch_SetLogStream, None, OBConformerSearch)
OBConformerSearch.SetSharing = new_instancemethod(_openbabel.OBConformerSearch_SetSharing, None, OBConformerSearch)
OBConformerSearch.GetNbNiches = new_instancemethod(_openbabel.OBConformerSearch_GetNbNiches, None, OBConformerSearch)
OBConformerSearch.SetNbNiches = new_instancemethod(_openbabel.OBConformerSearch_SetNbNiches, None, OBConformerSearch)
OBConformerSearch.GetNicheRadius = new_instancemethod(_openbabel.OBConformerSearch_GetNicheRadius, None, OBConformerSearch)
OBConformerSearch.SetNicheRadius = new_instancemethod(_openbabel.OBConformerSearch_SetNicheRadius, None, OBConformerSearch)
OBConformerSearch.GetAlphaSharing = new_instancemethod(_openbabel.OBConformerSearch_GetAlphaSharing, None, OBConformerSearch)
OBConformerSearch.SetAlphaSharing = new_instancemethod(_openbabel.OBConformerSearch_SetAlphaSharing, None, OBConformerSearch)
OBConformerSearch.GetSigmaSharing = new_instancemethod(_openbabel.OBConformerSearch_GetSigmaSharing, None, OBConformerSearch)
OBConformerSearch.SetSigmaSharing = new_instancemethod(_openbabel.OBConformerSearch_SetSigmaSharing, None, OBConformerSearch)
OBConformerSearch.GetCrossoverProbability = new_instancemethod(_openbabel.OBConformerSearch_GetCrossoverProbability, None, OBConformerSearch)
OBConformerSearch.SetCrossoverProbability = new_instancemethod(_openbabel.OBConformerSearch_SetCrossoverProbability, None, OBConformerSearch)
OBConformerSearch.GetNicheMating = new_instancemethod(_openbabel.OBConformerSearch_GetNicheMating, None, OBConformerSearch)
OBConformerSearch.SetNicheMating = new_instancemethod(_openbabel.OBConformerSearch_SetNicheMating, None, OBConformerSearch)
OBConformerSearch.SetLocalOptRate = new_instancemethod(_openbabel.OBConformerSearch_SetLocalOptRate, None, OBConformerSearch)
OBConformerSearch_swigregister = _openbabel.OBConformerSearch_swigregister
OBConformerSearch_swigregister(OBConformerSearch)

class OBAlign(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBAlign_swiginit(self, _openbabel.new_OBAlign(*args))
    Kabsch = _openbabel.OBAlign_Kabsch
    QCP = _openbabel.OBAlign_QCP
    __swig_destroy__ = _openbabel.delete_OBAlign
OBAlign.SetRef = new_instancemethod(_openbabel.OBAlign_SetRef, None, OBAlign)
OBAlign.SetTarget = new_instancemethod(_openbabel.OBAlign_SetTarget, None, OBAlign)
OBAlign.SetRefMol = new_instancemethod(_openbabel.OBAlign_SetRefMol, None, OBAlign)
OBAlign.SetTargetMol = new_instancemethod(_openbabel.OBAlign_SetTargetMol, None, OBAlign)
OBAlign.Align = new_instancemethod(_openbabel.OBAlign_Align, None, OBAlign)
OBAlign.SetMethod = new_instancemethod(_openbabel.OBAlign_SetMethod, None, OBAlign)
OBAlign.GetRMSD = new_instancemethod(_openbabel.OBAlign_GetRMSD, None, OBAlign)
OBAlign.GetRotMatrix = new_instancemethod(_openbabel.OBAlign_GetRotMatrix, None, OBAlign)
OBAlign.GetAlignment = new_instancemethod(_openbabel.OBAlign_GetAlignment, None, OBAlign)
OBAlign.UpdateCoords = new_instancemethod(_openbabel.OBAlign_UpdateCoords, None, OBAlign)
OBAlign_swigregister = _openbabel.OBAlign_swigregister
OBAlign_swigregister(OBAlign)

class _OBMolAtomIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolAtomIter_swiginit(self, _openbabel.new__OBMolAtomIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolAtomIter

    def __nonzero__(self):
        return _openbabel._OBMolAtomIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolAtomIter.inc = new_instancemethod(_openbabel._OBMolAtomIter_inc, None, _OBMolAtomIter)
_OBMolAtomIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomIter___ref__, None, _OBMolAtomIter)
_OBMolAtomIter_swigregister = _openbabel._OBMolAtomIter_swigregister
_OBMolAtomIter_swigregister(_OBMolAtomIter)

class _OBMolAtomDFSIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolAtomDFSIter_swiginit(self, _openbabel.new__OBMolAtomDFSIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolAtomDFSIter

    def __nonzero__(self):
        return _openbabel._OBMolAtomDFSIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolAtomDFSIter.inc = new_instancemethod(_openbabel._OBMolAtomDFSIter_inc, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomDFSIter___ref__, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.next = new_instancemethod(_openbabel._OBMolAtomDFSIter_next, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter_swigregister = _openbabel._OBMolAtomDFSIter_swigregister
_OBMolAtomDFSIter_swigregister(_OBMolAtomDFSIter)

class _OBMolAtomBFSIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolAtomBFSIter_swiginit(self, _openbabel.new__OBMolAtomBFSIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolAtomBFSIter

    def __nonzero__(self):
        return _openbabel._OBMolAtomBFSIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolAtomBFSIter.inc = new_instancemethod(_openbabel._OBMolAtomBFSIter_inc, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomBFSIter___ref__, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CurrentDepth = new_instancemethod(_openbabel._OBMolAtomBFSIter_CurrentDepth, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter_swigregister = _openbabel._OBMolAtomBFSIter_swigregister
_OBMolAtomBFSIter_swigregister(_OBMolAtomBFSIter)

class OBMolBondBFSIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel.OBMolBondBFSIter_swiginit(self, _openbabel.new_OBMolBondBFSIter(*args))
    __swig_destroy__ = _openbabel.delete_OBMolBondBFSIter

    def __nonzero__(self):
        return _openbabel.OBMolBondBFSIter___nonzero__(self)
    __bool__ = __nonzero__


OBMolBondBFSIter.inc = new_instancemethod(_openbabel.OBMolBondBFSIter_inc, None, OBMolBondBFSIter)
OBMolBondBFSIter.__ref__ = new_instancemethod(_openbabel.OBMolBondBFSIter___ref__, None, OBMolBondBFSIter)
OBMolBondBFSIter.CurrentDepth = new_instancemethod(_openbabel.OBMolBondBFSIter_CurrentDepth, None, OBMolBondBFSIter)
OBMolBondBFSIter_swigregister = _openbabel.OBMolBondBFSIter_swigregister
OBMolBondBFSIter_swigregister(OBMolBondBFSIter)

class _OBMolBondIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolBondIter_swiginit(self, _openbabel.new__OBMolBondIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolBondIter

    def __nonzero__(self):
        return _openbabel._OBMolBondIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolBondIter.inc = new_instancemethod(_openbabel._OBMolBondIter_inc, None, _OBMolBondIter)
_OBMolBondIter.__ref__ = new_instancemethod(_openbabel._OBMolBondIter___ref__, None, _OBMolBondIter)
_OBMolBondIter_swigregister = _openbabel._OBMolBondIter_swigregister
_OBMolBondIter_swigregister(_OBMolBondIter)

class _OBAtomAtomIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBAtomAtomIter_swiginit(self, _openbabel.new__OBAtomAtomIter(*args))
    __swig_destroy__ = _openbabel.delete__OBAtomAtomIter

    def __nonzero__(self):
        return _openbabel._OBAtomAtomIter___nonzero__(self)
    __bool__ = __nonzero__


_OBAtomAtomIter.inc = new_instancemethod(_openbabel._OBAtomAtomIter_inc, None, _OBAtomAtomIter)
_OBAtomAtomIter.__ref__ = new_instancemethod(_openbabel._OBAtomAtomIter___ref__, None, _OBAtomAtomIter)
_OBAtomAtomIter_swigregister = _openbabel._OBAtomAtomIter_swigregister
_OBAtomAtomIter_swigregister(_OBAtomAtomIter)

class _OBAtomBondIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBAtomBondIter_swiginit(self, _openbabel.new__OBAtomBondIter(*args))
    __swig_destroy__ = _openbabel.delete__OBAtomBondIter

    def __nonzero__(self):
        return _openbabel._OBAtomBondIter___nonzero__(self)
    __bool__ = __nonzero__


_OBAtomBondIter.inc = new_instancemethod(_openbabel._OBAtomBondIter_inc, None, _OBAtomBondIter)
_OBAtomBondIter.__ref__ = new_instancemethod(_openbabel._OBAtomBondIter___ref__, None, _OBAtomBondIter)
_OBAtomBondIter_swigregister = _openbabel._OBAtomBondIter_swigregister
_OBAtomBondIter_swigregister(_OBAtomBondIter)

class _OBResidueIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBResidueIter_swiginit(self, _openbabel.new__OBResidueIter(*args))
    __swig_destroy__ = _openbabel.delete__OBResidueIter

    def __nonzero__(self):
        return _openbabel._OBResidueIter___nonzero__(self)
    __bool__ = __nonzero__


_OBResidueIter.inc = new_instancemethod(_openbabel._OBResidueIter_inc, None, _OBResidueIter)
_OBResidueIter.__ref__ = new_instancemethod(_openbabel._OBResidueIter___ref__, None, _OBResidueIter)
_OBResidueIter_swigregister = _openbabel._OBResidueIter_swigregister
_OBResidueIter_swigregister(_OBResidueIter)

class _OBResidueAtomIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBResidueAtomIter_swiginit(self, _openbabel.new__OBResidueAtomIter(*args))
    __swig_destroy__ = _openbabel.delete__OBResidueAtomIter

    def __nonzero__(self):
        return _openbabel._OBResidueAtomIter___nonzero__(self)
    __bool__ = __nonzero__


_OBResidueAtomIter.inc = new_instancemethod(_openbabel._OBResidueAtomIter_inc, None, _OBResidueAtomIter)
_OBResidueAtomIter.__ref__ = new_instancemethod(_openbabel._OBResidueAtomIter___ref__, None, _OBResidueAtomIter)
_OBResidueAtomIter_swigregister = _openbabel._OBResidueAtomIter_swigregister
_OBResidueAtomIter_swigregister(_OBResidueAtomIter)

class _OBMolAngleIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolAngleIter_swiginit(self, _openbabel.new__OBMolAngleIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolAngleIter

    def __nonzero__(self):
        return _openbabel._OBMolAngleIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolAngleIter.inc = new_instancemethod(_openbabel._OBMolAngleIter_inc, None, _OBMolAngleIter)
_OBMolAngleIter.__ref__ = new_instancemethod(_openbabel._OBMolAngleIter___ref__, None, _OBMolAngleIter)
_OBMolAngleIter_swigregister = _openbabel._OBMolAngleIter_swigregister
_OBMolAngleIter_swigregister(_OBMolAngleIter)

class _OBMolTorsionIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolTorsionIter_swiginit(self, _openbabel.new__OBMolTorsionIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolTorsionIter

    def __nonzero__(self):
        return _openbabel._OBMolTorsionIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolTorsionIter.inc = new_instancemethod(_openbabel._OBMolTorsionIter_inc, None, _OBMolTorsionIter)
_OBMolTorsionIter.__ref__ = new_instancemethod(_openbabel._OBMolTorsionIter___ref__, None, _OBMolTorsionIter)
_OBMolTorsionIter_swigregister = _openbabel._OBMolTorsionIter_swigregister
_OBMolTorsionIter_swigregister(_OBMolTorsionIter)

class _OBMolPairIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolPairIter_swiginit(self, _openbabel.new__OBMolPairIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolPairIter

    def __nonzero__(self):
        return _openbabel._OBMolPairIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolPairIter.inc = new_instancemethod(_openbabel._OBMolPairIter_inc, None, _OBMolPairIter)
_OBMolPairIter.__ref__ = new_instancemethod(_openbabel._OBMolPairIter___ref__, None, _OBMolPairIter)
_OBMolPairIter_swigregister = _openbabel._OBMolPairIter_swigregister
_OBMolPairIter_swigregister(_OBMolPairIter)

class _OBMolRingIter(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _openbabel._OBMolRingIter_swiginit(self, _openbabel.new__OBMolRingIter(*args))
    __swig_destroy__ = _openbabel.delete__OBMolRingIter

    def __nonzero__(self):
        return _openbabel._OBMolRingIter___nonzero__(self)
    __bool__ = __nonzero__


_OBMolRingIter.inc = new_instancemethod(_openbabel._OBMolRingIter_inc, None, _OBMolRingIter)
_OBMolRingIter.__ref__ = new_instancemethod(_openbabel._OBMolRingIter___ref__, None, _OBMolRingIter)
_OBMolRingIter_swigregister = _openbabel._OBMolRingIter_swigregister
_OBMolRingIter_swigregister(_OBMolRingIter)


class OBIter(object):
    OBiterator = None # This is defined by the subclasses

    def __init__(self, *params):
        self.iter = self.OBiterator(*params)
        self.finished = False
        if not self.iter.__bool__():
            self.finished = True

    def __iter__(self):
        return self

    def next(self):
        if not self.finished:
            b = self.iter.__ref__()
            self.iter.inc()
            if not self.iter.__bool__():
# There is nothing left to iterate over
                self.finished = True
            return b
        else:
            raise StopIteration

    __next__ = next

class OBIterWithDepth(OBIter):
    def next(self):
        if not self.finished:
            b = self.iter.__ref__()
            depth = self.iter.CurrentDepth()
            self.iter.inc()
            if not self.iter.__bool__():
# There is nothing left to iterate over
                self.finished = True
            return b, depth
        else:
            raise StopIteration

    __next__ = next

class OBAtomAtomIter(OBIter):
    """Iterator over the atoms attached to an atom."""
    OBiterator = _OBAtomAtomIter
class OBAtomBondIter(OBIter):
    """Iterator over the bonds attached to an atom."""
    OBiterator = _OBAtomBondIter
class OBMolAngleIter(OBIter):
    """Iterator over the angles in a molecule."""
    OBiterator = _OBMolAngleIter
class OBMolAtomIter(OBIter):
    """Iterator over the atoms in a molecule."""
    OBiterator = _OBMolAtomIter
class OBMolAtomBFSIter(OBIterWithDepth):
    """Iterator over the atoms in a molecule in a breadth-first manner."""
    OBiterator = _OBMolAtomBFSIter
class OBMolAtomDFSIter(OBIter):
    """Iterator over the atoms in a molecule in a depth-first manner."""
    OBiterator = _OBMolAtomDFSIter
class OBMolBondIter(OBIter):
    """Iterator over the bonds in a molecule."""
    OBiterator = _OBMolBondIter
class OBMolPairIter(OBIter):
    """Iterator over pairs of atoms in a molecule."""
    OBiterator = _OBMolPairIter
class OBMolRingIter(OBIter):
    """Iterator over the rings in a molecule."""
    OBiterator = _OBMolRingIter
class OBMolTorsionIter(OBIter):
    """Iterator over the torsion angles in a molecule."""
    OBiterator = _OBMolTorsionIter
class OBResidueIter(OBIter):
    """Iterator over the residues in a molecule."""
    OBiterator = _OBResidueIter
class OBResidueAtomIter(OBIter):
    """Iterator over the atoms in a residue."""
    OBiterator = _OBResidueAtomIter

class doubleArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, nelements):
        _openbabel.doubleArray_swiginit(self, _openbabel.new_doubleArray(nelements))
    __swig_destroy__ = _openbabel.delete_doubleArray
    frompointer = staticmethod(_openbabel.doubleArray_frompointer)
doubleArray.__getitem__ = new_instancemethod(_openbabel.doubleArray___getitem__, None, doubleArray)
doubleArray.__setitem__ = new_instancemethod(_openbabel.doubleArray___setitem__, None, doubleArray)
doubleArray.cast = new_instancemethod(_openbabel.doubleArray_cast, None, doubleArray)
doubleArray_swigregister = _openbabel.doubleArray_swigregister
doubleArray_swigregister(doubleArray)

def doubleArray_frompointer(t):
    return _openbabel.doubleArray_frompointer(t)
doubleArray_frompointer = _openbabel.doubleArray_frompointer


def double_array(mylist):
    """Create a C array of doubles from a list."""
    c = doubleArray(len(mylist))
    for i,v in enumerate(mylist):
        c[i] = v
    return c


obErrorLog = cvar.obErrorLog
ttab = cvar.ttab
atomtyper = cvar.atomtyper
aromtyper = cvar.aromtyper


def exception(*args):
    raise Exception("Use OBMol.CloneData instead. OBMol.SetData is only for use from C++.")
OBMol.SetData = exception

class OBTetraNonPlanarStereo(OBStereoBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBTetraNonPlanarStereo
OBTetraNonPlanarStereo_swigregister = _openbabel.OBTetraNonPlanarStereo_swigregister
OBTetraNonPlanarStereo_swigregister(OBTetraNonPlanarStereo)

class OBTetraPlanarStereo(OBStereoBase):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _openbabel.delete_OBTetraPlanarStereo
OBTetraPlanarStereo_swigregister = _openbabel.OBTetraPlanarStereo_swigregister
OBTetraPlanarStereo_swigregister(OBTetraPlanarStereo)

class OBTetrahedralStereo(OBTetraNonPlanarStereo):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, mol):
        _openbabel.OBTetrahedralStereo_swiginit(self, _openbabel.new_OBTetrahedralStereo(mol))
    __swig_destroy__ = _openbabel.delete_OBTetrahedralStereo
OBTetrahedralStereo.IsValid = new_instancemethod(_openbabel.OBTetrahedralStereo_IsValid, None, OBTetrahedralStereo)
OBTetrahedralStereo.__eq__ = new_instancemethod(_openbabel.OBTetrahedralStereo___eq__, None, OBTetrahedralStereo)
OBTetrahedralStereo.__ne__ = new_instancemethod(_openbabel.OBTetrahedralStereo___ne__, None, OBTetrahedralStereo)
OBTetrahedralStereo.SetConfig = new_instancemethod(_openbabel.OBTetrahedralStereo_SetConfig, None, OBTetrahedralStereo)
OBTetrahedralStereo.GetConfig = new_instancemethod(_openbabel.OBTetrahedralStereo_GetConfig, None, OBTetrahedralStereo)
OBTetrahedralStereo_swigregister = _openbabel.OBTetrahedralStereo_swigregister
OBTetrahedralStereo_swigregister(OBTetrahedralStereo)

class OBCisTransStereo(OBTetraPlanarStereo):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, mol):
        _openbabel.OBCisTransStereo_swiginit(self, _openbabel.new_OBCisTransStereo(mol))
    __swig_destroy__ = _openbabel.delete_OBCisTransStereo
OBCisTransStereo.IsValid = new_instancemethod(_openbabel.OBCisTransStereo_IsValid, None, OBCisTransStereo)
OBCisTransStereo.__eq__ = new_instancemethod(_openbabel.OBCisTransStereo___eq__, None, OBCisTransStereo)
OBCisTransStereo.__ne__ = new_instancemethod(_openbabel.OBCisTransStereo___ne__, None, OBCisTransStereo)
OBCisTransStereo.IsOnSameAtom = new_instancemethod(_openbabel.OBCisTransStereo_IsOnSameAtom, None, OBCisTransStereo)
OBCisTransStereo.IsTrans = new_instancemethod(_openbabel.OBCisTransStereo_IsTrans, None, OBCisTransStereo)
OBCisTransStereo.IsCis = new_instancemethod(_openbabel.OBCisTransStereo_IsCis, None, OBCisTransStereo)
OBCisTransStereo.GetTransRef = new_instancemethod(_openbabel.OBCisTransStereo_GetTransRef, None, OBCisTransStereo)
OBCisTransStereo.GetCisRef = new_instancemethod(_openbabel.OBCisTransStereo_GetCisRef, None, OBCisTransStereo)
OBCisTransStereo.SetConfig = new_instancemethod(_openbabel.OBCisTransStereo_SetConfig, None, OBCisTransStereo)
OBCisTransStereo.GetConfig = new_instancemethod(_openbabel.OBCisTransStereo_GetConfig, None, OBCisTransStereo)
OBCisTransStereo_swigregister = _openbabel.OBCisTransStereo_swigregister
OBCisTransStereo_swigregister(OBCisTransStereo)

class OBSquarePlanarStereo(OBTetraPlanarStereo):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, mol):
        _openbabel.OBSquarePlanarStereo_swiginit(self, _openbabel.new_OBSquarePlanarStereo(mol))
    __swig_destroy__ = _openbabel.delete_OBSquarePlanarStereo
OBSquarePlanarStereo.IsValid = new_instancemethod(_openbabel.OBSquarePlanarStereo_IsValid, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.__eq__ = new_instancemethod(_openbabel.OBSquarePlanarStereo___eq__, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.__ne__ = new_instancemethod(_openbabel.OBSquarePlanarStereo___ne__, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.IsTrans = new_instancemethod(_openbabel.OBSquarePlanarStereo_IsTrans, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.IsCis = new_instancemethod(_openbabel.OBSquarePlanarStereo_IsCis, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.GetTransRef = new_instancemethod(_openbabel.OBSquarePlanarStereo_GetTransRef, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.GetCisRefs = new_instancemethod(_openbabel.OBSquarePlanarStereo_GetCisRefs, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.SetConfig = new_instancemethod(_openbabel.OBSquarePlanarStereo_SetConfig, None, OBSquarePlanarStereo)
OBSquarePlanarStereo.GetConfig = new_instancemethod(_openbabel.OBSquarePlanarStereo_GetConfig, None, OBSquarePlanarStereo)
OBSquarePlanarStereo_swigregister = _openbabel.OBSquarePlanarStereo_swigregister
OBSquarePlanarStereo_swigregister(OBSquarePlanarStereo)

class OBTetrahedralConfig(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    center = _swig_property(_openbabel.OBTetrahedralConfig_center_get, _openbabel.OBTetrahedralConfig_center_set)
    from_or_towards = _swig_property(_openbabel.OBTetrahedralConfig_from_or_towards_get, _openbabel.OBTetrahedralConfig_from_or_towards_set)
    refs = _swig_property(_openbabel.OBTetrahedralConfig_refs_get, _openbabel.OBTetrahedralConfig_refs_set)
    winding = _swig_property(_openbabel.OBTetrahedralConfig_winding_get, _openbabel.OBTetrahedralConfig_winding_set)
    view = _swig_property(_openbabel.OBTetrahedralConfig_view_get, _openbabel.OBTetrahedralConfig_view_set)
    specified = _swig_property(_openbabel.OBTetrahedralConfig_specified_get, _openbabel.OBTetrahedralConfig_specified_set)

    def __init__(self):
        _openbabel.OBTetrahedralConfig_swiginit(self, _openbabel.new_OBTetrahedralConfig())
    __swig_destroy__ = _openbabel.delete_OBTetrahedralConfig
OBTetrahedralConfig.__eq__ = new_instancemethod(_openbabel.OBTetrahedralConfig___eq__, None, OBTetrahedralConfig)
OBTetrahedralConfig.__ne__ = new_instancemethod(_openbabel.OBTetrahedralConfig___ne__, None, OBTetrahedralConfig)
OBTetrahedralConfig_swigregister = _openbabel.OBTetrahedralConfig_swigregister
OBTetrahedralConfig_swigregister(OBTetrahedralConfig)

class OBCisTransConfig(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    begin = _swig_property(_openbabel.OBCisTransConfig_begin_get, _openbabel.OBCisTransConfig_begin_set)
    end = _swig_property(_openbabel.OBCisTransConfig_end_get, _openbabel.OBCisTransConfig_end_set)
    refs = _swig_property(_openbabel.OBCisTransConfig_refs_get, _openbabel.OBCisTransConfig_refs_set)
    shape = _swig_property(_openbabel.OBCisTransConfig_shape_get, _openbabel.OBCisTransConfig_shape_set)
    specified = _swig_property(_openbabel.OBCisTransConfig_specified_get, _openbabel.OBCisTransConfig_specified_set)

    def __init__(self):
        _openbabel.OBCisTransConfig_swiginit(self, _openbabel.new_OBCisTransConfig())
    __swig_destroy__ = _openbabel.delete_OBCisTransConfig
OBCisTransConfig.__eq__ = new_instancemethod(_openbabel.OBCisTransConfig___eq__, None, OBCisTransConfig)
OBCisTransConfig.__ne__ = new_instancemethod(_openbabel.OBCisTransConfig___ne__, None, OBCisTransConfig)
OBCisTransConfig_swigregister = _openbabel.OBCisTransConfig_swigregister
OBCisTransConfig_swigregister(OBCisTransConfig)

class OBSquarePlanarConfig(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    center = _swig_property(_openbabel.OBSquarePlanarConfig_center_get, _openbabel.OBSquarePlanarConfig_center_set)
    refs = _swig_property(_openbabel.OBSquarePlanarConfig_refs_get, _openbabel.OBSquarePlanarConfig_refs_set)
    shape = _swig_property(_openbabel.OBSquarePlanarConfig_shape_get, _openbabel.OBSquarePlanarConfig_shape_set)
    specified = _swig_property(_openbabel.OBSquarePlanarConfig_specified_get, _openbabel.OBSquarePlanarConfig_specified_set)

    def __init__(self):
        _openbabel.OBSquarePlanarConfig_swiginit(self, _openbabel.new_OBSquarePlanarConfig())
    __swig_destroy__ = _openbabel.delete_OBSquarePlanarConfig
OBSquarePlanarConfig.__eq__ = new_instancemethod(_openbabel.OBSquarePlanarConfig___eq__, None, OBSquarePlanarConfig)
OBSquarePlanarConfig.__ne__ = new_instancemethod(_openbabel.OBSquarePlanarConfig___ne__, None, OBSquarePlanarConfig)
OBSquarePlanarConfig_swigregister = _openbabel.OBSquarePlanarConfig_swigregister
OBSquarePlanarConfig_swigregister(OBSquarePlanarConfig)



