Hom's Blog


OpenBabel.py by SWIG

Relative install files.

CMakelist.txt is used to generated the relatived SWIG input file for differenet languages.

openbabel-python.i and stereo.i are used to generated the SWIG file (openbabel-python.cpp and openbabel.py)

setup.py is used by pip to do the similar thing of CMake.

openbabel-python.cpp is used to generate _openbabel.so library from openbabel and SWIG, which is used to link the python-cpp object.

openbabel.py is used to link the _openbabel.so library to python and map the objects from cpp to python.

CMakelist.txt

openbabel-python.i

stereo.i

setup.py

openbabel.py

This file is important for openbabel in python. The relative classes (properties and methods), functions, iterators can be searched in this file!

import sys
if sys.platform.find('linux') != -1:
  try:
    import dl
  except ImportError:
    import DLFCN as dl
  sys.setdlopenflags(sys.getdlopenflags() | dl.RTLD_GLOBAL)
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.7
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info
if 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 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
        if fp is not None:
            try:
                _mod = imp.load_module('_openbabel', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _openbabel = swig_import_helper()
    del swig_import_helper
else:
    import _openbabel
del version_info
try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.


def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        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_nondynamic(self, class_type, name, static=1):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    if (not static):
        return object.__getattr__(self, name)
    else:
        raise AttributeError(name)

def _swig_getattr(self, class_type, name):
    return _swig_getattr_nondynamic(self, class_type, name, 0)


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

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



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


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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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.pop = new_instancemethod(_openbabel.vvpairUIntUInt_pop, 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.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.clear = new_instancemethod(_openbabel.vvpairUIntUInt_clear, None, vvpairUIntUInt)
vvpairUIntUInt.swap = new_instancemethod(_openbabel.vvpairUIntUInt_swap, None, vvpairUIntUInt)
vvpairUIntUInt.get_allocator = new_instancemethod(_openbabel.vvpairUIntUInt_get_allocator, 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.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 toAtomClassData(data):
    return _openbabel.toAtomClassData(data)
toAtomClassData = _openbabel.toAtomClassData

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

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 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 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 OBElement(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.OBElement_swiginit(self, _openbabel.new_OBElement(*args))
    __swig_destroy__ = _openbabel.delete_OBElement
OBElement.GetAtomicNum = new_instancemethod(_openbabel.OBElement_GetAtomicNum, None, OBElement)
OBElement.GetSymbol = new_instancemethod(_openbabel.OBElement_GetSymbol, None, OBElement)
OBElement.GetCovalentRad = new_instancemethod(_openbabel.OBElement_GetCovalentRad, None, OBElement)
OBElement.GetVdwRad = new_instancemethod(_openbabel.OBElement_GetVdwRad, None, OBElement)
OBElement.GetMass = new_instancemethod(_openbabel.OBElement_GetMass, None, OBElement)
OBElement.GetMaxBonds = new_instancemethod(_openbabel.OBElement_GetMaxBonds, None, OBElement)
OBElement.GetElectroNeg = new_instancemethod(_openbabel.OBElement_GetElectroNeg, None, OBElement)
OBElement.GetAllredRochowElectroNeg = new_instancemethod(_openbabel.OBElement_GetAllredRochowElectroNeg, None, OBElement)
OBElement.GetIonization = new_instancemethod(_openbabel.OBElement_GetIonization, None, OBElement)
OBElement.GetElectronAffinity = new_instancemethod(_openbabel.OBElement_GetElectronAffinity, None, OBElement)
OBElement.GetName = new_instancemethod(_openbabel.OBElement_GetName, None, OBElement)
OBElement.GetRed = new_instancemethod(_openbabel.OBElement_GetRed, None, OBElement)
OBElement.GetGreen = new_instancemethod(_openbabel.OBElement_GetGreen, None, OBElement)
OBElement.GetBlue = new_instancemethod(_openbabel.OBElement_GetBlue, None, OBElement)
OBElement_swigregister = _openbabel.OBElement_swigregister
OBElement_swigregister(OBElement)

class OBElementTable(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.OBElementTable_swiginit(self, _openbabel.new_OBElementTable())
    __swig_destroy__ = _openbabel.delete_OBElementTable
OBElementTable.GetNumberOfElements = new_instancemethod(_openbabel.OBElementTable_GetNumberOfElements, None, OBElementTable)
OBElementTable.GetAtomicNum = new_instancemethod(_openbabel.OBElementTable_GetAtomicNum, None, OBElementTable)
OBElementTable.GetSymbol = new_instancemethod(_openbabel.OBElementTable_GetSymbol, None, OBElementTable)
OBElementTable.GetVdwRad = new_instancemethod(_openbabel.OBElementTable_GetVdwRad, None, OBElementTable)
OBElementTable.GetCovalentRad = new_instancemethod(_openbabel.OBElementTable_GetCovalentRad, None, OBElementTable)
OBElementTable.GetMass = new_instancemethod(_openbabel.OBElementTable_GetMass, None, OBElementTable)
OBElementTable.CorrectedBondRad = new_instancemethod(_openbabel.OBElementTable_CorrectedBondRad, None, OBElementTable)
OBElementTable.CorrectedVdwRad = new_instancemethod(_openbabel.OBElementTable_CorrectedVdwRad, None, OBElementTable)
OBElementTable.GetMaxBonds = new_instancemethod(_openbabel.OBElementTable_GetMaxBonds, None, OBElementTable)
OBElementTable.GetElectroNeg = new_instancemethod(_openbabel.OBElementTable_GetElectroNeg, None, OBElementTable)
OBElementTable.GetAllredRochowElectroNeg = new_instancemethod(_openbabel.OBElementTable_GetAllredRochowElectroNeg, None, OBElementTable)
OBElementTable.GetIonization = new_instancemethod(_openbabel.OBElementTable_GetIonization, None, OBElementTable)
OBElementTable.GetElectronAffinity = new_instancemethod(_openbabel.OBElementTable_GetElectronAffinity, None, OBElementTable)
OBElementTable.GetRGB = new_instancemethod(_openbabel.OBElementTable_GetRGB, None, OBElementTable)
OBElementTable.GetName = new_instancemethod(_openbabel.OBElementTable_GetName, None, OBElementTable)
OBElementTable_swigregister = _openbabel.OBElementTable_swigregister
OBElementTable_swigregister(OBElementTable)

class OBIsotopeTable(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.OBIsotopeTable_swiginit(self, _openbabel.new_OBIsotopeTable())
    __swig_destroy__ = _openbabel.delete_OBIsotopeTable
OBIsotopeTable.GetExactMass = new_instancemethod(_openbabel.OBIsotopeTable_GetExactMass, None, OBIsotopeTable)
OBIsotopeTable_swigregister = _openbabel.OBIsotopeTable_swigregister
OBIsotopeTable_swigregister(OBIsotopeTable)

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)

class DoubleType(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    hi = _swig_property(_openbabel.DoubleType_hi_get, _openbabel.DoubleType_hi_set)
    lo = _swig_property(_openbabel.DoubleType_lo_get, _openbabel.DoubleType_lo_set)

    def __init__(self):
        _openbabel.DoubleType_swiginit(self, _openbabel.new_DoubleType())
    __swig_destroy__ = _openbabel.delete_DoubleType
DoubleType_swigregister = _openbabel.DoubleType_swigregister
DoubleType_swigregister(DoubleType)


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

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

def DoubleModulus(arg1, arg2):
    return _openbabel.DoubleModulus(arg1, arg2)
DoubleModulus = _openbabel.DoubleModulus
class OBRandom(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, useSys=False):
        _openbabel.OBRandom_swiginit(self, _openbabel.new_OBRandom(useSys))
    __swig_destroy__ = _openbabel.delete_OBRandom
OBRandom.Seed = new_instancemethod(_openbabel.OBRandom_Seed, None, OBRandom)
OBRandom.TimeSeed = new_instancemethod(_openbabel.OBRandom_TimeSeed, None, OBRandom)
OBRandom.NextInt = new_instancemethod(_openbabel.OBRandom_NextInt, None, OBRandom)
OBRandom.NextFloat = new_instancemethod(_openbabel.OBRandom_NextFloat, None, OBRandom)
OBRandom_swigregister = _openbabel.OBRandom_swigregister
OBRandom_swigregister(OBRandom)


_openbabel.M_PI_swigconstant(_openbabel)
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

_openbabel.RAD_TO_DEG_swigconstant(_openbabel)
RAD_TO_DEG = _openbabel.RAD_TO_DEG

_openbabel.DEG_TO_RAD_swigconstant(_openbabel)
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
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.__idiv__ = new_instancemethod(_openbabel.vector3___idiv__, 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 __div__(v, c):
    return _openbabel.__div__(v, c)
__div__ = _openbabel.__div__

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
    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.randomRotation = new_instancemethod(_openbabel.matrix3x3_randomRotation, 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.__idiv__ = new_instancemethod(_openbabel.matrix3x3___idiv__, 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)
cvar = _openbabel.cvar
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)
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


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

_openbabel.UndefinedData_swigconstant(_openbabel)
UndefinedData = _openbabel.UndefinedData

_openbabel.PairData_swigconstant(_openbabel)
PairData = _openbabel.PairData

_openbabel.EnergyData_swigconstant(_openbabel)
EnergyData = _openbabel.EnergyData

_openbabel.CommentData_swigconstant(_openbabel)
CommentData = _openbabel.CommentData

_openbabel.ConformerData_swigconstant(_openbabel)
ConformerData = _openbabel.ConformerData

_openbabel.ExternalBondData_swigconstant(_openbabel)
ExternalBondData = _openbabel.ExternalBondData

_openbabel.RotamerList_swigconstant(_openbabel)
RotamerList = _openbabel.RotamerList

_openbabel.VirtualBondData_swigconstant(_openbabel)
VirtualBondData = _openbabel.VirtualBondData

_openbabel.RingData_swigconstant(_openbabel)
RingData = _openbabel.RingData

_openbabel.TorsionData_swigconstant(_openbabel)
TorsionData = _openbabel.TorsionData

_openbabel.AngleData_swigconstant(_openbabel)
AngleData = _openbabel.AngleData

_openbabel.SerialNums_swigconstant(_openbabel)
SerialNums = _openbabel.SerialNums

_openbabel.UnitCell_swigconstant(_openbabel)
UnitCell = _openbabel.UnitCell

_openbabel.SpinData_swigconstant(_openbabel)
SpinData = _openbabel.SpinData

_openbabel.ChargeData_swigconstant(_openbabel)
ChargeData = _openbabel.ChargeData

_openbabel.SymmetryData_swigconstant(_openbabel)
SymmetryData = _openbabel.SymmetryData

_openbabel.ChiralData_swigconstant(_openbabel)
ChiralData = _openbabel.ChiralData

_openbabel.OccupationData_swigconstant(_openbabel)
OccupationData = _openbabel.OccupationData

_openbabel.DensityData_swigconstant(_openbabel)
DensityData = _openbabel.DensityData

_openbabel.ElectronicData_swigconstant(_openbabel)
ElectronicData = _openbabel.ElectronicData

_openbabel.VibrationData_swigconstant(_openbabel)
VibrationData = _openbabel.VibrationData

_openbabel.RotationData_swigconstant(_openbabel)
RotationData = _openbabel.RotationData

_openbabel.NuclearData_swigconstant(_openbabel)
NuclearData = _openbabel.NuclearData

_openbabel.SetData_swigconstant(_openbabel)
SetData = _openbabel.SetData

_openbabel.GridData_swigconstant(_openbabel)
GridData = _openbabel.GridData

_openbabel.VectorData_swigconstant(_openbabel)
VectorData = _openbabel.VectorData

_openbabel.MatrixData_swigconstant(_openbabel)
MatrixData = _openbabel.MatrixData

_openbabel.StereoData_swigconstant(_openbabel)
StereoData = _openbabel.StereoData

_openbabel.DOSData_swigconstant(_openbabel)
DOSData = _openbabel.DOSData

_openbabel.ElectronicTransitionData_swigconstant(_openbabel)
ElectronicTransitionData = _openbabel.ElectronicTransitionData

_openbabel.CustomData0_swigconstant(_openbabel)
CustomData0 = _openbabel.CustomData0

_openbabel.CustomData1_swigconstant(_openbabel)
CustomData1 = _openbabel.CustomData1

_openbabel.CustomData2_swigconstant(_openbabel)
CustomData2 = _openbabel.CustomData2

_openbabel.CustomData3_swigconstant(_openbabel)
CustomData3 = _openbabel.CustomData3

_openbabel.CustomData4_swigconstant(_openbabel)
CustomData4 = _openbabel.CustomData4

_openbabel.CustomData5_swigconstant(_openbabel)
CustomData5 = _openbabel.CustomData5

_openbabel.CustomData6_swigconstant(_openbabel)
CustomData6 = _openbabel.CustomData6

_openbabel.CustomData7_swigconstant(_openbabel)
CustomData7 = _openbabel.CustomData7

_openbabel.CustomData8_swigconstant(_openbabel)
CustomData8 = _openbabel.CustomData8

_openbabel.CustomData9_swigconstant(_openbabel)
CustomData9 = _openbabel.CustomData9

_openbabel.CustomData10_swigconstant(_openbabel)
CustomData10 = _openbabel.CustomData10

_openbabel.CustomData11_swigconstant(_openbabel)
CustomData11 = _openbabel.CustomData11

_openbabel.CustomData12_swigconstant(_openbabel)
CustomData12 = _openbabel.CustomData12

_openbabel.CustomData13_swigconstant(_openbabel)
CustomData13 = _openbabel.CustomData13

_openbabel.CustomData14_swigconstant(_openbabel)
CustomData14 = _openbabel.CustomData14

_openbabel.CustomData15_swigconstant(_openbabel)
CustomData15 = _openbabel.CustomData15

_openbabel.any_swigconstant(_openbabel)
any = _openbabel.any

_openbabel.fileformatInput_swigconstant(_openbabel)
fileformatInput = _openbabel.fileformatInput

_openbabel.userInput_swigconstant(_openbabel)
userInput = _openbabel.userInput

_openbabel.perceived_swigconstant(_openbabel)
perceived = _openbabel.perceived

_openbabel.external_swigconstant(_openbabel)
external = _openbabel.external

_openbabel.local_swigconstant(_openbabel)
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.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)


_openbabel.output_swigconstant(_openbabel)
output = _openbabel.output

_openbabel.input_swigconstant(_openbabel)
input = _openbabel.input

_openbabel.calcvolume_swigconstant(_openbabel)
calcvolume = _openbabel.calcvolume
class OBChiralData(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.OBChiralData_swiginit(self, _openbabel.new_OBChiralData(*args))
    __swig_destroy__ = _openbabel.delete_OBChiralData
OBChiralData.Clear = new_instancemethod(_openbabel.OBChiralData_Clear, None, OBChiralData)
OBChiralData.GetAtom4Refs = new_instancemethod(_openbabel.OBChiralData_GetAtom4Refs, None, OBChiralData)
OBChiralData.GetAtomRef = new_instancemethod(_openbabel.OBChiralData_GetAtomRef, None, OBChiralData)
OBChiralData.SetAtom4Refs = new_instancemethod(_openbabel.OBChiralData_SetAtom4Refs, None, OBChiralData)
OBChiralData.AddAtomRef = new_instancemethod(_openbabel.OBChiralData_AddAtomRef, None, OBChiralData)
OBChiralData.GetSize = new_instancemethod(_openbabel.OBChiralData_GetSize, None, OBChiralData)
OBChiralData_swigregister = _openbabel.OBChiralData_swigregister
OBChiralData_swigregister(OBChiralData)

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_swigregister = _openbabel.OBFreeGrid_swigregister
OBFreeGrid_swigregister(OBFreeGrid)

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)


_openbabel.MaxMonoAtom_swigconstant(_openbabel)
MaxMonoAtom = _openbabel.MaxMonoAtom

_openbabel.MaxMonoBond_swigconstant(_openbabel)
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):
        _openbabel.OBAtomTyper_swiginit(self, _openbabel.new_OBAtomTyper())
    __swig_destroy__ = _openbabel.delete_OBAtomTyper
OBAtomTyper.AssignHyb = new_instancemethod(_openbabel.OBAtomTyper_AssignHyb, None, OBAtomTyper)
OBAtomTyper.AssignTypes = new_instancemethod(_openbabel.OBAtomTyper_AssignTypes, None, OBAtomTyper)
OBAtomTyper.AssignImplicitValence = new_instancemethod(_openbabel.OBAtomTyper_AssignImplicitValence, None, OBAtomTyper)
OBAtomTyper.CorrectAromaticNitrogens = new_instancemethod(_openbabel.OBAtomTyper_CorrectAromaticNitrogens, None, OBAtomTyper)
OBAtomTyper_swigregister = _openbabel.OBAtomTyper_swigregister
OBAtomTyper_swigregister(OBAtomTyper)

class OBAromaticTyper(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.OBAromaticTyper_swiginit(self, _openbabel.new_OBAromaticTyper())
    __swig_destroy__ = _openbabel.delete_OBAromaticTyper
OBAromaticTyper.AssignAromaticFlags = new_instancemethod(_openbabel.OBAromaticTyper_AssignAromaticFlags, None, OBAromaticTyper)
OBAromaticTyper.PropagatePotentialAromatic = new_instancemethod(_openbabel.OBAromaticTyper_PropagatePotentialAromatic, None, OBAromaticTyper)
OBAromaticTyper.SelectRootAtoms = new_instancemethod(_openbabel.OBAromaticTyper_SelectRootAtoms, None, OBAromaticTyper)
OBAromaticTyper.ExcludeSmallRing = new_instancemethod(_openbabel.OBAromaticTyper_ExcludeSmallRing, None, OBAromaticTyper)
OBAromaticTyper.CheckAromaticity = new_instancemethod(_openbabel.OBAromaticTyper_CheckAromaticity, None, OBAromaticTyper)
OBAromaticTyper.TraverseCycle = new_instancemethod(_openbabel.OBAromaticTyper_TraverseCycle, 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)
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

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)


_openbabel.obError_swigconstant(_openbabel)
obError = _openbabel.obError

_openbabel.obWarning_swigconstant(_openbabel)
obWarning = _openbabel.obWarning

_openbabel.obInfo_swigconstant(_openbabel)
obInfo = _openbabel.obInfo

_openbabel.obAuditMsg_swigconstant(_openbabel)
obAuditMsg = _openbabel.obAuditMsg

_openbabel.obDebug_swigconstant(_openbabel)
obDebug = _openbabel.obDebug

_openbabel.always_swigconstant(_openbabel)
always = _openbabel.always

_openbabel.onceOnly_swigconstant(_openbabel)
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)


_openbabel.NOTREADABLE_swigconstant(_openbabel)
NOTREADABLE = _openbabel.NOTREADABLE

_openbabel.READONEONLY_swigconstant(_openbabel)
READONEONLY = _openbabel.READONEONLY

_openbabel.READBINARY_swigconstant(_openbabel)
READBINARY = _openbabel.READBINARY

_openbabel.ZEROATOMSOK_swigconstant(_openbabel)
ZEROATOMSOK = _openbabel.ZEROATOMSOK

_openbabel.NOTWRITABLE_swigconstant(_openbabel)
NOTWRITABLE = _openbabel.NOTWRITABLE

_openbabel.WRITEONEONLY_swigconstant(_openbabel)
WRITEONEONLY = _openbabel.WRITEONEONLY

_openbabel.WRITEBINARY_swigconstant(_openbabel)
WRITEBINARY = _openbabel.WRITEBINARY

_openbabel.READXML_swigconstant(_openbabel)
READXML = _openbabel.READXML

_openbabel.DEPICTION2D_swigconstant(_openbabel)
DEPICTION2D = _openbabel.DEPICTION2D

_openbabel.DEFAULTFORMAT_swigconstant(_openbabel)
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

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.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.GetAtoms = new_instancemethod(_openbabel.OBResidue_GetAtoms, 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.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)


_openbabel.MAXSETNO_swigconstant(_openbabel)
MAXSETNO = _openbabel.MAXSETNO

_openbabel.MAXELEM_swigconstant(_openbabel)
MAXELEM = _openbabel.MAXELEM

_openbabel.MINELEM_swigconstant(_openbabel)
MINELEM = _openbabel.MINELEM

_openbabel.MAXRES_swigconstant(_openbabel)
MAXRES = _openbabel.MAXRES

_openbabel.MINRES_swigconstant(_openbabel)
MINRES = _openbabel.MINRES

_openbabel.AA_ALA_swigconstant(_openbabel)
AA_ALA = _openbabel.AA_ALA

_openbabel.AA_GLY_swigconstant(_openbabel)
AA_GLY = _openbabel.AA_GLY

_openbabel.AA_LEU_swigconstant(_openbabel)
AA_LEU = _openbabel.AA_LEU

_openbabel.AA_SER_swigconstant(_openbabel)
AA_SER = _openbabel.AA_SER

_openbabel.AA_VAL_swigconstant(_openbabel)
AA_VAL = _openbabel.AA_VAL

_openbabel.AA_THR_swigconstant(_openbabel)
AA_THR = _openbabel.AA_THR

_openbabel.AA_LYS_swigconstant(_openbabel)
AA_LYS = _openbabel.AA_LYS

_openbabel.AA_ASP_swigconstant(_openbabel)
AA_ASP = _openbabel.AA_ASP

_openbabel.AA_ILE_swigconstant(_openbabel)
AA_ILE = _openbabel.AA_ILE

_openbabel.AA_ASN_swigconstant(_openbabel)
AA_ASN = _openbabel.AA_ASN

_openbabel.AA_GLU_swigconstant(_openbabel)
AA_GLU = _openbabel.AA_GLU

_openbabel.AA_PRO_swigconstant(_openbabel)
AA_PRO = _openbabel.AA_PRO

_openbabel.AA_ARG_swigconstant(_openbabel)
AA_ARG = _openbabel.AA_ARG

_openbabel.AA_PHE_swigconstant(_openbabel)
AA_PHE = _openbabel.AA_PHE

_openbabel.AA_GLN_swigconstant(_openbabel)
AA_GLN = _openbabel.AA_GLN

_openbabel.AA_TYR_swigconstant(_openbabel)
AA_TYR = _openbabel.AA_TYR

_openbabel.AA_HIS_swigconstant(_openbabel)
AA_HIS = _openbabel.AA_HIS

_openbabel.AA_CYS_swigconstant(_openbabel)
AA_CYS = _openbabel.AA_CYS

_openbabel.AA_MET_swigconstant(_openbabel)
AA_MET = _openbabel.AA_MET

_openbabel.AA_TRP_swigconstant(_openbabel)
AA_TRP = _openbabel.AA_TRP

_openbabel.ACIDIC_swigconstant(_openbabel)
ACIDIC = _openbabel.ACIDIC

_openbabel.ACYCLIC_swigconstant(_openbabel)
ACYCLIC = _openbabel.ACYCLIC

_openbabel.ALIPHATIC_swigconstant(_openbabel)
ALIPHATIC = _openbabel.ALIPHATIC

_openbabel.AROMATIC_swigconstant(_openbabel)
AROMATIC = _openbabel.AROMATIC

_openbabel.BASIC_swigconstant(_openbabel)
BASIC = _openbabel.BASIC

_openbabel.BURIED_swigconstant(_openbabel)
BURIED = _openbabel.BURIED

_openbabel.CHARGED_swigconstant(_openbabel)
CHARGED = _openbabel.CHARGED

_openbabel.CYCLIC_swigconstant(_openbabel)
CYCLIC = _openbabel.CYCLIC

_openbabel.HYDROPHOBIC_swigconstant(_openbabel)
HYDROPHOBIC = _openbabel.HYDROPHOBIC

_openbabel.LARGE_swigconstant(_openbabel)
LARGE = _openbabel.LARGE

_openbabel.MEDIUM_swigconstant(_openbabel)
MEDIUM = _openbabel.MEDIUM

_openbabel.NEGATIVE_swigconstant(_openbabel)
NEGATIVE = _openbabel.NEGATIVE

_openbabel.NEUTRAL_swigconstant(_openbabel)
NEUTRAL = _openbabel.NEUTRAL

_openbabel.POLAR_swigconstant(_openbabel)
POLAR = _openbabel.POLAR

_openbabel.POSITIVE_swigconstant(_openbabel)
POSITIVE = _openbabel.POSITIVE

_openbabel.SMALL_swigconstant(_openbabel)
SMALL = _openbabel.SMALL

_openbabel.SURFACE_swigconstant(_openbabel)
SURFACE = _openbabel.SURFACE

_openbabel.ALPHA_CARBON_swigconstant(_openbabel)
ALPHA_CARBON = _openbabel.ALPHA_CARBON

_openbabel.AMINO_BACKBONE_swigconstant(_openbabel)
AMINO_BACKBONE = _openbabel.AMINO_BACKBONE

_openbabel.BACKBONE_swigconstant(_openbabel)
BACKBONE = _openbabel.BACKBONE

_openbabel.CYSTEINE_SULPHUR_swigconstant(_openbabel)
CYSTEINE_SULPHUR = _openbabel.CYSTEINE_SULPHUR

_openbabel.LIGAND_swigconstant(_openbabel)
LIGAND = _openbabel.LIGAND

_openbabel.NUCLEIC_BACKBONE_swigconstant(_openbabel)
NUCLEIC_BACKBONE = _openbabel.NUCLEIC_BACKBONE

_openbabel.SHAPELY_BACKBONE_swigconstant(_openbabel)
SHAPELY_BACKBONE = _openbabel.SHAPELY_BACKBONE

_openbabel.SHAPELY_SPECIAL_swigconstant(_openbabel)
SHAPELY_SPECIAL = _openbabel.SHAPELY_SPECIAL

_openbabel.SIDECHAIN_swigconstant(_openbabel)
SIDECHAIN = _openbabel.SIDECHAIN

_openbabel.SUGAR_PHOSPHATE_swigconstant(_openbabel)
SUGAR_PHOSPHATE = _openbabel.SUGAR_PHOSPHATE

_openbabel.ALA_swigconstant(_openbabel)
ALA = _openbabel.ALA

_openbabel.GLY_swigconstant(_openbabel)
GLY = _openbabel.GLY

_openbabel.LEU_swigconstant(_openbabel)
LEU = _openbabel.LEU

_openbabel.SER_swigconstant(_openbabel)
SER = _openbabel.SER

_openbabel.VAL_swigconstant(_openbabel)
VAL = _openbabel.VAL

_openbabel.THR_swigconstant(_openbabel)
THR = _openbabel.THR

_openbabel.LYS_swigconstant(_openbabel)
LYS = _openbabel.LYS

_openbabel.ASP_swigconstant(_openbabel)
ASP = _openbabel.ASP

_openbabel.ILE_swigconstant(_openbabel)
ILE = _openbabel.ILE

_openbabel.ASN_swigconstant(_openbabel)
ASN = _openbabel.ASN

_openbabel.GLU_swigconstant(_openbabel)
GLU = _openbabel.GLU

_openbabel.PRO_swigconstant(_openbabel)
PRO = _openbabel.PRO

_openbabel.ARG_swigconstant(_openbabel)
ARG = _openbabel.ARG

_openbabel.PHE_swigconstant(_openbabel)
PHE = _openbabel.PHE

_openbabel.GLN_swigconstant(_openbabel)
GLN = _openbabel.GLN

_openbabel.TYR_swigconstant(_openbabel)
TYR = _openbabel.TYR

_openbabel.HIS_swigconstant(_openbabel)
HIS = _openbabel.HIS

_openbabel.CYS_swigconstant(_openbabel)
CYS = _openbabel.CYS

_openbabel.MET_swigconstant(_openbabel)
MET = _openbabel.MET

_openbabel.TRP_swigconstant(_openbabel)
TRP = _openbabel.TRP

_openbabel.ASX_swigconstant(_openbabel)
ASX = _openbabel.ASX

_openbabel.GLX_swigconstant(_openbabel)
GLX = _openbabel.GLX

_openbabel.PCA_swigconstant(_openbabel)
PCA = _openbabel.PCA

_openbabel.HYP_swigconstant(_openbabel)
HYP = _openbabel.HYP

_openbabel.A_swigconstant(_openbabel)
A = _openbabel.A

_openbabel.C_swigconstant(_openbabel)
C = _openbabel.C

_openbabel.G_swigconstant(_openbabel)
G = _openbabel.G

_openbabel.T_swigconstant(_openbabel)
T = _openbabel.T

_openbabel.U_swigconstant(_openbabel)
U = _openbabel.U

_openbabel.UPLUS_swigconstant(_openbabel)
UPLUS = _openbabel.UPLUS

_openbabel.I_swigconstant(_openbabel)
I = _openbabel.I

_openbabel._1MA_swigconstant(_openbabel)
_1MA = _openbabel._1MA

_openbabel._5MC_swigconstant(_openbabel)
_5MC = _openbabel._5MC

_openbabel.OMC_swigconstant(_openbabel)
OMC = _openbabel.OMC

_openbabel._1MG_swigconstant(_openbabel)
_1MG = _openbabel._1MG

_openbabel._2MG_swigconstant(_openbabel)
_2MG = _openbabel._2MG

_openbabel.M2G_swigconstant(_openbabel)
M2G = _openbabel.M2G

_openbabel._7MG_swigconstant(_openbabel)
_7MG = _openbabel._7MG

_openbabel.OMG_swigconstant(_openbabel)
OMG = _openbabel.OMG

_openbabel.YG_swigconstant(_openbabel)
YG = _openbabel.YG

_openbabel.H2U_swigconstant(_openbabel)
H2U = _openbabel.H2U

_openbabel._5MU_swigconstant(_openbabel)
_5MU = _openbabel._5MU

_openbabel.PSU_swigconstant(_openbabel)
PSU = _openbabel.PSU

_openbabel.UNK_swigconstant(_openbabel)
UNK = _openbabel.UNK

_openbabel.ACE_swigconstant(_openbabel)
ACE = _openbabel.ACE

_openbabel.FOR_swigconstant(_openbabel)
FOR = _openbabel.FOR

_openbabel.HOH_swigconstant(_openbabel)
HOH = _openbabel.HOH

_openbabel.DOD_swigconstant(_openbabel)
DOD = _openbabel.DOD

_openbabel.SO4_swigconstant(_openbabel)
SO4 = _openbabel.SO4

_openbabel.PO4_swigconstant(_openbabel)
PO4 = _openbabel.PO4

_openbabel.NAD_swigconstant(_openbabel)
NAD = _openbabel.NAD

_openbabel.COA_swigconstant(_openbabel)
COA = _openbabel.COA

_openbabel.NAP_swigconstant(_openbabel)
NAP = _openbabel.NAP

_openbabel.NDP_swigconstant(_openbabel)
NDP = _openbabel.NDP

_openbabel.AMINO_swigconstant(_openbabel)
AMINO = _openbabel.AMINO

_openbabel.AMINO_NUCLEO_swigconstant(_openbabel)
AMINO_NUCLEO = _openbabel.AMINO_NUCLEO

_openbabel.COENZYME_swigconstant(_openbabel)
COENZYME = _openbabel.COENZYME

_openbabel.ION_swigconstant(_openbabel)
ION = _openbabel.ION

_openbabel.NUCLEO_swigconstant(_openbabel)
NUCLEO = _openbabel.NUCLEO

_openbabel.PROTEIN_swigconstant(_openbabel)
PROTEIN = _openbabel.PROTEIN

_openbabel.PURINE_swigconstant(_openbabel)
PURINE = _openbabel.PURINE

_openbabel.PYRIMIDINE_swigconstant(_openbabel)
PYRIMIDINE = _openbabel.PYRIMIDINE

_openbabel.SOLVENT_swigconstant(_openbabel)
SOLVENT = _openbabel.SOLVENT

_openbabel.WATER_swigconstant(_openbabel)
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)


_openbabel.OB_4RING_ATOM_swigconstant(_openbabel)
OB_4RING_ATOM = _openbabel.OB_4RING_ATOM

_openbabel.OB_3RING_ATOM_swigconstant(_openbabel)
OB_3RING_ATOM = _openbabel.OB_3RING_ATOM

_openbabel.OB_AROMATIC_ATOM_swigconstant(_openbabel)
OB_AROMATIC_ATOM = _openbabel.OB_AROMATIC_ATOM

_openbabel.OB_RING_ATOM_swigconstant(_openbabel)
OB_RING_ATOM = _openbabel.OB_RING_ATOM

_openbabel.OB_CSTEREO_ATOM_swigconstant(_openbabel)
OB_CSTEREO_ATOM = _openbabel.OB_CSTEREO_ATOM

_openbabel.OB_ACSTEREO_ATOM_swigconstant(_openbabel)
OB_ACSTEREO_ATOM = _openbabel.OB_ACSTEREO_ATOM

_openbabel.OB_DONOR_ATOM_swigconstant(_openbabel)
OB_DONOR_ATOM = _openbabel.OB_DONOR_ATOM

_openbabel.OB_ACCEPTOR_ATOM_swigconstant(_openbabel)
OB_ACCEPTOR_ATOM = _openbabel.OB_ACCEPTOR_ATOM

_openbabel.OB_CHIRAL_ATOM_swigconstant(_openbabel)
OB_CHIRAL_ATOM = _openbabel.OB_CHIRAL_ATOM

_openbabel.OB_POS_CHIRAL_ATOM_swigconstant(_openbabel)
OB_POS_CHIRAL_ATOM = _openbabel.OB_POS_CHIRAL_ATOM

_openbabel.OB_NEG_CHIRAL_ATOM_swigconstant(_openbabel)
OB_NEG_CHIRAL_ATOM = _openbabel.OB_NEG_CHIRAL_ATOM

_openbabel.OB_ATOM_HAS_NO_H_swigconstant(_openbabel)
OB_ATOM_HAS_NO_H = _openbabel.OB_ATOM_HAS_NO_H

_openbabel.OB_ATOM_NOT_H_DEFICIENT_swigconstant(_openbabel)
OB_ATOM_NOT_H_DEFICIENT = _openbabel.OB_ATOM_NOT_H_DEFICIENT

_openbabel.OBATOM_TYPE_LEN_swigconstant(_openbabel)
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.SetImplicitValence = new_instancemethod(_openbabel.OBAtom_SetImplicitValence, None, OBAtom)
OBAtom.IncrementImplicitValence = new_instancemethod(_openbabel.OBAtom_IncrementImplicitValence, None, OBAtom)
OBAtom.DecrementImplicitValence = new_instancemethod(_openbabel.OBAtom_DecrementImplicitValence, 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.UnsetAromatic = new_instancemethod(_openbabel.OBAtom_UnsetAromatic, None, OBAtom)
OBAtom.SetClockwiseStereo = new_instancemethod(_openbabel.OBAtom_SetClockwiseStereo, None, OBAtom)
OBAtom.SetAntiClockwiseStereo = new_instancemethod(_openbabel.OBAtom_SetAntiClockwiseStereo, None, OBAtom)
OBAtom.SetPositiveStereo = new_instancemethod(_openbabel.OBAtom_SetPositiveStereo, None, OBAtom)
OBAtom.SetNegativeStereo = new_instancemethod(_openbabel.OBAtom_SetNegativeStereo, None, OBAtom)
OBAtom.UnsetStereo = new_instancemethod(_openbabel.OBAtom_UnsetStereo, None, OBAtom)
OBAtom.SetInRing = new_instancemethod(_openbabel.OBAtom_SetInRing, None, OBAtom)
OBAtom.SetChiral = new_instancemethod(_openbabel.OBAtom_SetChiral, 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.GetCIdx = new_instancemethod(_openbabel.OBAtom_GetCIdx, None, OBAtom)
OBAtom.GetValence = new_instancemethod(_openbabel.OBAtom_GetValence, None, OBAtom)
OBAtom.GetHyb = new_instancemethod(_openbabel.OBAtom_GetHyb, None, OBAtom)
OBAtom.GetImplicitValence = new_instancemethod(_openbabel.OBAtom_GetImplicitValence, None, OBAtom)
OBAtom.GetHvyValence = new_instancemethod(_openbabel.OBAtom_GetHvyValence, None, OBAtom)
OBAtom.GetHeteroValence = new_instancemethod(_openbabel.OBAtom_GetHeteroValence, 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.GetNextAtom = new_instancemethod(_openbabel.OBAtom_GetNextAtom, 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.ForceNoH = new_instancemethod(_openbabel.OBAtom_ForceNoH, None, OBAtom)
OBAtom.HasNoHForced = new_instancemethod(_openbabel.OBAtom_HasNoHForced, None, OBAtom)
OBAtom.ForceImplH = new_instancemethod(_openbabel.OBAtom_ForceImplH, None, OBAtom)
OBAtom.HasImplHForced = new_instancemethod(_openbabel.OBAtom_HasImplHForced, None, OBAtom)
OBAtom.CountFreeOxygens = new_instancemethod(_openbabel.OBAtom_CountFreeOxygens, None, OBAtom)
OBAtom.CountFreeSulfurs = new_instancemethod(_openbabel.OBAtom_CountFreeSulfurs, None, OBAtom)
OBAtom.ImplicitHydrogenCount = new_instancemethod(_openbabel.OBAtom_ImplicitHydrogenCount, 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.BOSum = new_instancemethod(_openbabel.OBAtom_BOSum, None, OBAtom)
OBAtom.KBOSum = new_instancemethod(_openbabel.OBAtom_KBOSum, 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.IsHydrogen = new_instancemethod(_openbabel.OBAtom_IsHydrogen, None, OBAtom)
OBAtom.IsCarbon = new_instancemethod(_openbabel.OBAtom_IsCarbon, None, OBAtom)
OBAtom.IsNitrogen = new_instancemethod(_openbabel.OBAtom_IsNitrogen, None, OBAtom)
OBAtom.IsOxygen = new_instancemethod(_openbabel.OBAtom_IsOxygen, None, OBAtom)
OBAtom.IsSulfur = new_instancemethod(_openbabel.OBAtom_IsSulfur, None, OBAtom)
OBAtom.IsPhosphorus = new_instancemethod(_openbabel.OBAtom_IsPhosphorus, 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.IsNotCorH = new_instancemethod(_openbabel.OBAtom_IsNotCorH, 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.IsThiocarboxylSulfur = new_instancemethod(_openbabel.OBAtom_IsThiocarboxylSulfur, 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.IsAxial = new_instancemethod(_openbabel.OBAtom_IsAxial, None, OBAtom)
OBAtom.IsClockwise = new_instancemethod(_openbabel.OBAtom_IsClockwise, None, OBAtom)
OBAtom.IsAntiClockwise = new_instancemethod(_openbabel.OBAtom_IsAntiClockwise, None, OBAtom)
OBAtom.IsPositiveStereo = new_instancemethod(_openbabel.OBAtom_IsPositiveStereo, None, OBAtom)
OBAtom.IsNegativeStereo = new_instancemethod(_openbabel.OBAtom_IsNegativeStereo, None, OBAtom)
OBAtom.HasChiralitySpecified = new_instancemethod(_openbabel.OBAtom_HasChiralitySpecified, None, OBAtom)
OBAtom.HasChiralVolume = new_instancemethod(_openbabel.OBAtom_HasChiralVolume, None, OBAtom)
OBAtom.IsHbondAcceptor = new_instancemethod(_openbabel.OBAtom_IsHbondAcceptor, 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.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)


_openbabel.OB_AROMATIC_BOND_swigconstant(_openbabel)
OB_AROMATIC_BOND = _openbabel.OB_AROMATIC_BOND

_openbabel.OB_WEDGE_BOND_swigconstant(_openbabel)
OB_WEDGE_BOND = _openbabel.OB_WEDGE_BOND

_openbabel.OB_HASH_BOND_swigconstant(_openbabel)
OB_HASH_BOND = _openbabel.OB_HASH_BOND

_openbabel.OB_RING_BOND_swigconstant(_openbabel)
OB_RING_BOND = _openbabel.OB_RING_BOND

_openbabel.OB_TORUP_BOND_swigconstant(_openbabel)
OB_TORUP_BOND = _openbabel.OB_TORUP_BOND

_openbabel.OB_TORDOWN_BOND_swigconstant(_openbabel)
OB_TORDOWN_BOND = _openbabel.OB_TORDOWN_BOND

_openbabel.OB_KSINGLE_BOND_swigconstant(_openbabel)
OB_KSINGLE_BOND = _openbabel.OB_KSINGLE_BOND

_openbabel.OB_KDOUBLE_BOND_swigconstant(_openbabel)
OB_KDOUBLE_BOND = _openbabel.OB_KDOUBLE_BOND

_openbabel.OB_KTRIPLE_BOND_swigconstant(_openbabel)
OB_KTRIPLE_BOND = _openbabel.OB_KTRIPLE_BOND

_openbabel.OB_CLOSURE_BOND_swigconstant(_openbabel)
OB_CLOSURE_BOND = _openbabel.OB_CLOSURE_BOND

_openbabel.OB_WEDGE_OR_HASH_BOND_swigconstant(_openbabel)
OB_WEDGE_OR_HASH_BOND = _openbabel.OB_WEDGE_OR_HASH_BOND

_openbabel.OB_CIS_OR_TRANS_BOND_swigconstant(_openbabel)
OB_CIS_OR_TRANS_BOND = _openbabel.OB_CIS_OR_TRANS_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.SetBO = new_instancemethod(_openbabel.OBBond_SetBO, 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.SetKSingle = new_instancemethod(_openbabel.OBBond_SetKSingle, None, OBBond)
OBBond.SetKDouble = new_instancemethod(_openbabel.OBBond_SetKDouble, None, OBBond)
OBBond.SetKTriple = new_instancemethod(_openbabel.OBBond_SetKTriple, 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.SetUp = new_instancemethod(_openbabel.OBBond_SetUp, None, OBBond)
OBBond.SetDown = new_instancemethod(_openbabel.OBBond_SetDown, None, OBBond)
OBBond.SetInRing = new_instancemethod(_openbabel.OBBond_SetInRing, None, OBBond)
OBBond.SetClosure = new_instancemethod(_openbabel.OBBond_SetClosure, None, OBBond)
OBBond.UnsetHash = new_instancemethod(_openbabel.OBBond_UnsetHash, None, OBBond)
OBBond.UnsetWedge = new_instancemethod(_openbabel.OBBond_UnsetWedge, None, OBBond)
OBBond.UnsetUp = new_instancemethod(_openbabel.OBBond_UnsetUp, None, OBBond)
OBBond.UnsetDown = new_instancemethod(_openbabel.OBBond_UnsetDown, None, OBBond)
OBBond.UnsetAromatic = new_instancemethod(_openbabel.OBBond_UnsetAromatic, None, OBBond)
OBBond.UnsetKekule = new_instancemethod(_openbabel.OBBond_UnsetKekule, None, OBBond)
OBBond.GetIdx = new_instancemethod(_openbabel.OBBond_GetIdx, None, OBBond)
OBBond.GetId = new_instancemethod(_openbabel.OBBond_GetId, None, OBBond)
OBBond.GetBO = new_instancemethod(_openbabel.OBBond_GetBO, 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.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.IsAmidine = new_instancemethod(_openbabel.OBBond_IsAmidine, None, OBBond)
OBBond.IsEster = new_instancemethod(_openbabel.OBBond_IsEster, None, OBBond)
OBBond.IsCarbonyl = new_instancemethod(_openbabel.OBBond_IsCarbonyl, None, OBBond)
OBBond.IsImide = new_instancemethod(_openbabel.OBBond_IsImide, None, OBBond)
OBBond.IsSingle = new_instancemethod(_openbabel.OBBond_IsSingle, None, OBBond)
OBBond.IsDouble = new_instancemethod(_openbabel.OBBond_IsDouble, None, OBBond)
OBBond.IsTriple = new_instancemethod(_openbabel.OBBond_IsTriple, None, OBBond)
OBBond.IsKSingle = new_instancemethod(_openbabel.OBBond_IsKSingle, None, OBBond)
OBBond.IsKDouble = new_instancemethod(_openbabel.OBBond_IsKDouble, None, OBBond)
OBBond.IsKTriple = new_instancemethod(_openbabel.OBBond_IsKTriple, None, OBBond)
OBBond.IsClosure = new_instancemethod(_openbabel.OBBond_IsClosure, None, OBBond)
OBBond.IsUp = new_instancemethod(_openbabel.OBBond_IsUp, None, OBBond)
OBBond.IsDown = new_instancemethod(_openbabel.OBBond_IsDown, 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.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.GetTransitionState = new_instancemethod(_openbabel.OBReaction_GetTransitionState, None, OBReaction)
OBReaction.GetAgent = new_instancemethod(_openbabel.OBReaction_GetAgent, 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


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""")


_openbabel.OB_SSSR_MOL_swigconstant(_openbabel)
OB_SSSR_MOL = _openbabel.OB_SSSR_MOL

_openbabel.OB_RINGFLAGS_MOL_swigconstant(_openbabel)
OB_RINGFLAGS_MOL = _openbabel.OB_RINGFLAGS_MOL

_openbabel.OB_AROMATIC_MOL_swigconstant(_openbabel)
OB_AROMATIC_MOL = _openbabel.OB_AROMATIC_MOL

_openbabel.OB_ATOMTYPES_MOL_swigconstant(_openbabel)
OB_ATOMTYPES_MOL = _openbabel.OB_ATOMTYPES_MOL

_openbabel.OB_CHIRALITY_MOL_swigconstant(_openbabel)
OB_CHIRALITY_MOL = _openbabel.OB_CHIRALITY_MOL

_openbabel.OB_PCHARGE_MOL_swigconstant(_openbabel)
OB_PCHARGE_MOL = _openbabel.OB_PCHARGE_MOL

_openbabel.OB_HYBRID_MOL_swigconstant(_openbabel)
OB_HYBRID_MOL = _openbabel.OB_HYBRID_MOL

_openbabel.OB_IMPVAL_MOL_swigconstant(_openbabel)
OB_IMPVAL_MOL = _openbabel.OB_IMPVAL_MOL

_openbabel.OB_KEKULE_MOL_swigconstant(_openbabel)
OB_KEKULE_MOL = _openbabel.OB_KEKULE_MOL

_openbabel.OB_CLOSURE_MOL_swigconstant(_openbabel)
OB_CLOSURE_MOL = _openbabel.OB_CLOSURE_MOL

_openbabel.OB_H_ADDED_MOL_swigconstant(_openbabel)
OB_H_ADDED_MOL = _openbabel.OB_H_ADDED_MOL

_openbabel.OB_PH_CORRECTED_MOL_swigconstant(_openbabel)
OB_PH_CORRECTED_MOL = _openbabel.OB_PH_CORRECTED_MOL

_openbabel.OB_AROM_CORRECTED_MOL_swigconstant(_openbabel)
OB_AROM_CORRECTED_MOL = _openbabel.OB_AROM_CORRECTED_MOL

_openbabel.OB_CHAINS_MOL_swigconstant(_openbabel)
OB_CHAINS_MOL = _openbabel.OB_CHAINS_MOL

_openbabel.OB_TCHARGE_MOL_swigconstant(_openbabel)
OB_TCHARGE_MOL = _openbabel.OB_TCHARGE_MOL

_openbabel.OB_TSPIN_MOL_swigconstant(_openbabel)
OB_TSPIN_MOL = _openbabel.OB_TSPIN_MOL

_openbabel.OB_RINGTYPES_MOL_swigconstant(_openbabel)
OB_RINGTYPES_MOL = _openbabel.OB_RINGTYPES_MOL

_openbabel.OB_PATTERN_STRUCTURE_swigconstant(_openbabel)
OB_PATTERN_STRUCTURE = _openbabel.OB_PATTERN_STRUCTURE

_openbabel.OB_LSSR_MOL_swigconstant(_openbabel)
OB_LSSR_MOL = _openbabel.OB_LSSR_MOL

_openbabel.OB_ATOMSPIN_MOL_swigconstant(_openbabel)
OB_ATOMSPIN_MOL = _openbabel.OB_ATOMSPIN_MOL

_openbabel.OB_CURRENT_CONFORMER_swigconstant(_openbabel)
OB_CURRENT_CONFORMER = _openbabel.OB_CURRENT_CONFORMER

_openbabel.AllHydrogen_swigconstant(_openbabel)
AllHydrogen = _openbabel.AllHydrogen

_openbabel.PolarHydrogen_swigconstant(_openbabel)
PolarHydrogen = _openbabel.PolarHydrogen

_openbabel.NonPolarHydrogen_swigconstant(_openbabel)
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.CreateAtom = new_instancemethod(_openbabel.OBMol_CreateAtom, None, OBMol)
OBMol.CreateBond = new_instancemethod(_openbabel.OBMol_CreateBond, None, OBMol)
OBMol.CreateResidue = new_instancemethod(_openbabel.OBMol_CreateResidue, 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.SetImplicitValencePerceived = new_instancemethod(_openbabel.OBMol_SetImplicitValencePerceived, None, OBMol)
OBMol.SetKekulePerceived = new_instancemethod(_openbabel.OBMol_SetKekulePerceived, 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.SetAromaticCorrected = new_instancemethod(_openbabel.OBMol_SetAromaticCorrected, None, OBMol)
OBMol.SetSpinMultiplicityAssigned = new_instancemethod(_openbabel.OBMol_SetSpinMultiplicityAssigned, None, OBMol)
OBMol.SetFlags = new_instancemethod(_openbabel.OBMol_SetFlags, None, OBMol)
OBMol.UnsetAromaticPerceived = new_instancemethod(_openbabel.OBMol_UnsetAromaticPerceived, None, OBMol)
OBMol.UnsetSSSRPerceived = new_instancemethod(_openbabel.OBMol_UnsetSSSRPerceived, None, OBMol)
OBMol.UnsetLSSRPerceived = new_instancemethod(_openbabel.OBMol_UnsetLSSRPerceived, None, OBMol)
OBMol.UnsetRingTypesPerceived = new_instancemethod(_openbabel.OBMol_UnsetRingTypesPerceived, None, OBMol)
OBMol.UnsetPartialChargesPerceived = new_instancemethod(_openbabel.OBMol_UnsetPartialChargesPerceived, None, OBMol)
OBMol.UnsetImplicitValencePerceived = new_instancemethod(_openbabel.OBMol_UnsetImplicitValencePerceived, None, OBMol)
OBMol.UnsetHydrogensAdded = new_instancemethod(_openbabel.OBMol_UnsetHydrogensAdded, None, OBMol)
OBMol.UnsetFlag = new_instancemethod(_openbabel.OBMol_UnsetFlag, 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.Kekulize = new_instancemethod(_openbabel.OBMol_Kekulize, None, OBMol)
OBMol.PerceiveKekuleBonds = new_instancemethod(_openbabel.OBMol_PerceiveKekuleBonds, None, OBMol)
OBMol.NewPerceiveKekuleBonds = new_instancemethod(_openbabel.OBMol_NewPerceiveKekuleBonds, 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.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.SetIsPatternStructure = new_instancemethod(_openbabel.OBMol_SetIsPatternStructure, 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.FindChiralCenters = new_instancemethod(_openbabel.OBMol_FindChiralCenters, 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.HasImplicitValencePerceived = new_instancemethod(_openbabel.OBMol_HasImplicitValencePerceived, None, OBMol)
OBMol.HasKekulePerceived = new_instancemethod(_openbabel.OBMol_HasKekulePerceived, 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.HasAromaticCorrected = new_instancemethod(_openbabel.OBMol_HasAromaticCorrected, None, OBMol)
OBMol.IsCorrectedForPH = new_instancemethod(_openbabel.OBMol_IsCorrectedForPH, None, OBMol)
OBMol.HasSpinMultiplicityAssigned = new_instancemethod(_openbabel.OBMol_HasSpinMultiplicityAssigned, None, OBMol)
OBMol.IsChiral = new_instancemethod(_openbabel.OBMol_IsChiral, 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

_openbabel.BUFF_SIZE_swigconstant(_openbabel)
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 OBAtomClassData(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.OBAtomClassData_swiginit(self, _openbabel.new_OBAtomClassData())
    __swig_destroy__ = _openbabel.delete_OBAtomClassData
OBAtomClassData.Clear = new_instancemethod(_openbabel.OBAtomClassData_Clear, None, OBAtomClassData)
OBAtomClassData.Add = new_instancemethod(_openbabel.OBAtomClassData_Add, None, OBAtomClassData)
OBAtomClassData.HasClass = new_instancemethod(_openbabel.OBAtomClassData_HasClass, None, OBAtomClassData)
OBAtomClassData.GetClass = new_instancemethod(_openbabel.OBAtomClassData_GetClass, None, OBAtomClassData)
OBAtomClassData.GetClassString = new_instancemethod(_openbabel.OBAtomClassData_GetClassString, None, OBAtomClassData)
OBAtomClassData.size = new_instancemethod(_openbabel.OBAtomClassData_size, None, OBAtomClassData)
OBAtomClassData_swigregister = _openbabel.OBAtomClassData_swigregister
OBAtomClassData_swigregister(OBAtomClassData)

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)
    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


_openbabel.OBFF_LOGLVL_NONE_swigconstant(_openbabel)
OBFF_LOGLVL_NONE = _openbabel.OBFF_LOGLVL_NONE

_openbabel.OBFF_LOGLVL_LOW_swigconstant(_openbabel)
OBFF_LOGLVL_LOW = _openbabel.OBFF_LOGLVL_LOW

_openbabel.OBFF_LOGLVL_MEDIUM_swigconstant(_openbabel)
OBFF_LOGLVL_MEDIUM = _openbabel.OBFF_LOGLVL_MEDIUM

_openbabel.OBFF_LOGLVL_HIGH_swigconstant(_openbabel)
OBFF_LOGLVL_HIGH = _openbabel.OBFF_LOGLVL_HIGH

_openbabel.OBFF_ENERGY_swigconstant(_openbabel)
OBFF_ENERGY = _openbabel.OBFF_ENERGY

_openbabel.OBFF_EBOND_swigconstant(_openbabel)
OBFF_EBOND = _openbabel.OBFF_EBOND

_openbabel.OBFF_EANGLE_swigconstant(_openbabel)
OBFF_EANGLE = _openbabel.OBFF_EANGLE

_openbabel.OBFF_ESTRBND_swigconstant(_openbabel)
OBFF_ESTRBND = _openbabel.OBFF_ESTRBND

_openbabel.OBFF_ETORSION_swigconstant(_openbabel)
OBFF_ETORSION = _openbabel.OBFF_ETORSION

_openbabel.OBFF_EOOP_swigconstant(_openbabel)
OBFF_EOOP = _openbabel.OBFF_EOOP

_openbabel.OBFF_EVDW_swigconstant(_openbabel)
OBFF_EVDW = _openbabel.OBFF_EVDW

_openbabel.OBFF_EELECTROSTATIC_swigconstant(_openbabel)
OBFF_EELECTROSTATIC = _openbabel.OBFF_EELECTROSTATIC

_openbabel.OBFF_CONST_IGNORE_swigconstant(_openbabel)
OBFF_CONST_IGNORE = _openbabel.OBFF_CONST_IGNORE

_openbabel.OBFF_CONST_ATOM_swigconstant(_openbabel)
OBFF_CONST_ATOM = _openbabel.OBFF_CONST_ATOM

_openbabel.OBFF_CONST_ATOM_X_swigconstant(_openbabel)
OBFF_CONST_ATOM_X = _openbabel.OBFF_CONST_ATOM_X

_openbabel.OBFF_CONST_ATOM_Y_swigconstant(_openbabel)
OBFF_CONST_ATOM_Y = _openbabel.OBFF_CONST_ATOM_Y

_openbabel.OBFF_CONST_ATOM_Z_swigconstant(_openbabel)
OBFF_CONST_ATOM_Z = _openbabel.OBFF_CONST_ATOM_Z

_openbabel.OBFF_CONST_DISTANCE_swigconstant(_openbabel)
OBFF_CONST_DISTANCE = _openbabel.OBFF_CONST_DISTANCE

_openbabel.OBFF_CONST_ANGLE_swigconstant(_openbabel)
OBFF_CONST_ANGLE = _openbabel.OBFF_CONST_ANGLE

_openbabel.OBFF_CONST_TORSION_swigconstant(_openbabel)
OBFF_CONST_TORSION = _openbabel.OBFF_CONST_TORSION

_openbabel.OBFF_CONST_CHIRAL_swigconstant(_openbabel)
OBFF_CONST_CHIRAL = _openbabel.OBFF_CONST_CHIRAL

_openbabel.OBFF_NUMERICAL_GRADIENT_swigconstant(_openbabel)
OBFF_NUMERICAL_GRADIENT = _openbabel.OBFF_NUMERICAL_GRADIENT

_openbabel.OBFF_ANALYTICAL_GRADIENT_swigconstant(_openbabel)
OBFF_ANALYTICAL_GRADIENT = _openbabel.OBFF_ANALYTICAL_GRADIENT

_openbabel.KCAL_TO_KJ_swigconstant(_openbabel)
KCAL_TO_KJ = _openbabel.KCAL_TO_KJ
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)

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.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.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.LoadFragments = new_instancemethod(_openbabel.OBBuilder_LoadFragments, 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):
    return _openbabel.OBBuilder_CorrectStereoAtoms(mol)
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.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.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.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

_openbabel.SETWORD_swigconstant(_openbabel)
SETWORD = _openbabel.SETWORD

_openbabel.WORDROLL_swigconstant(_openbabel)
WORDROLL = _openbabel.WORDROLL

_openbabel.WORDMASK_swigconstant(_openbabel)
WORDMASK = _openbabel.WORDMASK

_openbabel.STARTWORDS_swigconstant(_openbabel)
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.Empty = new_instancemethod(_openbabel.OBBitVec_Empty, 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.BitIsOn = new_instancemethod(_openbabel.OBBitVec_BitIsOn, 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
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.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.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)


_openbabel.N_PROPERTIES_swigconstant(_openbabel)
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.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__


    Visit = _swig_property(_openbabel._OBMolAtomIter_Visit_get, _openbabel._OBMolAtomIter_Visit_set)
_OBMolAtomIter.inc = new_instancemethod(_openbabel._OBMolAtomIter_inc, None, _OBMolAtomIter)
_OBMolAtomIter.__deref__ = new_instancemethod(_openbabel._OBMolAtomIter___deref__, None, _OBMolAtomIter)
_OBMolAtomIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomIter___ref__, None, _OBMolAtomIter)
_OBMolAtomIter.__eq__ = new_instancemethod(_openbabel._OBMolAtomIter___eq__, None, _OBMolAtomIter)
_OBMolAtomIter.Duplicate = new_instancemethod(_openbabel._OBMolAtomIter_Duplicate, None, _OBMolAtomIter)
_OBMolAtomIter.SetIdx = new_instancemethod(_openbabel._OBMolAtomIter_SetIdx, None, _OBMolAtomIter)
_OBMolAtomIter.SetId = new_instancemethod(_openbabel._OBMolAtomIter_SetId, None, _OBMolAtomIter)
_OBMolAtomIter.SetHyb = new_instancemethod(_openbabel._OBMolAtomIter_SetHyb, None, _OBMolAtomIter)
_OBMolAtomIter.SetAtomicNum = new_instancemethod(_openbabel._OBMolAtomIter_SetAtomicNum, None, _OBMolAtomIter)
_OBMolAtomIter.SetIsotope = new_instancemethod(_openbabel._OBMolAtomIter_SetIsotope, None, _OBMolAtomIter)
_OBMolAtomIter.SetImplicitValence = new_instancemethod(_openbabel._OBMolAtomIter_SetImplicitValence, None, _OBMolAtomIter)
_OBMolAtomIter.IncrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomIter_IncrementImplicitValence, None, _OBMolAtomIter)
_OBMolAtomIter.DecrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomIter_DecrementImplicitValence, None, _OBMolAtomIter)
_OBMolAtomIter.SetFormalCharge = new_instancemethod(_openbabel._OBMolAtomIter_SetFormalCharge, None, _OBMolAtomIter)
_OBMolAtomIter.SetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomIter_SetSpinMultiplicity, None, _OBMolAtomIter)
_OBMolAtomIter.SetType = new_instancemethod(_openbabel._OBMolAtomIter_SetType, None, _OBMolAtomIter)
_OBMolAtomIter.SetPartialCharge = new_instancemethod(_openbabel._OBMolAtomIter_SetPartialCharge, None, _OBMolAtomIter)
_OBMolAtomIter.SetVector = new_instancemethod(_openbabel._OBMolAtomIter_SetVector, None, _OBMolAtomIter)
_OBMolAtomIter.SetCoordPtr = new_instancemethod(_openbabel._OBMolAtomIter_SetCoordPtr, None, _OBMolAtomIter)
_OBMolAtomIter.SetResidue = new_instancemethod(_openbabel._OBMolAtomIter_SetResidue, None, _OBMolAtomIter)
_OBMolAtomIter.SetParent = new_instancemethod(_openbabel._OBMolAtomIter_SetParent, None, _OBMolAtomIter)
_OBMolAtomIter.SetAromatic = new_instancemethod(_openbabel._OBMolAtomIter_SetAromatic, None, _OBMolAtomIter)
_OBMolAtomIter.UnsetAromatic = new_instancemethod(_openbabel._OBMolAtomIter_UnsetAromatic, None, _OBMolAtomIter)
_OBMolAtomIter.SetClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomIter_SetClockwiseStereo, None, _OBMolAtomIter)
_OBMolAtomIter.SetAntiClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomIter_SetAntiClockwiseStereo, None, _OBMolAtomIter)
_OBMolAtomIter.SetPositiveStereo = new_instancemethod(_openbabel._OBMolAtomIter_SetPositiveStereo, None, _OBMolAtomIter)
_OBMolAtomIter.SetNegativeStereo = new_instancemethod(_openbabel._OBMolAtomIter_SetNegativeStereo, None, _OBMolAtomIter)
_OBMolAtomIter.UnsetStereo = new_instancemethod(_openbabel._OBMolAtomIter_UnsetStereo, None, _OBMolAtomIter)
_OBMolAtomIter.SetInRing = new_instancemethod(_openbabel._OBMolAtomIter_SetInRing, None, _OBMolAtomIter)
_OBMolAtomIter.SetChiral = new_instancemethod(_openbabel._OBMolAtomIter_SetChiral, None, _OBMolAtomIter)
_OBMolAtomIter.ClearCoordPtr = new_instancemethod(_openbabel._OBMolAtomIter_ClearCoordPtr, None, _OBMolAtomIter)
_OBMolAtomIter.GetFormalCharge = new_instancemethod(_openbabel._OBMolAtomIter_GetFormalCharge, None, _OBMolAtomIter)
_OBMolAtomIter.GetAtomicNum = new_instancemethod(_openbabel._OBMolAtomIter_GetAtomicNum, None, _OBMolAtomIter)
_OBMolAtomIter.GetIsotope = new_instancemethod(_openbabel._OBMolAtomIter_GetIsotope, None, _OBMolAtomIter)
_OBMolAtomIter.GetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomIter_GetSpinMultiplicity, None, _OBMolAtomIter)
_OBMolAtomIter.GetAtomicMass = new_instancemethod(_openbabel._OBMolAtomIter_GetAtomicMass, None, _OBMolAtomIter)
_OBMolAtomIter.GetExactMass = new_instancemethod(_openbabel._OBMolAtomIter_GetExactMass, None, _OBMolAtomIter)
_OBMolAtomIter.GetIdx = new_instancemethod(_openbabel._OBMolAtomIter_GetIdx, None, _OBMolAtomIter)
_OBMolAtomIter.GetIndex = new_instancemethod(_openbabel._OBMolAtomIter_GetIndex, None, _OBMolAtomIter)
_OBMolAtomIter.GetId = new_instancemethod(_openbabel._OBMolAtomIter_GetId, None, _OBMolAtomIter)
_OBMolAtomIter.GetCoordinateIdx = new_instancemethod(_openbabel._OBMolAtomIter_GetCoordinateIdx, None, _OBMolAtomIter)
_OBMolAtomIter.GetCIdx = new_instancemethod(_openbabel._OBMolAtomIter_GetCIdx, None, _OBMolAtomIter)
_OBMolAtomIter.GetValence = new_instancemethod(_openbabel._OBMolAtomIter_GetValence, None, _OBMolAtomIter)
_OBMolAtomIter.GetHyb = new_instancemethod(_openbabel._OBMolAtomIter_GetHyb, None, _OBMolAtomIter)
_OBMolAtomIter.GetImplicitValence = new_instancemethod(_openbabel._OBMolAtomIter_GetImplicitValence, None, _OBMolAtomIter)
_OBMolAtomIter.GetHvyValence = new_instancemethod(_openbabel._OBMolAtomIter_GetHvyValence, None, _OBMolAtomIter)
_OBMolAtomIter.GetHeteroValence = new_instancemethod(_openbabel._OBMolAtomIter_GetHeteroValence, None, _OBMolAtomIter)
_OBMolAtomIter.GetType = new_instancemethod(_openbabel._OBMolAtomIter_GetType, None, _OBMolAtomIter)
_OBMolAtomIter.GetX = new_instancemethod(_openbabel._OBMolAtomIter_GetX, None, _OBMolAtomIter)
_OBMolAtomIter.GetY = new_instancemethod(_openbabel._OBMolAtomIter_GetY, None, _OBMolAtomIter)
_OBMolAtomIter.GetZ = new_instancemethod(_openbabel._OBMolAtomIter_GetZ, None, _OBMolAtomIter)
_OBMolAtomIter.x = new_instancemethod(_openbabel._OBMolAtomIter_x, None, _OBMolAtomIter)
_OBMolAtomIter.y = new_instancemethod(_openbabel._OBMolAtomIter_y, None, _OBMolAtomIter)
_OBMolAtomIter.z = new_instancemethod(_openbabel._OBMolAtomIter_z, None, _OBMolAtomIter)
_OBMolAtomIter.GetCoordinate = new_instancemethod(_openbabel._OBMolAtomIter_GetCoordinate, None, _OBMolAtomIter)
_OBMolAtomIter.GetVector = new_instancemethod(_openbabel._OBMolAtomIter_GetVector, None, _OBMolAtomIter)
_OBMolAtomIter.GetPartialCharge = new_instancemethod(_openbabel._OBMolAtomIter_GetPartialCharge, None, _OBMolAtomIter)
_OBMolAtomIter.GetResidue = new_instancemethod(_openbabel._OBMolAtomIter_GetResidue, None, _OBMolAtomIter)
_OBMolAtomIter.GetParent = new_instancemethod(_openbabel._OBMolAtomIter_GetParent, None, _OBMolAtomIter)
_OBMolAtomIter.GetNewBondVector = new_instancemethod(_openbabel._OBMolAtomIter_GetNewBondVector, None, _OBMolAtomIter)
_OBMolAtomIter.GetBond = new_instancemethod(_openbabel._OBMolAtomIter_GetBond, None, _OBMolAtomIter)
_OBMolAtomIter.GetNextAtom = new_instancemethod(_openbabel._OBMolAtomIter_GetNextAtom, None, _OBMolAtomIter)
_OBMolAtomIter.BeginBonds = new_instancemethod(_openbabel._OBMolAtomIter_BeginBonds, None, _OBMolAtomIter)
_OBMolAtomIter.EndBonds = new_instancemethod(_openbabel._OBMolAtomIter_EndBonds, None, _OBMolAtomIter)
_OBMolAtomIter.BeginBond = new_instancemethod(_openbabel._OBMolAtomIter_BeginBond, None, _OBMolAtomIter)
_OBMolAtomIter.NextBond = new_instancemethod(_openbabel._OBMolAtomIter_NextBond, None, _OBMolAtomIter)
_OBMolAtomIter.BeginNbrAtom = new_instancemethod(_openbabel._OBMolAtomIter_BeginNbrAtom, None, _OBMolAtomIter)
_OBMolAtomIter.NextNbrAtom = new_instancemethod(_openbabel._OBMolAtomIter_NextNbrAtom, None, _OBMolAtomIter)
_OBMolAtomIter.GetDistance = new_instancemethod(_openbabel._OBMolAtomIter_GetDistance, None, _OBMolAtomIter)
_OBMolAtomIter.GetAngle = new_instancemethod(_openbabel._OBMolAtomIter_GetAngle, None, _OBMolAtomIter)
_OBMolAtomIter.NewResidue = new_instancemethod(_openbabel._OBMolAtomIter_NewResidue, None, _OBMolAtomIter)
_OBMolAtomIter.AddResidue = new_instancemethod(_openbabel._OBMolAtomIter_AddResidue, None, _OBMolAtomIter)
_OBMolAtomIter.DeleteResidue = new_instancemethod(_openbabel._OBMolAtomIter_DeleteResidue, None, _OBMolAtomIter)
_OBMolAtomIter.AddBond = new_instancemethod(_openbabel._OBMolAtomIter_AddBond, None, _OBMolAtomIter)
_OBMolAtomIter.InsertBond = new_instancemethod(_openbabel._OBMolAtomIter_InsertBond, None, _OBMolAtomIter)
_OBMolAtomIter.DeleteBond = new_instancemethod(_openbabel._OBMolAtomIter_DeleteBond, None, _OBMolAtomIter)
_OBMolAtomIter.ClearBond = new_instancemethod(_openbabel._OBMolAtomIter_ClearBond, None, _OBMolAtomIter)
_OBMolAtomIter.HtoMethyl = new_instancemethod(_openbabel._OBMolAtomIter_HtoMethyl, None, _OBMolAtomIter)
_OBMolAtomIter.SetHybAndGeom = new_instancemethod(_openbabel._OBMolAtomIter_SetHybAndGeom, None, _OBMolAtomIter)
_OBMolAtomIter.ForceNoH = new_instancemethod(_openbabel._OBMolAtomIter_ForceNoH, None, _OBMolAtomIter)
_OBMolAtomIter.HasNoHForced = new_instancemethod(_openbabel._OBMolAtomIter_HasNoHForced, None, _OBMolAtomIter)
_OBMolAtomIter.ForceImplH = new_instancemethod(_openbabel._OBMolAtomIter_ForceImplH, None, _OBMolAtomIter)
_OBMolAtomIter.HasImplHForced = new_instancemethod(_openbabel._OBMolAtomIter_HasImplHForced, None, _OBMolAtomIter)
_OBMolAtomIter.CountFreeOxygens = new_instancemethod(_openbabel._OBMolAtomIter_CountFreeOxygens, None, _OBMolAtomIter)
_OBMolAtomIter.CountFreeSulfurs = new_instancemethod(_openbabel._OBMolAtomIter_CountFreeSulfurs, None, _OBMolAtomIter)
_OBMolAtomIter.ImplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomIter_ImplicitHydrogenCount, None, _OBMolAtomIter)
_OBMolAtomIter.ExplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomIter_ExplicitHydrogenCount, None, _OBMolAtomIter)
_OBMolAtomIter.MemberOfRingCount = new_instancemethod(_openbabel._OBMolAtomIter_MemberOfRingCount, None, _OBMolAtomIter)
_OBMolAtomIter.MemberOfRingSize = new_instancemethod(_openbabel._OBMolAtomIter_MemberOfRingSize, None, _OBMolAtomIter)
_OBMolAtomIter.CountRingBonds = new_instancemethod(_openbabel._OBMolAtomIter_CountRingBonds, None, _OBMolAtomIter)
_OBMolAtomIter.SmallestBondAngle = new_instancemethod(_openbabel._OBMolAtomIter_SmallestBondAngle, None, _OBMolAtomIter)
_OBMolAtomIter.AverageBondAngle = new_instancemethod(_openbabel._OBMolAtomIter_AverageBondAngle, None, _OBMolAtomIter)
_OBMolAtomIter.BOSum = new_instancemethod(_openbabel._OBMolAtomIter_BOSum, None, _OBMolAtomIter)
_OBMolAtomIter.KBOSum = new_instancemethod(_openbabel._OBMolAtomIter_KBOSum, None, _OBMolAtomIter)
_OBMolAtomIter.LewisAcidBaseCounts = new_instancemethod(_openbabel._OBMolAtomIter_LewisAcidBaseCounts, None, _OBMolAtomIter)
_OBMolAtomIter.HasResidue = new_instancemethod(_openbabel._OBMolAtomIter_HasResidue, None, _OBMolAtomIter)
_OBMolAtomIter.IsHetAtom = new_instancemethod(_openbabel._OBMolAtomIter_IsHetAtom, None, _OBMolAtomIter)
_OBMolAtomIter.IsHydrogen = new_instancemethod(_openbabel._OBMolAtomIter_IsHydrogen, None, _OBMolAtomIter)
_OBMolAtomIter.IsCarbon = new_instancemethod(_openbabel._OBMolAtomIter_IsCarbon, None, _OBMolAtomIter)
_OBMolAtomIter.IsNitrogen = new_instancemethod(_openbabel._OBMolAtomIter_IsNitrogen, None, _OBMolAtomIter)
_OBMolAtomIter.IsOxygen = new_instancemethod(_openbabel._OBMolAtomIter_IsOxygen, None, _OBMolAtomIter)
_OBMolAtomIter.IsSulfur = new_instancemethod(_openbabel._OBMolAtomIter_IsSulfur, None, _OBMolAtomIter)
_OBMolAtomIter.IsPhosphorus = new_instancemethod(_openbabel._OBMolAtomIter_IsPhosphorus, None, _OBMolAtomIter)
_OBMolAtomIter.IsAromatic = new_instancemethod(_openbabel._OBMolAtomIter_IsAromatic, None, _OBMolAtomIter)
_OBMolAtomIter.IsInRing = new_instancemethod(_openbabel._OBMolAtomIter_IsInRing, None, _OBMolAtomIter)
_OBMolAtomIter.IsInRingSize = new_instancemethod(_openbabel._OBMolAtomIter_IsInRingSize, None, _OBMolAtomIter)
_OBMolAtomIter.IsHeteroatom = new_instancemethod(_openbabel._OBMolAtomIter_IsHeteroatom, None, _OBMolAtomIter)
_OBMolAtomIter.IsNotCorH = new_instancemethod(_openbabel._OBMolAtomIter_IsNotCorH, None, _OBMolAtomIter)
_OBMolAtomIter.IsConnected = new_instancemethod(_openbabel._OBMolAtomIter_IsConnected, None, _OBMolAtomIter)
_OBMolAtomIter.IsOneThree = new_instancemethod(_openbabel._OBMolAtomIter_IsOneThree, None, _OBMolAtomIter)
_OBMolAtomIter.IsOneFour = new_instancemethod(_openbabel._OBMolAtomIter_IsOneFour, None, _OBMolAtomIter)
_OBMolAtomIter.IsCarboxylOxygen = new_instancemethod(_openbabel._OBMolAtomIter_IsCarboxylOxygen, None, _OBMolAtomIter)
_OBMolAtomIter.IsThiocarboxylSulfur = new_instancemethod(_openbabel._OBMolAtomIter_IsThiocarboxylSulfur, None, _OBMolAtomIter)
_OBMolAtomIter.IsPhosphateOxygen = new_instancemethod(_openbabel._OBMolAtomIter_IsPhosphateOxygen, None, _OBMolAtomIter)
_OBMolAtomIter.IsSulfateOxygen = new_instancemethod(_openbabel._OBMolAtomIter_IsSulfateOxygen, None, _OBMolAtomIter)
_OBMolAtomIter.IsNitroOxygen = new_instancemethod(_openbabel._OBMolAtomIter_IsNitroOxygen, None, _OBMolAtomIter)
_OBMolAtomIter.IsAmideNitrogen = new_instancemethod(_openbabel._OBMolAtomIter_IsAmideNitrogen, None, _OBMolAtomIter)
_OBMolAtomIter.IsPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomIter_IsPolarHydrogen, None, _OBMolAtomIter)
_OBMolAtomIter.IsNonPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomIter_IsNonPolarHydrogen, None, _OBMolAtomIter)
_OBMolAtomIter.IsAromaticNOxide = new_instancemethod(_openbabel._OBMolAtomIter_IsAromaticNOxide, None, _OBMolAtomIter)
_OBMolAtomIter.IsChiral = new_instancemethod(_openbabel._OBMolAtomIter_IsChiral, None, _OBMolAtomIter)
_OBMolAtomIter.IsAxial = new_instancemethod(_openbabel._OBMolAtomIter_IsAxial, None, _OBMolAtomIter)
_OBMolAtomIter.IsClockwise = new_instancemethod(_openbabel._OBMolAtomIter_IsClockwise, None, _OBMolAtomIter)
_OBMolAtomIter.IsAntiClockwise = new_instancemethod(_openbabel._OBMolAtomIter_IsAntiClockwise, None, _OBMolAtomIter)
_OBMolAtomIter.IsPositiveStereo = new_instancemethod(_openbabel._OBMolAtomIter_IsPositiveStereo, None, _OBMolAtomIter)
_OBMolAtomIter.IsNegativeStereo = new_instancemethod(_openbabel._OBMolAtomIter_IsNegativeStereo, None, _OBMolAtomIter)
_OBMolAtomIter.HasChiralitySpecified = new_instancemethod(_openbabel._OBMolAtomIter_HasChiralitySpecified, None, _OBMolAtomIter)
_OBMolAtomIter.HasChiralVolume = new_instancemethod(_openbabel._OBMolAtomIter_HasChiralVolume, None, _OBMolAtomIter)
_OBMolAtomIter.IsHbondAcceptor = new_instancemethod(_openbabel._OBMolAtomIter_IsHbondAcceptor, None, _OBMolAtomIter)
_OBMolAtomIter.IsHbondDonor = new_instancemethod(_openbabel._OBMolAtomIter_IsHbondDonor, None, _OBMolAtomIter)
_OBMolAtomIter.IsHbondDonorH = new_instancemethod(_openbabel._OBMolAtomIter_IsHbondDonorH, None, _OBMolAtomIter)
_OBMolAtomIter.IsMetal = new_instancemethod(_openbabel._OBMolAtomIter_IsMetal, None, _OBMolAtomIter)
_OBMolAtomIter.HasAlphaBetaUnsat = new_instancemethod(_openbabel._OBMolAtomIter_HasAlphaBetaUnsat, None, _OBMolAtomIter)
_OBMolAtomIter.HasBondOfOrder = new_instancemethod(_openbabel._OBMolAtomIter_HasBondOfOrder, None, _OBMolAtomIter)
_OBMolAtomIter.CountBondsOfOrder = new_instancemethod(_openbabel._OBMolAtomIter_CountBondsOfOrder, None, _OBMolAtomIter)
_OBMolAtomIter.HasNonSingleBond = new_instancemethod(_openbabel._OBMolAtomIter_HasNonSingleBond, None, _OBMolAtomIter)
_OBMolAtomIter.HasSingleBond = new_instancemethod(_openbabel._OBMolAtomIter_HasSingleBond, None, _OBMolAtomIter)
_OBMolAtomIter.HasDoubleBond = new_instancemethod(_openbabel._OBMolAtomIter_HasDoubleBond, None, _OBMolAtomIter)
_OBMolAtomIter.HasAromaticBond = new_instancemethod(_openbabel._OBMolAtomIter_HasAromaticBond, None, _OBMolAtomIter)
_OBMolAtomIter.MatchesSMARTS = new_instancemethod(_openbabel._OBMolAtomIter_MatchesSMARTS, None, _OBMolAtomIter)
_OBMolAtomIter.Clear = new_instancemethod(_openbabel._OBMolAtomIter_Clear, None, _OBMolAtomIter)
_OBMolAtomIter.DoTransformations = new_instancemethod(_openbabel._OBMolAtomIter_DoTransformations, None, _OBMolAtomIter)
_OBMolAtomIter.ClassDescription = new_instancemethod(_openbabel._OBMolAtomIter_ClassDescription, None, _OBMolAtomIter)
_OBMolAtomIter.GetTitle = new_instancemethod(_openbabel._OBMolAtomIter_GetTitle, None, _OBMolAtomIter)
_OBMolAtomIter.SetTitle = new_instancemethod(_openbabel._OBMolAtomIter_SetTitle, None, _OBMolAtomIter)
_OBMolAtomIter.HasData = new_instancemethod(_openbabel._OBMolAtomIter_HasData, None, _OBMolAtomIter)
_OBMolAtomIter.DeleteData = new_instancemethod(_openbabel._OBMolAtomIter_DeleteData, None, _OBMolAtomIter)
_OBMolAtomIter.CloneData = new_instancemethod(_openbabel._OBMolAtomIter_CloneData, None, _OBMolAtomIter)
_OBMolAtomIter.DataSize = new_instancemethod(_openbabel._OBMolAtomIter_DataSize, None, _OBMolAtomIter)
_OBMolAtomIter.GetData = new_instancemethod(_openbabel._OBMolAtomIter_GetData, None, _OBMolAtomIter)
_OBMolAtomIter.GetAllData = new_instancemethod(_openbabel._OBMolAtomIter_GetAllData, None, _OBMolAtomIter)
_OBMolAtomIter.BeginData = new_instancemethod(_openbabel._OBMolAtomIter_BeginData, None, _OBMolAtomIter)
_OBMolAtomIter.EndData = new_instancemethod(_openbabel._OBMolAtomIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBMolAtomDFSIter_Visit_get, _openbabel._OBMolAtomDFSIter_Visit_set)
_OBMolAtomDFSIter.inc = new_instancemethod(_openbabel._OBMolAtomDFSIter_inc, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.__deref__ = new_instancemethod(_openbabel._OBMolAtomDFSIter___deref__, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomDFSIter___ref__, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.next = new_instancemethod(_openbabel._OBMolAtomDFSIter_next, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.__eq__ = new_instancemethod(_openbabel._OBMolAtomDFSIter___eq__, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.Duplicate = new_instancemethod(_openbabel._OBMolAtomDFSIter_Duplicate, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetIdx = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetIdx, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetId = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetId, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetHyb = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetHyb, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetAtomicNum = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetAtomicNum, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetIsotope = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetIsotope, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetImplicitValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetImplicitValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IncrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_IncrementImplicitValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DecrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_DecrementImplicitValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetFormalCharge = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetFormalCharge, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetSpinMultiplicity, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetType = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetType, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetPartialCharge = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetPartialCharge, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetVector = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetVector, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetCoordPtr = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetCoordPtr, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetParent = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetParent, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetAromatic = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetAromatic, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.UnsetAromatic = new_instancemethod(_openbabel._OBMolAtomDFSIter_UnsetAromatic, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetClockwiseStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetAntiClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetAntiClockwiseStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetPositiveStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetPositiveStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetNegativeStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetNegativeStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.UnsetStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_UnsetStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetInRing = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetInRing, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetChiral = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetChiral, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ClearCoordPtr = new_instancemethod(_openbabel._OBMolAtomDFSIter_ClearCoordPtr, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetFormalCharge = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetFormalCharge, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetAtomicNum = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetAtomicNum, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetIsotope = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetIsotope, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetSpinMultiplicity, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetAtomicMass = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetAtomicMass, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetExactMass = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetExactMass, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetIdx = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetIdx, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetIndex = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetIndex, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetId = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetId, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetCoordinateIdx = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetCoordinateIdx, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetCIdx = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetCIdx, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetHyb = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetHyb, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetImplicitValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetImplicitValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetHvyValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetHvyValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetHeteroValence = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetHeteroValence, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetType = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetType, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetX = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetX, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetY = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetY, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetZ = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetZ, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.x = new_instancemethod(_openbabel._OBMolAtomDFSIter_x, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.y = new_instancemethod(_openbabel._OBMolAtomDFSIter_y, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.z = new_instancemethod(_openbabel._OBMolAtomDFSIter_z, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetCoordinate = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetCoordinate, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetVector = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetVector, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetPartialCharge = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetPartialCharge, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetParent = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetParent, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetNewBondVector = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetNewBondVector, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetNextAtom = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetNextAtom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.BeginBonds = new_instancemethod(_openbabel._OBMolAtomDFSIter_BeginBonds, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.EndBonds = new_instancemethod(_openbabel._OBMolAtomDFSIter_EndBonds, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.BeginBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_BeginBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.NextBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_NextBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.BeginNbrAtom = new_instancemethod(_openbabel._OBMolAtomDFSIter_BeginNbrAtom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.NextNbrAtom = new_instancemethod(_openbabel._OBMolAtomDFSIter_NextNbrAtom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetDistance = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetDistance, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetAngle = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetAngle, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.NewResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_NewResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.AddResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_AddResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DeleteResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_DeleteResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.AddBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_AddBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.InsertBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_InsertBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DeleteBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_DeleteBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ClearBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_ClearBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HtoMethyl = new_instancemethod(_openbabel._OBMolAtomDFSIter_HtoMethyl, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetHybAndGeom = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetHybAndGeom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ForceNoH = new_instancemethod(_openbabel._OBMolAtomDFSIter_ForceNoH, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasNoHForced = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasNoHForced, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ForceImplH = new_instancemethod(_openbabel._OBMolAtomDFSIter_ForceImplH, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasImplHForced = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasImplHForced, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.CountFreeOxygens = new_instancemethod(_openbabel._OBMolAtomDFSIter_CountFreeOxygens, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.CountFreeSulfurs = new_instancemethod(_openbabel._OBMolAtomDFSIter_CountFreeSulfurs, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ImplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomDFSIter_ImplicitHydrogenCount, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ExplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomDFSIter_ExplicitHydrogenCount, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.MemberOfRingCount = new_instancemethod(_openbabel._OBMolAtomDFSIter_MemberOfRingCount, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.MemberOfRingSize = new_instancemethod(_openbabel._OBMolAtomDFSIter_MemberOfRingSize, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.CountRingBonds = new_instancemethod(_openbabel._OBMolAtomDFSIter_CountRingBonds, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SmallestBondAngle = new_instancemethod(_openbabel._OBMolAtomDFSIter_SmallestBondAngle, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.AverageBondAngle = new_instancemethod(_openbabel._OBMolAtomDFSIter_AverageBondAngle, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.BOSum = new_instancemethod(_openbabel._OBMolAtomDFSIter_BOSum, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.KBOSum = new_instancemethod(_openbabel._OBMolAtomDFSIter_KBOSum, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.LewisAcidBaseCounts = new_instancemethod(_openbabel._OBMolAtomDFSIter_LewisAcidBaseCounts, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasResidue = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasResidue, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHetAtom = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHetAtom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHydrogen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHydrogen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsCarbon = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsCarbon, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsNitrogen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsNitrogen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsOxygen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsOxygen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsSulfur = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsSulfur, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsPhosphorus = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsPhosphorus, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsAromatic = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsAromatic, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsInRing = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsInRing, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsInRingSize = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsInRingSize, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHeteroatom = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHeteroatom, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsNotCorH = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsNotCorH, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsConnected = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsConnected, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsOneThree = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsOneThree, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsOneFour = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsOneFour, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsCarboxylOxygen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsCarboxylOxygen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsThiocarboxylSulfur = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsThiocarboxylSulfur, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsPhosphateOxygen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsPhosphateOxygen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsSulfateOxygen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsSulfateOxygen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsNitroOxygen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsNitroOxygen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsAmideNitrogen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsAmideNitrogen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsPolarHydrogen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsNonPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsNonPolarHydrogen, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsAromaticNOxide = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsAromaticNOxide, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsChiral = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsChiral, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsAxial = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsAxial, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsClockwise = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsClockwise, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsAntiClockwise = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsAntiClockwise, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsPositiveStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsPositiveStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsNegativeStereo = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsNegativeStereo, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasChiralitySpecified = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasChiralitySpecified, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasChiralVolume = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasChiralVolume, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHbondAcceptor = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHbondAcceptor, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHbondDonor = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHbondDonor, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsHbondDonorH = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsHbondDonorH, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.IsMetal = new_instancemethod(_openbabel._OBMolAtomDFSIter_IsMetal, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasAlphaBetaUnsat = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasAlphaBetaUnsat, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasBondOfOrder = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasBondOfOrder, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.CountBondsOfOrder = new_instancemethod(_openbabel._OBMolAtomDFSIter_CountBondsOfOrder, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasNonSingleBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasNonSingleBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasSingleBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasSingleBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasDoubleBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasDoubleBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasAromaticBond = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasAromaticBond, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.MatchesSMARTS = new_instancemethod(_openbabel._OBMolAtomDFSIter_MatchesSMARTS, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.Clear = new_instancemethod(_openbabel._OBMolAtomDFSIter_Clear, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DoTransformations = new_instancemethod(_openbabel._OBMolAtomDFSIter_DoTransformations, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.ClassDescription = new_instancemethod(_openbabel._OBMolAtomDFSIter_ClassDescription, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetTitle = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetTitle, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.SetTitle = new_instancemethod(_openbabel._OBMolAtomDFSIter_SetTitle, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.HasData = new_instancemethod(_openbabel._OBMolAtomDFSIter_HasData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DeleteData = new_instancemethod(_openbabel._OBMolAtomDFSIter_DeleteData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.CloneData = new_instancemethod(_openbabel._OBMolAtomDFSIter_CloneData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.DataSize = new_instancemethod(_openbabel._OBMolAtomDFSIter_DataSize, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetData = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.GetAllData = new_instancemethod(_openbabel._OBMolAtomDFSIter_GetAllData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.BeginData = new_instancemethod(_openbabel._OBMolAtomDFSIter_BeginData, None, _OBMolAtomDFSIter)
_OBMolAtomDFSIter.EndData = new_instancemethod(_openbabel._OBMolAtomDFSIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBMolAtomBFSIter_Visit_get, _openbabel._OBMolAtomBFSIter_Visit_set)
_OBMolAtomBFSIter.inc = new_instancemethod(_openbabel._OBMolAtomBFSIter_inc, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.__deref__ = new_instancemethod(_openbabel._OBMolAtomBFSIter___deref__, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.__ref__ = new_instancemethod(_openbabel._OBMolAtomBFSIter___ref__, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CurrentDepth = new_instancemethod(_openbabel._OBMolAtomBFSIter_CurrentDepth, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.__eq__ = new_instancemethod(_openbabel._OBMolAtomBFSIter___eq__, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.Duplicate = new_instancemethod(_openbabel._OBMolAtomBFSIter_Duplicate, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetIdx = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetIdx, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetId = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetId, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetHyb = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetHyb, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetAtomicNum = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetAtomicNum, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetIsotope = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetIsotope, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetImplicitValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetImplicitValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IncrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_IncrementImplicitValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DecrementImplicitValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_DecrementImplicitValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetFormalCharge = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetFormalCharge, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetSpinMultiplicity, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetType = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetType, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetPartialCharge = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetPartialCharge, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetVector = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetVector, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetCoordPtr = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetCoordPtr, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetParent = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetParent, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetAromatic = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetAromatic, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.UnsetAromatic = new_instancemethod(_openbabel._OBMolAtomBFSIter_UnsetAromatic, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetClockwiseStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetAntiClockwiseStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetAntiClockwiseStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetPositiveStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetPositiveStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetNegativeStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetNegativeStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.UnsetStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_UnsetStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetInRing = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetInRing, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetChiral = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetChiral, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ClearCoordPtr = new_instancemethod(_openbabel._OBMolAtomBFSIter_ClearCoordPtr, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetFormalCharge = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetFormalCharge, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetAtomicNum = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetAtomicNum, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetIsotope = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetIsotope, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetSpinMultiplicity = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetSpinMultiplicity, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetAtomicMass = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetAtomicMass, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetExactMass = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetExactMass, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetIdx = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetIdx, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetIndex = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetIndex, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetId = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetId, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetCoordinateIdx = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetCoordinateIdx, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetCIdx = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetCIdx, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetHyb = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetHyb, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetImplicitValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetImplicitValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetHvyValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetHvyValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetHeteroValence = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetHeteroValence, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetType = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetType, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetX = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetX, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetY = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetY, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetZ = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetZ, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.x = new_instancemethod(_openbabel._OBMolAtomBFSIter_x, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.y = new_instancemethod(_openbabel._OBMolAtomBFSIter_y, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.z = new_instancemethod(_openbabel._OBMolAtomBFSIter_z, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetCoordinate = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetCoordinate, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetVector = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetVector, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetPartialCharge = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetPartialCharge, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetParent = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetParent, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetNewBondVector = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetNewBondVector, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetNextAtom = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetNextAtom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.BeginBonds = new_instancemethod(_openbabel._OBMolAtomBFSIter_BeginBonds, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.EndBonds = new_instancemethod(_openbabel._OBMolAtomBFSIter_EndBonds, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.BeginBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_BeginBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.NextBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_NextBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.BeginNbrAtom = new_instancemethod(_openbabel._OBMolAtomBFSIter_BeginNbrAtom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.NextNbrAtom = new_instancemethod(_openbabel._OBMolAtomBFSIter_NextNbrAtom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetDistance = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetDistance, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetAngle = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetAngle, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.NewResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_NewResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.AddResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_AddResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DeleteResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_DeleteResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.AddBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_AddBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.InsertBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_InsertBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DeleteBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_DeleteBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ClearBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_ClearBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HtoMethyl = new_instancemethod(_openbabel._OBMolAtomBFSIter_HtoMethyl, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetHybAndGeom = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetHybAndGeom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ForceNoH = new_instancemethod(_openbabel._OBMolAtomBFSIter_ForceNoH, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasNoHForced = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasNoHForced, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ForceImplH = new_instancemethod(_openbabel._OBMolAtomBFSIter_ForceImplH, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasImplHForced = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasImplHForced, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CountFreeOxygens = new_instancemethod(_openbabel._OBMolAtomBFSIter_CountFreeOxygens, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CountFreeSulfurs = new_instancemethod(_openbabel._OBMolAtomBFSIter_CountFreeSulfurs, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ImplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomBFSIter_ImplicitHydrogenCount, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ExplicitHydrogenCount = new_instancemethod(_openbabel._OBMolAtomBFSIter_ExplicitHydrogenCount, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.MemberOfRingCount = new_instancemethod(_openbabel._OBMolAtomBFSIter_MemberOfRingCount, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.MemberOfRingSize = new_instancemethod(_openbabel._OBMolAtomBFSIter_MemberOfRingSize, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CountRingBonds = new_instancemethod(_openbabel._OBMolAtomBFSIter_CountRingBonds, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SmallestBondAngle = new_instancemethod(_openbabel._OBMolAtomBFSIter_SmallestBondAngle, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.AverageBondAngle = new_instancemethod(_openbabel._OBMolAtomBFSIter_AverageBondAngle, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.BOSum = new_instancemethod(_openbabel._OBMolAtomBFSIter_BOSum, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.KBOSum = new_instancemethod(_openbabel._OBMolAtomBFSIter_KBOSum, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.LewisAcidBaseCounts = new_instancemethod(_openbabel._OBMolAtomBFSIter_LewisAcidBaseCounts, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasResidue = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasResidue, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHetAtom = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHetAtom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHydrogen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHydrogen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsCarbon = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsCarbon, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsNitrogen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsNitrogen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsOxygen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsOxygen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsSulfur = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsSulfur, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsPhosphorus = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsPhosphorus, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsAromatic = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsAromatic, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsInRing = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsInRing, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsInRingSize = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsInRingSize, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHeteroatom = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHeteroatom, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsNotCorH = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsNotCorH, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsConnected = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsConnected, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsOneThree = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsOneThree, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsOneFour = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsOneFour, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsCarboxylOxygen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsCarboxylOxygen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsThiocarboxylSulfur = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsThiocarboxylSulfur, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsPhosphateOxygen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsPhosphateOxygen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsSulfateOxygen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsSulfateOxygen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsNitroOxygen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsNitroOxygen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsAmideNitrogen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsAmideNitrogen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsPolarHydrogen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsNonPolarHydrogen = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsNonPolarHydrogen, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsAromaticNOxide = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsAromaticNOxide, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsChiral = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsChiral, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsAxial = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsAxial, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsClockwise = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsClockwise, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsAntiClockwise = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsAntiClockwise, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsPositiveStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsPositiveStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsNegativeStereo = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsNegativeStereo, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasChiralitySpecified = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasChiralitySpecified, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasChiralVolume = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasChiralVolume, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHbondAcceptor = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHbondAcceptor, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHbondDonor = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHbondDonor, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsHbondDonorH = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsHbondDonorH, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.IsMetal = new_instancemethod(_openbabel._OBMolAtomBFSIter_IsMetal, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasAlphaBetaUnsat = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasAlphaBetaUnsat, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasBondOfOrder = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasBondOfOrder, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CountBondsOfOrder = new_instancemethod(_openbabel._OBMolAtomBFSIter_CountBondsOfOrder, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasNonSingleBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasNonSingleBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasSingleBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasSingleBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasDoubleBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasDoubleBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasAromaticBond = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasAromaticBond, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.MatchesSMARTS = new_instancemethod(_openbabel._OBMolAtomBFSIter_MatchesSMARTS, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.Clear = new_instancemethod(_openbabel._OBMolAtomBFSIter_Clear, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DoTransformations = new_instancemethod(_openbabel._OBMolAtomBFSIter_DoTransformations, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.ClassDescription = new_instancemethod(_openbabel._OBMolAtomBFSIter_ClassDescription, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetTitle = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetTitle, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.SetTitle = new_instancemethod(_openbabel._OBMolAtomBFSIter_SetTitle, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.HasData = new_instancemethod(_openbabel._OBMolAtomBFSIter_HasData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DeleteData = new_instancemethod(_openbabel._OBMolAtomBFSIter_DeleteData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.CloneData = new_instancemethod(_openbabel._OBMolAtomBFSIter_CloneData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.DataSize = new_instancemethod(_openbabel._OBMolAtomBFSIter_DataSize, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetData = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.GetAllData = new_instancemethod(_openbabel._OBMolAtomBFSIter_GetAllData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.BeginData = new_instancemethod(_openbabel._OBMolAtomBFSIter_BeginData, None, _OBMolAtomBFSIter)
_OBMolAtomBFSIter.EndData = new_instancemethod(_openbabel._OBMolAtomBFSIter_EndData, 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__


    Visit = _swig_property(_openbabel.OBMolBondBFSIter_Visit_get, _openbabel.OBMolBondBFSIter_Visit_set)
OBMolBondBFSIter.inc = new_instancemethod(_openbabel.OBMolBondBFSIter_inc, None, OBMolBondBFSIter)
OBMolBondBFSIter.__deref__ = new_instancemethod(_openbabel.OBMolBondBFSIter___deref__, None, OBMolBondBFSIter)
OBMolBondBFSIter.__ref__ = new_instancemethod(_openbabel.OBMolBondBFSIter___ref__, None, OBMolBondBFSIter)
OBMolBondBFSIter.CurrentDepth = new_instancemethod(_openbabel.OBMolBondBFSIter_CurrentDepth, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetIdx = new_instancemethod(_openbabel.OBMolBondBFSIter_SetIdx, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetId = new_instancemethod(_openbabel.OBMolBondBFSIter_SetId, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetBO = new_instancemethod(_openbabel.OBMolBondBFSIter_SetBO, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetBondOrder = new_instancemethod(_openbabel.OBMolBondBFSIter_SetBondOrder, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetBegin = new_instancemethod(_openbabel.OBMolBondBFSIter_SetBegin, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetEnd = new_instancemethod(_openbabel.OBMolBondBFSIter_SetEnd, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetParent = new_instancemethod(_openbabel.OBMolBondBFSIter_SetParent, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetLength = new_instancemethod(_openbabel.OBMolBondBFSIter_SetLength, None, OBMolBondBFSIter)
OBMolBondBFSIter.Set = new_instancemethod(_openbabel.OBMolBondBFSIter_Set, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetKSingle = new_instancemethod(_openbabel.OBMolBondBFSIter_SetKSingle, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetKDouble = new_instancemethod(_openbabel.OBMolBondBFSIter_SetKDouble, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetKTriple = new_instancemethod(_openbabel.OBMolBondBFSIter_SetKTriple, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetAromatic = new_instancemethod(_openbabel.OBMolBondBFSIter_SetAromatic, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetWedge = new_instancemethod(_openbabel.OBMolBondBFSIter_SetWedge, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetHash = new_instancemethod(_openbabel.OBMolBondBFSIter_SetHash, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetWedgeOrHash = new_instancemethod(_openbabel.OBMolBondBFSIter_SetWedgeOrHash, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetUp = new_instancemethod(_openbabel.OBMolBondBFSIter_SetUp, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetDown = new_instancemethod(_openbabel.OBMolBondBFSIter_SetDown, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetInRing = new_instancemethod(_openbabel.OBMolBondBFSIter_SetInRing, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetClosure = new_instancemethod(_openbabel.OBMolBondBFSIter_SetClosure, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetHash = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetHash, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetWedge = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetWedge, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetUp = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetUp, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetDown = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetDown, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetAromatic = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetAromatic, None, OBMolBondBFSIter)
OBMolBondBFSIter.UnsetKekule = new_instancemethod(_openbabel.OBMolBondBFSIter_UnsetKekule, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetIdx = new_instancemethod(_openbabel.OBMolBondBFSIter_GetIdx, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetId = new_instancemethod(_openbabel.OBMolBondBFSIter_GetId, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetBO = new_instancemethod(_openbabel.OBMolBondBFSIter_GetBO, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetBondOrder = new_instancemethod(_openbabel.OBMolBondBFSIter_GetBondOrder, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetFlags = new_instancemethod(_openbabel.OBMolBondBFSIter_GetFlags, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetBeginAtomIdx = new_instancemethod(_openbabel.OBMolBondBFSIter_GetBeginAtomIdx, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetEndAtomIdx = new_instancemethod(_openbabel.OBMolBondBFSIter_GetEndAtomIdx, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetBeginAtom = new_instancemethod(_openbabel.OBMolBondBFSIter_GetBeginAtom, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetEndAtom = new_instancemethod(_openbabel.OBMolBondBFSIter_GetEndAtom, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetNbrAtom = new_instancemethod(_openbabel.OBMolBondBFSIter_GetNbrAtom, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetParent = new_instancemethod(_openbabel.OBMolBondBFSIter_GetParent, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetEquibLength = new_instancemethod(_openbabel.OBMolBondBFSIter_GetEquibLength, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetLength = new_instancemethod(_openbabel.OBMolBondBFSIter_GetLength, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetNbrAtomIdx = new_instancemethod(_openbabel.OBMolBondBFSIter_GetNbrAtomIdx, None, OBMolBondBFSIter)
OBMolBondBFSIter.FindSmallestRing = new_instancemethod(_openbabel.OBMolBondBFSIter_FindSmallestRing, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsAromatic = new_instancemethod(_openbabel.OBMolBondBFSIter_IsAromatic, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsInRing = new_instancemethod(_openbabel.OBMolBondBFSIter_IsInRing, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsRotor = new_instancemethod(_openbabel.OBMolBondBFSIter_IsRotor, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsAmide = new_instancemethod(_openbabel.OBMolBondBFSIter_IsAmide, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsPrimaryAmide = new_instancemethod(_openbabel.OBMolBondBFSIter_IsPrimaryAmide, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsSecondaryAmide = new_instancemethod(_openbabel.OBMolBondBFSIter_IsSecondaryAmide, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsTertiaryAmide = new_instancemethod(_openbabel.OBMolBondBFSIter_IsTertiaryAmide, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsAmidine = new_instancemethod(_openbabel.OBMolBondBFSIter_IsAmidine, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsEster = new_instancemethod(_openbabel.OBMolBondBFSIter_IsEster, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsCarbonyl = new_instancemethod(_openbabel.OBMolBondBFSIter_IsCarbonyl, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsImide = new_instancemethod(_openbabel.OBMolBondBFSIter_IsImide, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsSingle = new_instancemethod(_openbabel.OBMolBondBFSIter_IsSingle, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsDouble = new_instancemethod(_openbabel.OBMolBondBFSIter_IsDouble, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsTriple = new_instancemethod(_openbabel.OBMolBondBFSIter_IsTriple, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsKSingle = new_instancemethod(_openbabel.OBMolBondBFSIter_IsKSingle, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsKDouble = new_instancemethod(_openbabel.OBMolBondBFSIter_IsKDouble, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsKTriple = new_instancemethod(_openbabel.OBMolBondBFSIter_IsKTriple, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsClosure = new_instancemethod(_openbabel.OBMolBondBFSIter_IsClosure, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsUp = new_instancemethod(_openbabel.OBMolBondBFSIter_IsUp, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsDown = new_instancemethod(_openbabel.OBMolBondBFSIter_IsDown, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsWedge = new_instancemethod(_openbabel.OBMolBondBFSIter_IsWedge, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsHash = new_instancemethod(_openbabel.OBMolBondBFSIter_IsHash, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsWedgeOrHash = new_instancemethod(_openbabel.OBMolBondBFSIter_IsWedgeOrHash, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsCisOrTrans = new_instancemethod(_openbabel.OBMolBondBFSIter_IsCisOrTrans, None, OBMolBondBFSIter)
OBMolBondBFSIter.IsDoubleBondGeometry = new_instancemethod(_openbabel.OBMolBondBFSIter_IsDoubleBondGeometry, None, OBMolBondBFSIter)
OBMolBondBFSIter.Clear = new_instancemethod(_openbabel.OBMolBondBFSIter_Clear, None, OBMolBondBFSIter)
OBMolBondBFSIter.DoTransformations = new_instancemethod(_openbabel.OBMolBondBFSIter_DoTransformations, None, OBMolBondBFSIter)
OBMolBondBFSIter.ClassDescription = new_instancemethod(_openbabel.OBMolBondBFSIter_ClassDescription, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetTitle = new_instancemethod(_openbabel.OBMolBondBFSIter_GetTitle, None, OBMolBondBFSIter)
OBMolBondBFSIter.SetTitle = new_instancemethod(_openbabel.OBMolBondBFSIter_SetTitle, None, OBMolBondBFSIter)
OBMolBondBFSIter.HasData = new_instancemethod(_openbabel.OBMolBondBFSIter_HasData, None, OBMolBondBFSIter)
OBMolBondBFSIter.DeleteData = new_instancemethod(_openbabel.OBMolBondBFSIter_DeleteData, None, OBMolBondBFSIter)
OBMolBondBFSIter.CloneData = new_instancemethod(_openbabel.OBMolBondBFSIter_CloneData, None, OBMolBondBFSIter)
OBMolBondBFSIter.DataSize = new_instancemethod(_openbabel.OBMolBondBFSIter_DataSize, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetData = new_instancemethod(_openbabel.OBMolBondBFSIter_GetData, None, OBMolBondBFSIter)
OBMolBondBFSIter.GetAllData = new_instancemethod(_openbabel.OBMolBondBFSIter_GetAllData, None, OBMolBondBFSIter)
OBMolBondBFSIter.BeginData = new_instancemethod(_openbabel.OBMolBondBFSIter_BeginData, None, OBMolBondBFSIter)
OBMolBondBFSIter.EndData = new_instancemethod(_openbabel.OBMolBondBFSIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBMolBondIter_Visit_get, _openbabel._OBMolBondIter_Visit_set)
_OBMolBondIter.inc = new_instancemethod(_openbabel._OBMolBondIter_inc, None, _OBMolBondIter)
_OBMolBondIter.__deref__ = new_instancemethod(_openbabel._OBMolBondIter___deref__, None, _OBMolBondIter)
_OBMolBondIter.__ref__ = new_instancemethod(_openbabel._OBMolBondIter___ref__, None, _OBMolBondIter)
_OBMolBondIter.SetIdx = new_instancemethod(_openbabel._OBMolBondIter_SetIdx, None, _OBMolBondIter)
_OBMolBondIter.SetId = new_instancemethod(_openbabel._OBMolBondIter_SetId, None, _OBMolBondIter)
_OBMolBondIter.SetBO = new_instancemethod(_openbabel._OBMolBondIter_SetBO, None, _OBMolBondIter)
_OBMolBondIter.SetBondOrder = new_instancemethod(_openbabel._OBMolBondIter_SetBondOrder, None, _OBMolBondIter)
_OBMolBondIter.SetBegin = new_instancemethod(_openbabel._OBMolBondIter_SetBegin, None, _OBMolBondIter)
_OBMolBondIter.SetEnd = new_instancemethod(_openbabel._OBMolBondIter_SetEnd, None, _OBMolBondIter)
_OBMolBondIter.SetParent = new_instancemethod(_openbabel._OBMolBondIter_SetParent, None, _OBMolBondIter)
_OBMolBondIter.SetLength = new_instancemethod(_openbabel._OBMolBondIter_SetLength, None, _OBMolBondIter)
_OBMolBondIter.Set = new_instancemethod(_openbabel._OBMolBondIter_Set, None, _OBMolBondIter)
_OBMolBondIter.SetKSingle = new_instancemethod(_openbabel._OBMolBondIter_SetKSingle, None, _OBMolBondIter)
_OBMolBondIter.SetKDouble = new_instancemethod(_openbabel._OBMolBondIter_SetKDouble, None, _OBMolBondIter)
_OBMolBondIter.SetKTriple = new_instancemethod(_openbabel._OBMolBondIter_SetKTriple, None, _OBMolBondIter)
_OBMolBondIter.SetAromatic = new_instancemethod(_openbabel._OBMolBondIter_SetAromatic, None, _OBMolBondIter)
_OBMolBondIter.SetWedge = new_instancemethod(_openbabel._OBMolBondIter_SetWedge, None, _OBMolBondIter)
_OBMolBondIter.SetHash = new_instancemethod(_openbabel._OBMolBondIter_SetHash, None, _OBMolBondIter)
_OBMolBondIter.SetWedgeOrHash = new_instancemethod(_openbabel._OBMolBondIter_SetWedgeOrHash, None, _OBMolBondIter)
_OBMolBondIter.SetUp = new_instancemethod(_openbabel._OBMolBondIter_SetUp, None, _OBMolBondIter)
_OBMolBondIter.SetDown = new_instancemethod(_openbabel._OBMolBondIter_SetDown, None, _OBMolBondIter)
_OBMolBondIter.SetInRing = new_instancemethod(_openbabel._OBMolBondIter_SetInRing, None, _OBMolBondIter)
_OBMolBondIter.SetClosure = new_instancemethod(_openbabel._OBMolBondIter_SetClosure, None, _OBMolBondIter)
_OBMolBondIter.UnsetHash = new_instancemethod(_openbabel._OBMolBondIter_UnsetHash, None, _OBMolBondIter)
_OBMolBondIter.UnsetWedge = new_instancemethod(_openbabel._OBMolBondIter_UnsetWedge, None, _OBMolBondIter)
_OBMolBondIter.UnsetUp = new_instancemethod(_openbabel._OBMolBondIter_UnsetUp, None, _OBMolBondIter)
_OBMolBondIter.UnsetDown = new_instancemethod(_openbabel._OBMolBondIter_UnsetDown, None, _OBMolBondIter)
_OBMolBondIter.UnsetAromatic = new_instancemethod(_openbabel._OBMolBondIter_UnsetAromatic, None, _OBMolBondIter)
_OBMolBondIter.UnsetKekule = new_instancemethod(_openbabel._OBMolBondIter_UnsetKekule, None, _OBMolBondIter)
_OBMolBondIter.GetIdx = new_instancemethod(_openbabel._OBMolBondIter_GetIdx, None, _OBMolBondIter)
_OBMolBondIter.GetId = new_instancemethod(_openbabel._OBMolBondIter_GetId, None, _OBMolBondIter)
_OBMolBondIter.GetBO = new_instancemethod(_openbabel._OBMolBondIter_GetBO, None, _OBMolBondIter)
_OBMolBondIter.GetBondOrder = new_instancemethod(_openbabel._OBMolBondIter_GetBondOrder, None, _OBMolBondIter)
_OBMolBondIter.GetFlags = new_instancemethod(_openbabel._OBMolBondIter_GetFlags, None, _OBMolBondIter)
_OBMolBondIter.GetBeginAtomIdx = new_instancemethod(_openbabel._OBMolBondIter_GetBeginAtomIdx, None, _OBMolBondIter)
_OBMolBondIter.GetEndAtomIdx = new_instancemethod(_openbabel._OBMolBondIter_GetEndAtomIdx, None, _OBMolBondIter)
_OBMolBondIter.GetBeginAtom = new_instancemethod(_openbabel._OBMolBondIter_GetBeginAtom, None, _OBMolBondIter)
_OBMolBondIter.GetEndAtom = new_instancemethod(_openbabel._OBMolBondIter_GetEndAtom, None, _OBMolBondIter)
_OBMolBondIter.GetNbrAtom = new_instancemethod(_openbabel._OBMolBondIter_GetNbrAtom, None, _OBMolBondIter)
_OBMolBondIter.GetParent = new_instancemethod(_openbabel._OBMolBondIter_GetParent, None, _OBMolBondIter)
_OBMolBondIter.GetEquibLength = new_instancemethod(_openbabel._OBMolBondIter_GetEquibLength, None, _OBMolBondIter)
_OBMolBondIter.GetLength = new_instancemethod(_openbabel._OBMolBondIter_GetLength, None, _OBMolBondIter)
_OBMolBondIter.GetNbrAtomIdx = new_instancemethod(_openbabel._OBMolBondIter_GetNbrAtomIdx, None, _OBMolBondIter)
_OBMolBondIter.FindSmallestRing = new_instancemethod(_openbabel._OBMolBondIter_FindSmallestRing, None, _OBMolBondIter)
_OBMolBondIter.IsAromatic = new_instancemethod(_openbabel._OBMolBondIter_IsAromatic, None, _OBMolBondIter)
_OBMolBondIter.IsInRing = new_instancemethod(_openbabel._OBMolBondIter_IsInRing, None, _OBMolBondIter)
_OBMolBondIter.IsRotor = new_instancemethod(_openbabel._OBMolBondIter_IsRotor, None, _OBMolBondIter)
_OBMolBondIter.IsAmide = new_instancemethod(_openbabel._OBMolBondIter_IsAmide, None, _OBMolBondIter)
_OBMolBondIter.IsPrimaryAmide = new_instancemethod(_openbabel._OBMolBondIter_IsPrimaryAmide, None, _OBMolBondIter)
_OBMolBondIter.IsSecondaryAmide = new_instancemethod(_openbabel._OBMolBondIter_IsSecondaryAmide, None, _OBMolBondIter)
_OBMolBondIter.IsTertiaryAmide = new_instancemethod(_openbabel._OBMolBondIter_IsTertiaryAmide, None, _OBMolBondIter)
_OBMolBondIter.IsAmidine = new_instancemethod(_openbabel._OBMolBondIter_IsAmidine, None, _OBMolBondIter)
_OBMolBondIter.IsEster = new_instancemethod(_openbabel._OBMolBondIter_IsEster, None, _OBMolBondIter)
_OBMolBondIter.IsCarbonyl = new_instancemethod(_openbabel._OBMolBondIter_IsCarbonyl, None, _OBMolBondIter)
_OBMolBondIter.IsImide = new_instancemethod(_openbabel._OBMolBondIter_IsImide, None, _OBMolBondIter)
_OBMolBondIter.IsSingle = new_instancemethod(_openbabel._OBMolBondIter_IsSingle, None, _OBMolBondIter)
_OBMolBondIter.IsDouble = new_instancemethod(_openbabel._OBMolBondIter_IsDouble, None, _OBMolBondIter)
_OBMolBondIter.IsTriple = new_instancemethod(_openbabel._OBMolBondIter_IsTriple, None, _OBMolBondIter)
_OBMolBondIter.IsKSingle = new_instancemethod(_openbabel._OBMolBondIter_IsKSingle, None, _OBMolBondIter)
_OBMolBondIter.IsKDouble = new_instancemethod(_openbabel._OBMolBondIter_IsKDouble, None, _OBMolBondIter)
_OBMolBondIter.IsKTriple = new_instancemethod(_openbabel._OBMolBondIter_IsKTriple, None, _OBMolBondIter)
_OBMolBondIter.IsClosure = new_instancemethod(_openbabel._OBMolBondIter_IsClosure, None, _OBMolBondIter)
_OBMolBondIter.IsUp = new_instancemethod(_openbabel._OBMolBondIter_IsUp, None, _OBMolBondIter)
_OBMolBondIter.IsDown = new_instancemethod(_openbabel._OBMolBondIter_IsDown, None, _OBMolBondIter)
_OBMolBondIter.IsWedge = new_instancemethod(_openbabel._OBMolBondIter_IsWedge, None, _OBMolBondIter)
_OBMolBondIter.IsHash = new_instancemethod(_openbabel._OBMolBondIter_IsHash, None, _OBMolBondIter)
_OBMolBondIter.IsWedgeOrHash = new_instancemethod(_openbabel._OBMolBondIter_IsWedgeOrHash, None, _OBMolBondIter)
_OBMolBondIter.IsCisOrTrans = new_instancemethod(_openbabel._OBMolBondIter_IsCisOrTrans, None, _OBMolBondIter)
_OBMolBondIter.IsDoubleBondGeometry = new_instancemethod(_openbabel._OBMolBondIter_IsDoubleBondGeometry, None, _OBMolBondIter)
_OBMolBondIter.Clear = new_instancemethod(_openbabel._OBMolBondIter_Clear, None, _OBMolBondIter)
_OBMolBondIter.DoTransformations = new_instancemethod(_openbabel._OBMolBondIter_DoTransformations, None, _OBMolBondIter)
_OBMolBondIter.ClassDescription = new_instancemethod(_openbabel._OBMolBondIter_ClassDescription, None, _OBMolBondIter)
_OBMolBondIter.GetTitle = new_instancemethod(_openbabel._OBMolBondIter_GetTitle, None, _OBMolBondIter)
_OBMolBondIter.SetTitle = new_instancemethod(_openbabel._OBMolBondIter_SetTitle, None, _OBMolBondIter)
_OBMolBondIter.HasData = new_instancemethod(_openbabel._OBMolBondIter_HasData, None, _OBMolBondIter)
_OBMolBondIter.DeleteData = new_instancemethod(_openbabel._OBMolBondIter_DeleteData, None, _OBMolBondIter)
_OBMolBondIter.CloneData = new_instancemethod(_openbabel._OBMolBondIter_CloneData, None, _OBMolBondIter)
_OBMolBondIter.DataSize = new_instancemethod(_openbabel._OBMolBondIter_DataSize, None, _OBMolBondIter)
_OBMolBondIter.GetData = new_instancemethod(_openbabel._OBMolBondIter_GetData, None, _OBMolBondIter)
_OBMolBondIter.GetAllData = new_instancemethod(_openbabel._OBMolBondIter_GetAllData, None, _OBMolBondIter)
_OBMolBondIter.BeginData = new_instancemethod(_openbabel._OBMolBondIter_BeginData, None, _OBMolBondIter)
_OBMolBondIter.EndData = new_instancemethod(_openbabel._OBMolBondIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBAtomAtomIter_Visit_get, _openbabel._OBAtomAtomIter_Visit_set)
_OBAtomAtomIter.inc = new_instancemethod(_openbabel._OBAtomAtomIter_inc, None, _OBAtomAtomIter)
_OBAtomAtomIter.__deref__ = new_instancemethod(_openbabel._OBAtomAtomIter___deref__, None, _OBAtomAtomIter)
_OBAtomAtomIter.__ref__ = new_instancemethod(_openbabel._OBAtomAtomIter___ref__, None, _OBAtomAtomIter)
_OBAtomAtomIter.__eq__ = new_instancemethod(_openbabel._OBAtomAtomIter___eq__, None, _OBAtomAtomIter)
_OBAtomAtomIter.Duplicate = new_instancemethod(_openbabel._OBAtomAtomIter_Duplicate, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetIdx = new_instancemethod(_openbabel._OBAtomAtomIter_SetIdx, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetId = new_instancemethod(_openbabel._OBAtomAtomIter_SetId, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetHyb = new_instancemethod(_openbabel._OBAtomAtomIter_SetHyb, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetAtomicNum = new_instancemethod(_openbabel._OBAtomAtomIter_SetAtomicNum, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetIsotope = new_instancemethod(_openbabel._OBAtomAtomIter_SetIsotope, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetImplicitValence = new_instancemethod(_openbabel._OBAtomAtomIter_SetImplicitValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.IncrementImplicitValence = new_instancemethod(_openbabel._OBAtomAtomIter_IncrementImplicitValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.DecrementImplicitValence = new_instancemethod(_openbabel._OBAtomAtomIter_DecrementImplicitValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetFormalCharge = new_instancemethod(_openbabel._OBAtomAtomIter_SetFormalCharge, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetSpinMultiplicity = new_instancemethod(_openbabel._OBAtomAtomIter_SetSpinMultiplicity, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetType = new_instancemethod(_openbabel._OBAtomAtomIter_SetType, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetPartialCharge = new_instancemethod(_openbabel._OBAtomAtomIter_SetPartialCharge, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetVector = new_instancemethod(_openbabel._OBAtomAtomIter_SetVector, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetCoordPtr = new_instancemethod(_openbabel._OBAtomAtomIter_SetCoordPtr, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetResidue = new_instancemethod(_openbabel._OBAtomAtomIter_SetResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetParent = new_instancemethod(_openbabel._OBAtomAtomIter_SetParent, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetAromatic = new_instancemethod(_openbabel._OBAtomAtomIter_SetAromatic, None, _OBAtomAtomIter)
_OBAtomAtomIter.UnsetAromatic = new_instancemethod(_openbabel._OBAtomAtomIter_UnsetAromatic, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetClockwiseStereo = new_instancemethod(_openbabel._OBAtomAtomIter_SetClockwiseStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetAntiClockwiseStereo = new_instancemethod(_openbabel._OBAtomAtomIter_SetAntiClockwiseStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetPositiveStereo = new_instancemethod(_openbabel._OBAtomAtomIter_SetPositiveStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetNegativeStereo = new_instancemethod(_openbabel._OBAtomAtomIter_SetNegativeStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.UnsetStereo = new_instancemethod(_openbabel._OBAtomAtomIter_UnsetStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetInRing = new_instancemethod(_openbabel._OBAtomAtomIter_SetInRing, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetChiral = new_instancemethod(_openbabel._OBAtomAtomIter_SetChiral, None, _OBAtomAtomIter)
_OBAtomAtomIter.ClearCoordPtr = new_instancemethod(_openbabel._OBAtomAtomIter_ClearCoordPtr, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetFormalCharge = new_instancemethod(_openbabel._OBAtomAtomIter_GetFormalCharge, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetAtomicNum = new_instancemethod(_openbabel._OBAtomAtomIter_GetAtomicNum, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetIsotope = new_instancemethod(_openbabel._OBAtomAtomIter_GetIsotope, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetSpinMultiplicity = new_instancemethod(_openbabel._OBAtomAtomIter_GetSpinMultiplicity, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetAtomicMass = new_instancemethod(_openbabel._OBAtomAtomIter_GetAtomicMass, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetExactMass = new_instancemethod(_openbabel._OBAtomAtomIter_GetExactMass, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetIdx = new_instancemethod(_openbabel._OBAtomAtomIter_GetIdx, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetIndex = new_instancemethod(_openbabel._OBAtomAtomIter_GetIndex, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetId = new_instancemethod(_openbabel._OBAtomAtomIter_GetId, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetCoordinateIdx = new_instancemethod(_openbabel._OBAtomAtomIter_GetCoordinateIdx, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetCIdx = new_instancemethod(_openbabel._OBAtomAtomIter_GetCIdx, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetValence = new_instancemethod(_openbabel._OBAtomAtomIter_GetValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetHyb = new_instancemethod(_openbabel._OBAtomAtomIter_GetHyb, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetImplicitValence = new_instancemethod(_openbabel._OBAtomAtomIter_GetImplicitValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetHvyValence = new_instancemethod(_openbabel._OBAtomAtomIter_GetHvyValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetHeteroValence = new_instancemethod(_openbabel._OBAtomAtomIter_GetHeteroValence, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetType = new_instancemethod(_openbabel._OBAtomAtomIter_GetType, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetX = new_instancemethod(_openbabel._OBAtomAtomIter_GetX, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetY = new_instancemethod(_openbabel._OBAtomAtomIter_GetY, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetZ = new_instancemethod(_openbabel._OBAtomAtomIter_GetZ, None, _OBAtomAtomIter)
_OBAtomAtomIter.x = new_instancemethod(_openbabel._OBAtomAtomIter_x, None, _OBAtomAtomIter)
_OBAtomAtomIter.y = new_instancemethod(_openbabel._OBAtomAtomIter_y, None, _OBAtomAtomIter)
_OBAtomAtomIter.z = new_instancemethod(_openbabel._OBAtomAtomIter_z, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetCoordinate = new_instancemethod(_openbabel._OBAtomAtomIter_GetCoordinate, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetVector = new_instancemethod(_openbabel._OBAtomAtomIter_GetVector, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetPartialCharge = new_instancemethod(_openbabel._OBAtomAtomIter_GetPartialCharge, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetResidue = new_instancemethod(_openbabel._OBAtomAtomIter_GetResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetParent = new_instancemethod(_openbabel._OBAtomAtomIter_GetParent, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetNewBondVector = new_instancemethod(_openbabel._OBAtomAtomIter_GetNewBondVector, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetBond = new_instancemethod(_openbabel._OBAtomAtomIter_GetBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetNextAtom = new_instancemethod(_openbabel._OBAtomAtomIter_GetNextAtom, None, _OBAtomAtomIter)
_OBAtomAtomIter.BeginBonds = new_instancemethod(_openbabel._OBAtomAtomIter_BeginBonds, None, _OBAtomAtomIter)
_OBAtomAtomIter.EndBonds = new_instancemethod(_openbabel._OBAtomAtomIter_EndBonds, None, _OBAtomAtomIter)
_OBAtomAtomIter.BeginBond = new_instancemethod(_openbabel._OBAtomAtomIter_BeginBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.NextBond = new_instancemethod(_openbabel._OBAtomAtomIter_NextBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.BeginNbrAtom = new_instancemethod(_openbabel._OBAtomAtomIter_BeginNbrAtom, None, _OBAtomAtomIter)
_OBAtomAtomIter.NextNbrAtom = new_instancemethod(_openbabel._OBAtomAtomIter_NextNbrAtom, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetDistance = new_instancemethod(_openbabel._OBAtomAtomIter_GetDistance, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetAngle = new_instancemethod(_openbabel._OBAtomAtomIter_GetAngle, None, _OBAtomAtomIter)
_OBAtomAtomIter.NewResidue = new_instancemethod(_openbabel._OBAtomAtomIter_NewResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.AddResidue = new_instancemethod(_openbabel._OBAtomAtomIter_AddResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.DeleteResidue = new_instancemethod(_openbabel._OBAtomAtomIter_DeleteResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.AddBond = new_instancemethod(_openbabel._OBAtomAtomIter_AddBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.InsertBond = new_instancemethod(_openbabel._OBAtomAtomIter_InsertBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.DeleteBond = new_instancemethod(_openbabel._OBAtomAtomIter_DeleteBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.ClearBond = new_instancemethod(_openbabel._OBAtomAtomIter_ClearBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.HtoMethyl = new_instancemethod(_openbabel._OBAtomAtomIter_HtoMethyl, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetHybAndGeom = new_instancemethod(_openbabel._OBAtomAtomIter_SetHybAndGeom, None, _OBAtomAtomIter)
_OBAtomAtomIter.ForceNoH = new_instancemethod(_openbabel._OBAtomAtomIter_ForceNoH, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasNoHForced = new_instancemethod(_openbabel._OBAtomAtomIter_HasNoHForced, None, _OBAtomAtomIter)
_OBAtomAtomIter.ForceImplH = new_instancemethod(_openbabel._OBAtomAtomIter_ForceImplH, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasImplHForced = new_instancemethod(_openbabel._OBAtomAtomIter_HasImplHForced, None, _OBAtomAtomIter)
_OBAtomAtomIter.CountFreeOxygens = new_instancemethod(_openbabel._OBAtomAtomIter_CountFreeOxygens, None, _OBAtomAtomIter)
_OBAtomAtomIter.CountFreeSulfurs = new_instancemethod(_openbabel._OBAtomAtomIter_CountFreeSulfurs, None, _OBAtomAtomIter)
_OBAtomAtomIter.ImplicitHydrogenCount = new_instancemethod(_openbabel._OBAtomAtomIter_ImplicitHydrogenCount, None, _OBAtomAtomIter)
_OBAtomAtomIter.ExplicitHydrogenCount = new_instancemethod(_openbabel._OBAtomAtomIter_ExplicitHydrogenCount, None, _OBAtomAtomIter)
_OBAtomAtomIter.MemberOfRingCount = new_instancemethod(_openbabel._OBAtomAtomIter_MemberOfRingCount, None, _OBAtomAtomIter)
_OBAtomAtomIter.MemberOfRingSize = new_instancemethod(_openbabel._OBAtomAtomIter_MemberOfRingSize, None, _OBAtomAtomIter)
_OBAtomAtomIter.CountRingBonds = new_instancemethod(_openbabel._OBAtomAtomIter_CountRingBonds, None, _OBAtomAtomIter)
_OBAtomAtomIter.SmallestBondAngle = new_instancemethod(_openbabel._OBAtomAtomIter_SmallestBondAngle, None, _OBAtomAtomIter)
_OBAtomAtomIter.AverageBondAngle = new_instancemethod(_openbabel._OBAtomAtomIter_AverageBondAngle, None, _OBAtomAtomIter)
_OBAtomAtomIter.BOSum = new_instancemethod(_openbabel._OBAtomAtomIter_BOSum, None, _OBAtomAtomIter)
_OBAtomAtomIter.KBOSum = new_instancemethod(_openbabel._OBAtomAtomIter_KBOSum, None, _OBAtomAtomIter)
_OBAtomAtomIter.LewisAcidBaseCounts = new_instancemethod(_openbabel._OBAtomAtomIter_LewisAcidBaseCounts, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasResidue = new_instancemethod(_openbabel._OBAtomAtomIter_HasResidue, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHetAtom = new_instancemethod(_openbabel._OBAtomAtomIter_IsHetAtom, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHydrogen = new_instancemethod(_openbabel._OBAtomAtomIter_IsHydrogen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsCarbon = new_instancemethod(_openbabel._OBAtomAtomIter_IsCarbon, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsNitrogen = new_instancemethod(_openbabel._OBAtomAtomIter_IsNitrogen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsOxygen = new_instancemethod(_openbabel._OBAtomAtomIter_IsOxygen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsSulfur = new_instancemethod(_openbabel._OBAtomAtomIter_IsSulfur, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsPhosphorus = new_instancemethod(_openbabel._OBAtomAtomIter_IsPhosphorus, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsAromatic = new_instancemethod(_openbabel._OBAtomAtomIter_IsAromatic, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsInRing = new_instancemethod(_openbabel._OBAtomAtomIter_IsInRing, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsInRingSize = new_instancemethod(_openbabel._OBAtomAtomIter_IsInRingSize, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHeteroatom = new_instancemethod(_openbabel._OBAtomAtomIter_IsHeteroatom, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsNotCorH = new_instancemethod(_openbabel._OBAtomAtomIter_IsNotCorH, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsConnected = new_instancemethod(_openbabel._OBAtomAtomIter_IsConnected, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsOneThree = new_instancemethod(_openbabel._OBAtomAtomIter_IsOneThree, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsOneFour = new_instancemethod(_openbabel._OBAtomAtomIter_IsOneFour, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsCarboxylOxygen = new_instancemethod(_openbabel._OBAtomAtomIter_IsCarboxylOxygen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsThiocarboxylSulfur = new_instancemethod(_openbabel._OBAtomAtomIter_IsThiocarboxylSulfur, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsPhosphateOxygen = new_instancemethod(_openbabel._OBAtomAtomIter_IsPhosphateOxygen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsSulfateOxygen = new_instancemethod(_openbabel._OBAtomAtomIter_IsSulfateOxygen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsNitroOxygen = new_instancemethod(_openbabel._OBAtomAtomIter_IsNitroOxygen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsAmideNitrogen = new_instancemethod(_openbabel._OBAtomAtomIter_IsAmideNitrogen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsPolarHydrogen = new_instancemethod(_openbabel._OBAtomAtomIter_IsPolarHydrogen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsNonPolarHydrogen = new_instancemethod(_openbabel._OBAtomAtomIter_IsNonPolarHydrogen, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsAromaticNOxide = new_instancemethod(_openbabel._OBAtomAtomIter_IsAromaticNOxide, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsChiral = new_instancemethod(_openbabel._OBAtomAtomIter_IsChiral, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsAxial = new_instancemethod(_openbabel._OBAtomAtomIter_IsAxial, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsClockwise = new_instancemethod(_openbabel._OBAtomAtomIter_IsClockwise, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsAntiClockwise = new_instancemethod(_openbabel._OBAtomAtomIter_IsAntiClockwise, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsPositiveStereo = new_instancemethod(_openbabel._OBAtomAtomIter_IsPositiveStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsNegativeStereo = new_instancemethod(_openbabel._OBAtomAtomIter_IsNegativeStereo, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasChiralitySpecified = new_instancemethod(_openbabel._OBAtomAtomIter_HasChiralitySpecified, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasChiralVolume = new_instancemethod(_openbabel._OBAtomAtomIter_HasChiralVolume, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHbondAcceptor = new_instancemethod(_openbabel._OBAtomAtomIter_IsHbondAcceptor, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHbondDonor = new_instancemethod(_openbabel._OBAtomAtomIter_IsHbondDonor, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsHbondDonorH = new_instancemethod(_openbabel._OBAtomAtomIter_IsHbondDonorH, None, _OBAtomAtomIter)
_OBAtomAtomIter.IsMetal = new_instancemethod(_openbabel._OBAtomAtomIter_IsMetal, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasAlphaBetaUnsat = new_instancemethod(_openbabel._OBAtomAtomIter_HasAlphaBetaUnsat, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasBondOfOrder = new_instancemethod(_openbabel._OBAtomAtomIter_HasBondOfOrder, None, _OBAtomAtomIter)
_OBAtomAtomIter.CountBondsOfOrder = new_instancemethod(_openbabel._OBAtomAtomIter_CountBondsOfOrder, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasNonSingleBond = new_instancemethod(_openbabel._OBAtomAtomIter_HasNonSingleBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasSingleBond = new_instancemethod(_openbabel._OBAtomAtomIter_HasSingleBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasDoubleBond = new_instancemethod(_openbabel._OBAtomAtomIter_HasDoubleBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasAromaticBond = new_instancemethod(_openbabel._OBAtomAtomIter_HasAromaticBond, None, _OBAtomAtomIter)
_OBAtomAtomIter.MatchesSMARTS = new_instancemethod(_openbabel._OBAtomAtomIter_MatchesSMARTS, None, _OBAtomAtomIter)
_OBAtomAtomIter.Clear = new_instancemethod(_openbabel._OBAtomAtomIter_Clear, None, _OBAtomAtomIter)
_OBAtomAtomIter.DoTransformations = new_instancemethod(_openbabel._OBAtomAtomIter_DoTransformations, None, _OBAtomAtomIter)
_OBAtomAtomIter.ClassDescription = new_instancemethod(_openbabel._OBAtomAtomIter_ClassDescription, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetTitle = new_instancemethod(_openbabel._OBAtomAtomIter_GetTitle, None, _OBAtomAtomIter)
_OBAtomAtomIter.SetTitle = new_instancemethod(_openbabel._OBAtomAtomIter_SetTitle, None, _OBAtomAtomIter)
_OBAtomAtomIter.HasData = new_instancemethod(_openbabel._OBAtomAtomIter_HasData, None, _OBAtomAtomIter)
_OBAtomAtomIter.DeleteData = new_instancemethod(_openbabel._OBAtomAtomIter_DeleteData, None, _OBAtomAtomIter)
_OBAtomAtomIter.CloneData = new_instancemethod(_openbabel._OBAtomAtomIter_CloneData, None, _OBAtomAtomIter)
_OBAtomAtomIter.DataSize = new_instancemethod(_openbabel._OBAtomAtomIter_DataSize, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetData = new_instancemethod(_openbabel._OBAtomAtomIter_GetData, None, _OBAtomAtomIter)
_OBAtomAtomIter.GetAllData = new_instancemethod(_openbabel._OBAtomAtomIter_GetAllData, None, _OBAtomAtomIter)
_OBAtomAtomIter.BeginData = new_instancemethod(_openbabel._OBAtomAtomIter_BeginData, None, _OBAtomAtomIter)
_OBAtomAtomIter.EndData = new_instancemethod(_openbabel._OBAtomAtomIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBAtomBondIter_Visit_get, _openbabel._OBAtomBondIter_Visit_set)
_OBAtomBondIter.inc = new_instancemethod(_openbabel._OBAtomBondIter_inc, None, _OBAtomBondIter)
_OBAtomBondIter.__deref__ = new_instancemethod(_openbabel._OBAtomBondIter___deref__, None, _OBAtomBondIter)
_OBAtomBondIter.__ref__ = new_instancemethod(_openbabel._OBAtomBondIter___ref__, None, _OBAtomBondIter)
_OBAtomBondIter.SetIdx = new_instancemethod(_openbabel._OBAtomBondIter_SetIdx, None, _OBAtomBondIter)
_OBAtomBondIter.SetId = new_instancemethod(_openbabel._OBAtomBondIter_SetId, None, _OBAtomBondIter)
_OBAtomBondIter.SetBO = new_instancemethod(_openbabel._OBAtomBondIter_SetBO, None, _OBAtomBondIter)
_OBAtomBondIter.SetBondOrder = new_instancemethod(_openbabel._OBAtomBondIter_SetBondOrder, None, _OBAtomBondIter)
_OBAtomBondIter.SetBegin = new_instancemethod(_openbabel._OBAtomBondIter_SetBegin, None, _OBAtomBondIter)
_OBAtomBondIter.SetEnd = new_instancemethod(_openbabel._OBAtomBondIter_SetEnd, None, _OBAtomBondIter)
_OBAtomBondIter.SetParent = new_instancemethod(_openbabel._OBAtomBondIter_SetParent, None, _OBAtomBondIter)
_OBAtomBondIter.SetLength = new_instancemethod(_openbabel._OBAtomBondIter_SetLength, None, _OBAtomBondIter)
_OBAtomBondIter.Set = new_instancemethod(_openbabel._OBAtomBondIter_Set, None, _OBAtomBondIter)
_OBAtomBondIter.SetKSingle = new_instancemethod(_openbabel._OBAtomBondIter_SetKSingle, None, _OBAtomBondIter)
_OBAtomBondIter.SetKDouble = new_instancemethod(_openbabel._OBAtomBondIter_SetKDouble, None, _OBAtomBondIter)
_OBAtomBondIter.SetKTriple = new_instancemethod(_openbabel._OBAtomBondIter_SetKTriple, None, _OBAtomBondIter)
_OBAtomBondIter.SetAromatic = new_instancemethod(_openbabel._OBAtomBondIter_SetAromatic, None, _OBAtomBondIter)
_OBAtomBondIter.SetWedge = new_instancemethod(_openbabel._OBAtomBondIter_SetWedge, None, _OBAtomBondIter)
_OBAtomBondIter.SetHash = new_instancemethod(_openbabel._OBAtomBondIter_SetHash, None, _OBAtomBondIter)
_OBAtomBondIter.SetWedgeOrHash = new_instancemethod(_openbabel._OBAtomBondIter_SetWedgeOrHash, None, _OBAtomBondIter)
_OBAtomBondIter.SetUp = new_instancemethod(_openbabel._OBAtomBondIter_SetUp, None, _OBAtomBondIter)
_OBAtomBondIter.SetDown = new_instancemethod(_openbabel._OBAtomBondIter_SetDown, None, _OBAtomBondIter)
_OBAtomBondIter.SetInRing = new_instancemethod(_openbabel._OBAtomBondIter_SetInRing, None, _OBAtomBondIter)
_OBAtomBondIter.SetClosure = new_instancemethod(_openbabel._OBAtomBondIter_SetClosure, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetHash = new_instancemethod(_openbabel._OBAtomBondIter_UnsetHash, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetWedge = new_instancemethod(_openbabel._OBAtomBondIter_UnsetWedge, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetUp = new_instancemethod(_openbabel._OBAtomBondIter_UnsetUp, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetDown = new_instancemethod(_openbabel._OBAtomBondIter_UnsetDown, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetAromatic = new_instancemethod(_openbabel._OBAtomBondIter_UnsetAromatic, None, _OBAtomBondIter)
_OBAtomBondIter.UnsetKekule = new_instancemethod(_openbabel._OBAtomBondIter_UnsetKekule, None, _OBAtomBondIter)
_OBAtomBondIter.GetIdx = new_instancemethod(_openbabel._OBAtomBondIter_GetIdx, None, _OBAtomBondIter)
_OBAtomBondIter.GetId = new_instancemethod(_openbabel._OBAtomBondIter_GetId, None, _OBAtomBondIter)
_OBAtomBondIter.GetBO = new_instancemethod(_openbabel._OBAtomBondIter_GetBO, None, _OBAtomBondIter)
_OBAtomBondIter.GetBondOrder = new_instancemethod(_openbabel._OBAtomBondIter_GetBondOrder, None, _OBAtomBondIter)
_OBAtomBondIter.GetFlags = new_instancemethod(_openbabel._OBAtomBondIter_GetFlags, None, _OBAtomBondIter)
_OBAtomBondIter.GetBeginAtomIdx = new_instancemethod(_openbabel._OBAtomBondIter_GetBeginAtomIdx, None, _OBAtomBondIter)
_OBAtomBondIter.GetEndAtomIdx = new_instancemethod(_openbabel._OBAtomBondIter_GetEndAtomIdx, None, _OBAtomBondIter)
_OBAtomBondIter.GetBeginAtom = new_instancemethod(_openbabel._OBAtomBondIter_GetBeginAtom, None, _OBAtomBondIter)
_OBAtomBondIter.GetEndAtom = new_instancemethod(_openbabel._OBAtomBondIter_GetEndAtom, None, _OBAtomBondIter)
_OBAtomBondIter.GetNbrAtom = new_instancemethod(_openbabel._OBAtomBondIter_GetNbrAtom, None, _OBAtomBondIter)
_OBAtomBondIter.GetParent = new_instancemethod(_openbabel._OBAtomBondIter_GetParent, None, _OBAtomBondIter)
_OBAtomBondIter.GetEquibLength = new_instancemethod(_openbabel._OBAtomBondIter_GetEquibLength, None, _OBAtomBondIter)
_OBAtomBondIter.GetLength = new_instancemethod(_openbabel._OBAtomBondIter_GetLength, None, _OBAtomBondIter)
_OBAtomBondIter.GetNbrAtomIdx = new_instancemethod(_openbabel._OBAtomBondIter_GetNbrAtomIdx, None, _OBAtomBondIter)
_OBAtomBondIter.FindSmallestRing = new_instancemethod(_openbabel._OBAtomBondIter_FindSmallestRing, None, _OBAtomBondIter)
_OBAtomBondIter.IsAromatic = new_instancemethod(_openbabel._OBAtomBondIter_IsAromatic, None, _OBAtomBondIter)
_OBAtomBondIter.IsInRing = new_instancemethod(_openbabel._OBAtomBondIter_IsInRing, None, _OBAtomBondIter)
_OBAtomBondIter.IsRotor = new_instancemethod(_openbabel._OBAtomBondIter_IsRotor, None, _OBAtomBondIter)
_OBAtomBondIter.IsAmide = new_instancemethod(_openbabel._OBAtomBondIter_IsAmide, None, _OBAtomBondIter)
_OBAtomBondIter.IsPrimaryAmide = new_instancemethod(_openbabel._OBAtomBondIter_IsPrimaryAmide, None, _OBAtomBondIter)
_OBAtomBondIter.IsSecondaryAmide = new_instancemethod(_openbabel._OBAtomBondIter_IsSecondaryAmide, None, _OBAtomBondIter)
_OBAtomBondIter.IsTertiaryAmide = new_instancemethod(_openbabel._OBAtomBondIter_IsTertiaryAmide, None, _OBAtomBondIter)
_OBAtomBondIter.IsAmidine = new_instancemethod(_openbabel._OBAtomBondIter_IsAmidine, None, _OBAtomBondIter)
_OBAtomBondIter.IsEster = new_instancemethod(_openbabel._OBAtomBondIter_IsEster, None, _OBAtomBondIter)
_OBAtomBondIter.IsCarbonyl = new_instancemethod(_openbabel._OBAtomBondIter_IsCarbonyl, None, _OBAtomBondIter)
_OBAtomBondIter.IsImide = new_instancemethod(_openbabel._OBAtomBondIter_IsImide, None, _OBAtomBondIter)
_OBAtomBondIter.IsSingle = new_instancemethod(_openbabel._OBAtomBondIter_IsSingle, None, _OBAtomBondIter)
_OBAtomBondIter.IsDouble = new_instancemethod(_openbabel._OBAtomBondIter_IsDouble, None, _OBAtomBondIter)
_OBAtomBondIter.IsTriple = new_instancemethod(_openbabel._OBAtomBondIter_IsTriple, None, _OBAtomBondIter)
_OBAtomBondIter.IsKSingle = new_instancemethod(_openbabel._OBAtomBondIter_IsKSingle, None, _OBAtomBondIter)
_OBAtomBondIter.IsKDouble = new_instancemethod(_openbabel._OBAtomBondIter_IsKDouble, None, _OBAtomBondIter)
_OBAtomBondIter.IsKTriple = new_instancemethod(_openbabel._OBAtomBondIter_IsKTriple, None, _OBAtomBondIter)
_OBAtomBondIter.IsClosure = new_instancemethod(_openbabel._OBAtomBondIter_IsClosure, None, _OBAtomBondIter)
_OBAtomBondIter.IsUp = new_instancemethod(_openbabel._OBAtomBondIter_IsUp, None, _OBAtomBondIter)
_OBAtomBondIter.IsDown = new_instancemethod(_openbabel._OBAtomBondIter_IsDown, None, _OBAtomBondIter)
_OBAtomBondIter.IsWedge = new_instancemethod(_openbabel._OBAtomBondIter_IsWedge, None, _OBAtomBondIter)
_OBAtomBondIter.IsHash = new_instancemethod(_openbabel._OBAtomBondIter_IsHash, None, _OBAtomBondIter)
_OBAtomBondIter.IsWedgeOrHash = new_instancemethod(_openbabel._OBAtomBondIter_IsWedgeOrHash, None, _OBAtomBondIter)
_OBAtomBondIter.IsCisOrTrans = new_instancemethod(_openbabel._OBAtomBondIter_IsCisOrTrans, None, _OBAtomBondIter)
_OBAtomBondIter.IsDoubleBondGeometry = new_instancemethod(_openbabel._OBAtomBondIter_IsDoubleBondGeometry, None, _OBAtomBondIter)
_OBAtomBondIter.Clear = new_instancemethod(_openbabel._OBAtomBondIter_Clear, None, _OBAtomBondIter)
_OBAtomBondIter.DoTransformations = new_instancemethod(_openbabel._OBAtomBondIter_DoTransformations, None, _OBAtomBondIter)
_OBAtomBondIter.ClassDescription = new_instancemethod(_openbabel._OBAtomBondIter_ClassDescription, None, _OBAtomBondIter)
_OBAtomBondIter.GetTitle = new_instancemethod(_openbabel._OBAtomBondIter_GetTitle, None, _OBAtomBondIter)
_OBAtomBondIter.SetTitle = new_instancemethod(_openbabel._OBAtomBondIter_SetTitle, None, _OBAtomBondIter)
_OBAtomBondIter.HasData = new_instancemethod(_openbabel._OBAtomBondIter_HasData, None, _OBAtomBondIter)
_OBAtomBondIter.DeleteData = new_instancemethod(_openbabel._OBAtomBondIter_DeleteData, None, _OBAtomBondIter)
_OBAtomBondIter.CloneData = new_instancemethod(_openbabel._OBAtomBondIter_CloneData, None, _OBAtomBondIter)
_OBAtomBondIter.DataSize = new_instancemethod(_openbabel._OBAtomBondIter_DataSize, None, _OBAtomBondIter)
_OBAtomBondIter.GetData = new_instancemethod(_openbabel._OBAtomBondIter_GetData, None, _OBAtomBondIter)
_OBAtomBondIter.GetAllData = new_instancemethod(_openbabel._OBAtomBondIter_GetAllData, None, _OBAtomBondIter)
_OBAtomBondIter.BeginData = new_instancemethod(_openbabel._OBAtomBondIter_BeginData, None, _OBAtomBondIter)
_OBAtomBondIter.EndData = new_instancemethod(_openbabel._OBAtomBondIter_EndData, 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.__deref__ = new_instancemethod(_openbabel._OBResidueIter___deref__, None, _OBResidueIter)
_OBResidueIter.__ref__ = new_instancemethod(_openbabel._OBResidueIter___ref__, None, _OBResidueIter)
_OBResidueIter.AddAtom = new_instancemethod(_openbabel._OBResidueIter_AddAtom, None, _OBResidueIter)
_OBResidueIter.InsertAtom = new_instancemethod(_openbabel._OBResidueIter_InsertAtom, None, _OBResidueIter)
_OBResidueIter.RemoveAtom = new_instancemethod(_openbabel._OBResidueIter_RemoveAtom, None, _OBResidueIter)
_OBResidueIter.SetName = new_instancemethod(_openbabel._OBResidueIter_SetName, None, _OBResidueIter)
_OBResidueIter.SetNum = new_instancemethod(_openbabel._OBResidueIter_SetNum, None, _OBResidueIter)
_OBResidueIter.SetChain = new_instancemethod(_openbabel._OBResidueIter_SetChain, None, _OBResidueIter)
_OBResidueIter.SetChainNum = new_instancemethod(_openbabel._OBResidueIter_SetChainNum, None, _OBResidueIter)
_OBResidueIter.SetIdx = new_instancemethod(_openbabel._OBResidueIter_SetIdx, None, _OBResidueIter)
_OBResidueIter.SetAtomID = new_instancemethod(_openbabel._OBResidueIter_SetAtomID, None, _OBResidueIter)
_OBResidueIter.SetHetAtom = new_instancemethod(_openbabel._OBResidueIter_SetHetAtom, None, _OBResidueIter)
_OBResidueIter.SetSerialNum = new_instancemethod(_openbabel._OBResidueIter_SetSerialNum, None, _OBResidueIter)
_OBResidueIter.GetName = new_instancemethod(_openbabel._OBResidueIter_GetName, None, _OBResidueIter)
_OBResidueIter.GetNum = new_instancemethod(_openbabel._OBResidueIter_GetNum, None, _OBResidueIter)
_OBResidueIter.GetNumString = new_instancemethod(_openbabel._OBResidueIter_GetNumString, None, _OBResidueIter)
_OBResidueIter.GetNumAtoms = new_instancemethod(_openbabel._OBResidueIter_GetNumAtoms, None, _OBResidueIter)
_OBResidueIter.GetChain = new_instancemethod(_openbabel._OBResidueIter_GetChain, None, _OBResidueIter)
_OBResidueIter.GetChainNum = new_instancemethod(_openbabel._OBResidueIter_GetChainNum, None, _OBResidueIter)
_OBResidueIter.GetIdx = new_instancemethod(_openbabel._OBResidueIter_GetIdx, None, _OBResidueIter)
_OBResidueIter.GetResKey = new_instancemethod(_openbabel._OBResidueIter_GetResKey, None, _OBResidueIter)
_OBResidueIter.GetAtoms = new_instancemethod(_openbabel._OBResidueIter_GetAtoms, None, _OBResidueIter)
_OBResidueIter.GetBonds = new_instancemethod(_openbabel._OBResidueIter_GetBonds, None, _OBResidueIter)
_OBResidueIter.GetAtomID = new_instancemethod(_openbabel._OBResidueIter_GetAtomID, None, _OBResidueIter)
_OBResidueIter.GetSerialNum = new_instancemethod(_openbabel._OBResidueIter_GetSerialNum, None, _OBResidueIter)
_OBResidueIter.GetAminoAcidProperty = new_instancemethod(_openbabel._OBResidueIter_GetAminoAcidProperty, None, _OBResidueIter)
_OBResidueIter.GetAtomProperty = new_instancemethod(_openbabel._OBResidueIter_GetAtomProperty, None, _OBResidueIter)
_OBResidueIter.GetResidueProperty = new_instancemethod(_openbabel._OBResidueIter_GetResidueProperty, None, _OBResidueIter)
_OBResidueIter.IsHetAtom = new_instancemethod(_openbabel._OBResidueIter_IsHetAtom, None, _OBResidueIter)
_OBResidueIter.IsResidueType = new_instancemethod(_openbabel._OBResidueIter_IsResidueType, None, _OBResidueIter)
_OBResidueIter.BeginAtoms = new_instancemethod(_openbabel._OBResidueIter_BeginAtoms, None, _OBResidueIter)
_OBResidueIter.EndAtoms = new_instancemethod(_openbabel._OBResidueIter_EndAtoms, None, _OBResidueIter)
_OBResidueIter.BeginAtom = new_instancemethod(_openbabel._OBResidueIter_BeginAtom, None, _OBResidueIter)
_OBResidueIter.NextAtom = new_instancemethod(_openbabel._OBResidueIter_NextAtom, None, _OBResidueIter)
_OBResidueIter.Clear = new_instancemethod(_openbabel._OBResidueIter_Clear, None, _OBResidueIter)
_OBResidueIter.DoTransformations = new_instancemethod(_openbabel._OBResidueIter_DoTransformations, None, _OBResidueIter)
_OBResidueIter.ClassDescription = new_instancemethod(_openbabel._OBResidueIter_ClassDescription, None, _OBResidueIter)
_OBResidueIter.GetTitle = new_instancemethod(_openbabel._OBResidueIter_GetTitle, None, _OBResidueIter)
_OBResidueIter.SetTitle = new_instancemethod(_openbabel._OBResidueIter_SetTitle, None, _OBResidueIter)
_OBResidueIter.HasData = new_instancemethod(_openbabel._OBResidueIter_HasData, None, _OBResidueIter)
_OBResidueIter.DeleteData = new_instancemethod(_openbabel._OBResidueIter_DeleteData, None, _OBResidueIter)
_OBResidueIter.CloneData = new_instancemethod(_openbabel._OBResidueIter_CloneData, None, _OBResidueIter)
_OBResidueIter.DataSize = new_instancemethod(_openbabel._OBResidueIter_DataSize, None, _OBResidueIter)
_OBResidueIter.GetData = new_instancemethod(_openbabel._OBResidueIter_GetData, None, _OBResidueIter)
_OBResidueIter.GetAllData = new_instancemethod(_openbabel._OBResidueIter_GetAllData, None, _OBResidueIter)
_OBResidueIter.BeginData = new_instancemethod(_openbabel._OBResidueIter_BeginData, None, _OBResidueIter)
_OBResidueIter.EndData = new_instancemethod(_openbabel._OBResidueIter_EndData, 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__


    Visit = _swig_property(_openbabel._OBResidueAtomIter_Visit_get, _openbabel._OBResidueAtomIter_Visit_set)
_OBResidueAtomIter.inc = new_instancemethod(_openbabel._OBResidueAtomIter_inc, None, _OBResidueAtomIter)
_OBResidueAtomIter.__deref__ = new_instancemethod(_openbabel._OBResidueAtomIter___deref__, None, _OBResidueAtomIter)
_OBResidueAtomIter.__ref__ = new_instancemethod(_openbabel._OBResidueAtomIter___ref__, None, _OBResidueAtomIter)
_OBResidueAtomIter.__eq__ = new_instancemethod(_openbabel._OBResidueAtomIter___eq__, None, _OBResidueAtomIter)
_OBResidueAtomIter.Duplicate = new_instancemethod(_openbabel._OBResidueAtomIter_Duplicate, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetIdx = new_instancemethod(_openbabel._OBResidueAtomIter_SetIdx, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetId = new_instancemethod(_openbabel._OBResidueAtomIter_SetId, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetHyb = new_instancemethod(_openbabel._OBResidueAtomIter_SetHyb, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetAtomicNum = new_instancemethod(_openbabel._OBResidueAtomIter_SetAtomicNum, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetIsotope = new_instancemethod(_openbabel._OBResidueAtomIter_SetIsotope, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetImplicitValence = new_instancemethod(_openbabel._OBResidueAtomIter_SetImplicitValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.IncrementImplicitValence = new_instancemethod(_openbabel._OBResidueAtomIter_IncrementImplicitValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.DecrementImplicitValence = new_instancemethod(_openbabel._OBResidueAtomIter_DecrementImplicitValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetFormalCharge = new_instancemethod(_openbabel._OBResidueAtomIter_SetFormalCharge, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetSpinMultiplicity = new_instancemethod(_openbabel._OBResidueAtomIter_SetSpinMultiplicity, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetType = new_instancemethod(_openbabel._OBResidueAtomIter_SetType, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetPartialCharge = new_instancemethod(_openbabel._OBResidueAtomIter_SetPartialCharge, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetVector = new_instancemethod(_openbabel._OBResidueAtomIter_SetVector, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetCoordPtr = new_instancemethod(_openbabel._OBResidueAtomIter_SetCoordPtr, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetResidue = new_instancemethod(_openbabel._OBResidueAtomIter_SetResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetParent = new_instancemethod(_openbabel._OBResidueAtomIter_SetParent, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetAromatic = new_instancemethod(_openbabel._OBResidueAtomIter_SetAromatic, None, _OBResidueAtomIter)
_OBResidueAtomIter.UnsetAromatic = new_instancemethod(_openbabel._OBResidueAtomIter_UnsetAromatic, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetClockwiseStereo = new_instancemethod(_openbabel._OBResidueAtomIter_SetClockwiseStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetAntiClockwiseStereo = new_instancemethod(_openbabel._OBResidueAtomIter_SetAntiClockwiseStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetPositiveStereo = new_instancemethod(_openbabel._OBResidueAtomIter_SetPositiveStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetNegativeStereo = new_instancemethod(_openbabel._OBResidueAtomIter_SetNegativeStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.UnsetStereo = new_instancemethod(_openbabel._OBResidueAtomIter_UnsetStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetInRing = new_instancemethod(_openbabel._OBResidueAtomIter_SetInRing, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetChiral = new_instancemethod(_openbabel._OBResidueAtomIter_SetChiral, None, _OBResidueAtomIter)
_OBResidueAtomIter.ClearCoordPtr = new_instancemethod(_openbabel._OBResidueAtomIter_ClearCoordPtr, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetFormalCharge = new_instancemethod(_openbabel._OBResidueAtomIter_GetFormalCharge, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetAtomicNum = new_instancemethod(_openbabel._OBResidueAtomIter_GetAtomicNum, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetIsotope = new_instancemethod(_openbabel._OBResidueAtomIter_GetIsotope, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetSpinMultiplicity = new_instancemethod(_openbabel._OBResidueAtomIter_GetSpinMultiplicity, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetAtomicMass = new_instancemethod(_openbabel._OBResidueAtomIter_GetAtomicMass, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetExactMass = new_instancemethod(_openbabel._OBResidueAtomIter_GetExactMass, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetIdx = new_instancemethod(_openbabel._OBResidueAtomIter_GetIdx, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetIndex = new_instancemethod(_openbabel._OBResidueAtomIter_GetIndex, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetId = new_instancemethod(_openbabel._OBResidueAtomIter_GetId, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetCoordinateIdx = new_instancemethod(_openbabel._OBResidueAtomIter_GetCoordinateIdx, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetCIdx = new_instancemethod(_openbabel._OBResidueAtomIter_GetCIdx, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetValence = new_instancemethod(_openbabel._OBResidueAtomIter_GetValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetHyb = new_instancemethod(_openbabel._OBResidueAtomIter_GetHyb, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetImplicitValence = new_instancemethod(_openbabel._OBResidueAtomIter_GetImplicitValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetHvyValence = new_instancemethod(_openbabel._OBResidueAtomIter_GetHvyValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetHeteroValence = new_instancemethod(_openbabel._OBResidueAtomIter_GetHeteroValence, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetType = new_instancemethod(_openbabel._OBResidueAtomIter_GetType, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetX = new_instancemethod(_openbabel._OBResidueAtomIter_GetX, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetY = new_instancemethod(_openbabel._OBResidueAtomIter_GetY, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetZ = new_instancemethod(_openbabel._OBResidueAtomIter_GetZ, None, _OBResidueAtomIter)
_OBResidueAtomIter.x = new_instancemethod(_openbabel._OBResidueAtomIter_x, None, _OBResidueAtomIter)
_OBResidueAtomIter.y = new_instancemethod(_openbabel._OBResidueAtomIter_y, None, _OBResidueAtomIter)
_OBResidueAtomIter.z = new_instancemethod(_openbabel._OBResidueAtomIter_z, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetCoordinate = new_instancemethod(_openbabel._OBResidueAtomIter_GetCoordinate, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetVector = new_instancemethod(_openbabel._OBResidueAtomIter_GetVector, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetPartialCharge = new_instancemethod(_openbabel._OBResidueAtomIter_GetPartialCharge, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetResidue = new_instancemethod(_openbabel._OBResidueAtomIter_GetResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetParent = new_instancemethod(_openbabel._OBResidueAtomIter_GetParent, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetNewBondVector = new_instancemethod(_openbabel._OBResidueAtomIter_GetNewBondVector, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetBond = new_instancemethod(_openbabel._OBResidueAtomIter_GetBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetNextAtom = new_instancemethod(_openbabel._OBResidueAtomIter_GetNextAtom, None, _OBResidueAtomIter)
_OBResidueAtomIter.BeginBonds = new_instancemethod(_openbabel._OBResidueAtomIter_BeginBonds, None, _OBResidueAtomIter)
_OBResidueAtomIter.EndBonds = new_instancemethod(_openbabel._OBResidueAtomIter_EndBonds, None, _OBResidueAtomIter)
_OBResidueAtomIter.BeginBond = new_instancemethod(_openbabel._OBResidueAtomIter_BeginBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.NextBond = new_instancemethod(_openbabel._OBResidueAtomIter_NextBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.BeginNbrAtom = new_instancemethod(_openbabel._OBResidueAtomIter_BeginNbrAtom, None, _OBResidueAtomIter)
_OBResidueAtomIter.NextNbrAtom = new_instancemethod(_openbabel._OBResidueAtomIter_NextNbrAtom, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetDistance = new_instancemethod(_openbabel._OBResidueAtomIter_GetDistance, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetAngle = new_instancemethod(_openbabel._OBResidueAtomIter_GetAngle, None, _OBResidueAtomIter)
_OBResidueAtomIter.NewResidue = new_instancemethod(_openbabel._OBResidueAtomIter_NewResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.AddResidue = new_instancemethod(_openbabel._OBResidueAtomIter_AddResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.DeleteResidue = new_instancemethod(_openbabel._OBResidueAtomIter_DeleteResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.AddBond = new_instancemethod(_openbabel._OBResidueAtomIter_AddBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.InsertBond = new_instancemethod(_openbabel._OBResidueAtomIter_InsertBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.DeleteBond = new_instancemethod(_openbabel._OBResidueAtomIter_DeleteBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.ClearBond = new_instancemethod(_openbabel._OBResidueAtomIter_ClearBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.HtoMethyl = new_instancemethod(_openbabel._OBResidueAtomIter_HtoMethyl, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetHybAndGeom = new_instancemethod(_openbabel._OBResidueAtomIter_SetHybAndGeom, None, _OBResidueAtomIter)
_OBResidueAtomIter.ForceNoH = new_instancemethod(_openbabel._OBResidueAtomIter_ForceNoH, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasNoHForced = new_instancemethod(_openbabel._OBResidueAtomIter_HasNoHForced, None, _OBResidueAtomIter)
_OBResidueAtomIter.ForceImplH = new_instancemethod(_openbabel._OBResidueAtomIter_ForceImplH, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasImplHForced = new_instancemethod(_openbabel._OBResidueAtomIter_HasImplHForced, None, _OBResidueAtomIter)
_OBResidueAtomIter.CountFreeOxygens = new_instancemethod(_openbabel._OBResidueAtomIter_CountFreeOxygens, None, _OBResidueAtomIter)
_OBResidueAtomIter.CountFreeSulfurs = new_instancemethod(_openbabel._OBResidueAtomIter_CountFreeSulfurs, None, _OBResidueAtomIter)
_OBResidueAtomIter.ImplicitHydrogenCount = new_instancemethod(_openbabel._OBResidueAtomIter_ImplicitHydrogenCount, None, _OBResidueAtomIter)
_OBResidueAtomIter.ExplicitHydrogenCount = new_instancemethod(_openbabel._OBResidueAtomIter_ExplicitHydrogenCount, None, _OBResidueAtomIter)
_OBResidueAtomIter.MemberOfRingCount = new_instancemethod(_openbabel._OBResidueAtomIter_MemberOfRingCount, None, _OBResidueAtomIter)
_OBResidueAtomIter.MemberOfRingSize = new_instancemethod(_openbabel._OBResidueAtomIter_MemberOfRingSize, None, _OBResidueAtomIter)
_OBResidueAtomIter.CountRingBonds = new_instancemethod(_openbabel._OBResidueAtomIter_CountRingBonds, None, _OBResidueAtomIter)
_OBResidueAtomIter.SmallestBondAngle = new_instancemethod(_openbabel._OBResidueAtomIter_SmallestBondAngle, None, _OBResidueAtomIter)
_OBResidueAtomIter.AverageBondAngle = new_instancemethod(_openbabel._OBResidueAtomIter_AverageBondAngle, None, _OBResidueAtomIter)
_OBResidueAtomIter.BOSum = new_instancemethod(_openbabel._OBResidueAtomIter_BOSum, None, _OBResidueAtomIter)
_OBResidueAtomIter.KBOSum = new_instancemethod(_openbabel._OBResidueAtomIter_KBOSum, None, _OBResidueAtomIter)
_OBResidueAtomIter.LewisAcidBaseCounts = new_instancemethod(_openbabel._OBResidueAtomIter_LewisAcidBaseCounts, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasResidue = new_instancemethod(_openbabel._OBResidueAtomIter_HasResidue, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHetAtom = new_instancemethod(_openbabel._OBResidueAtomIter_IsHetAtom, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHydrogen = new_instancemethod(_openbabel._OBResidueAtomIter_IsHydrogen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsCarbon = new_instancemethod(_openbabel._OBResidueAtomIter_IsCarbon, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsNitrogen = new_instancemethod(_openbabel._OBResidueAtomIter_IsNitrogen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsOxygen = new_instancemethod(_openbabel._OBResidueAtomIter_IsOxygen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsSulfur = new_instancemethod(_openbabel._OBResidueAtomIter_IsSulfur, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsPhosphorus = new_instancemethod(_openbabel._OBResidueAtomIter_IsPhosphorus, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsAromatic = new_instancemethod(_openbabel._OBResidueAtomIter_IsAromatic, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsInRing = new_instancemethod(_openbabel._OBResidueAtomIter_IsInRing, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsInRingSize = new_instancemethod(_openbabel._OBResidueAtomIter_IsInRingSize, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHeteroatom = new_instancemethod(_openbabel._OBResidueAtomIter_IsHeteroatom, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsNotCorH = new_instancemethod(_openbabel._OBResidueAtomIter_IsNotCorH, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsConnected = new_instancemethod(_openbabel._OBResidueAtomIter_IsConnected, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsOneThree = new_instancemethod(_openbabel._OBResidueAtomIter_IsOneThree, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsOneFour = new_instancemethod(_openbabel._OBResidueAtomIter_IsOneFour, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsCarboxylOxygen = new_instancemethod(_openbabel._OBResidueAtomIter_IsCarboxylOxygen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsThiocarboxylSulfur = new_instancemethod(_openbabel._OBResidueAtomIter_IsThiocarboxylSulfur, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsPhosphateOxygen = new_instancemethod(_openbabel._OBResidueAtomIter_IsPhosphateOxygen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsSulfateOxygen = new_instancemethod(_openbabel._OBResidueAtomIter_IsSulfateOxygen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsNitroOxygen = new_instancemethod(_openbabel._OBResidueAtomIter_IsNitroOxygen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsAmideNitrogen = new_instancemethod(_openbabel._OBResidueAtomIter_IsAmideNitrogen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsPolarHydrogen = new_instancemethod(_openbabel._OBResidueAtomIter_IsPolarHydrogen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsNonPolarHydrogen = new_instancemethod(_openbabel._OBResidueAtomIter_IsNonPolarHydrogen, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsAromaticNOxide = new_instancemethod(_openbabel._OBResidueAtomIter_IsAromaticNOxide, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsChiral = new_instancemethod(_openbabel._OBResidueAtomIter_IsChiral, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsAxial = new_instancemethod(_openbabel._OBResidueAtomIter_IsAxial, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsClockwise = new_instancemethod(_openbabel._OBResidueAtomIter_IsClockwise, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsAntiClockwise = new_instancemethod(_openbabel._OBResidueAtomIter_IsAntiClockwise, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsPositiveStereo = new_instancemethod(_openbabel._OBResidueAtomIter_IsPositiveStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsNegativeStereo = new_instancemethod(_openbabel._OBResidueAtomIter_IsNegativeStereo, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasChiralitySpecified = new_instancemethod(_openbabel._OBResidueAtomIter_HasChiralitySpecified, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasChiralVolume = new_instancemethod(_openbabel._OBResidueAtomIter_HasChiralVolume, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHbondAcceptor = new_instancemethod(_openbabel._OBResidueAtomIter_IsHbondAcceptor, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHbondDonor = new_instancemethod(_openbabel._OBResidueAtomIter_IsHbondDonor, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsHbondDonorH = new_instancemethod(_openbabel._OBResidueAtomIter_IsHbondDonorH, None, _OBResidueAtomIter)
_OBResidueAtomIter.IsMetal = new_instancemethod(_openbabel._OBResidueAtomIter_IsMetal, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasAlphaBetaUnsat = new_instancemethod(_openbabel._OBResidueAtomIter_HasAlphaBetaUnsat, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasBondOfOrder = new_instancemethod(_openbabel._OBResidueAtomIter_HasBondOfOrder, None, _OBResidueAtomIter)
_OBResidueAtomIter.CountBondsOfOrder = new_instancemethod(_openbabel._OBResidueAtomIter_CountBondsOfOrder, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasNonSingleBond = new_instancemethod(_openbabel._OBResidueAtomIter_HasNonSingleBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasSingleBond = new_instancemethod(_openbabel._OBResidueAtomIter_HasSingleBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasDoubleBond = new_instancemethod(_openbabel._OBResidueAtomIter_HasDoubleBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasAromaticBond = new_instancemethod(_openbabel._OBResidueAtomIter_HasAromaticBond, None, _OBResidueAtomIter)
_OBResidueAtomIter.MatchesSMARTS = new_instancemethod(_openbabel._OBResidueAtomIter_MatchesSMARTS, None, _OBResidueAtomIter)
_OBResidueAtomIter.Clear = new_instancemethod(_openbabel._OBResidueAtomIter_Clear, None, _OBResidueAtomIter)
_OBResidueAtomIter.DoTransformations = new_instancemethod(_openbabel._OBResidueAtomIter_DoTransformations, None, _OBResidueAtomIter)
_OBResidueAtomIter.ClassDescription = new_instancemethod(_openbabel._OBResidueAtomIter_ClassDescription, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetTitle = new_instancemethod(_openbabel._OBResidueAtomIter_GetTitle, None, _OBResidueAtomIter)
_OBResidueAtomIter.SetTitle = new_instancemethod(_openbabel._OBResidueAtomIter_SetTitle, None, _OBResidueAtomIter)
_OBResidueAtomIter.HasData = new_instancemethod(_openbabel._OBResidueAtomIter_HasData, None, _OBResidueAtomIter)
_OBResidueAtomIter.DeleteData = new_instancemethod(_openbabel._OBResidueAtomIter_DeleteData, None, _OBResidueAtomIter)
_OBResidueAtomIter.CloneData = new_instancemethod(_openbabel._OBResidueAtomIter_CloneData, None, _OBResidueAtomIter)
_OBResidueAtomIter.DataSize = new_instancemethod(_openbabel._OBResidueAtomIter_DataSize, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetData = new_instancemethod(_openbabel._OBResidueAtomIter_GetData, None, _OBResidueAtomIter)
_OBResidueAtomIter.GetAllData = new_instancemethod(_openbabel._OBResidueAtomIter_GetAllData, None, _OBResidueAtomIter)
_OBResidueAtomIter.BeginData = new_instancemethod(_openbabel._OBResidueAtomIter_BeginData, None, _OBResidueAtomIter)
_OBResidueAtomIter.EndData = new_instancemethod(_openbabel._OBResidueAtomIter_EndData, 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__


    ring_id = _swig_property(_openbabel._OBMolRingIter_ring_id_get, _openbabel._OBMolRingIter_ring_id_set)
    _path = _swig_property(_openbabel._OBMolRingIter__path_get, _openbabel._OBMolRingIter__path_set)
    _pathset = _swig_property(_openbabel._OBMolRingIter__pathset_get, _openbabel._OBMolRingIter__pathset_set)
_OBMolRingIter.inc = new_instancemethod(_openbabel._OBMolRingIter_inc, None, _OBMolRingIter)
_OBMolRingIter.__deref__ = new_instancemethod(_openbabel._OBMolRingIter___deref__, None, _OBMolRingIter)
_OBMolRingIter.__ref__ = new_instancemethod(_openbabel._OBMolRingIter___ref__, None, _OBMolRingIter)
_OBMolRingIter.Size = new_instancemethod(_openbabel._OBMolRingIter_Size, None, _OBMolRingIter)
_OBMolRingIter.PathSize = new_instancemethod(_openbabel._OBMolRingIter_PathSize, None, _OBMolRingIter)
_OBMolRingIter.IsAromatic = new_instancemethod(_openbabel._OBMolRingIter_IsAromatic, None, _OBMolRingIter)
_OBMolRingIter.SetType = new_instancemethod(_openbabel._OBMolRingIter_SetType, None, _OBMolRingIter)
_OBMolRingIter.GetType = new_instancemethod(_openbabel._OBMolRingIter_GetType, None, _OBMolRingIter)
_OBMolRingIter.GetRootAtom = new_instancemethod(_openbabel._OBMolRingIter_GetRootAtom, None, _OBMolRingIter)
_OBMolRingIter.IsMember = new_instancemethod(_openbabel._OBMolRingIter_IsMember, None, _OBMolRingIter)
_OBMolRingIter.IsInRing = new_instancemethod(_openbabel._OBMolRingIter_IsInRing, None, _OBMolRingIter)
_OBMolRingIter.SetParent = new_instancemethod(_openbabel._OBMolRingIter_SetParent, None, _OBMolRingIter)
_OBMolRingIter.GetParent = new_instancemethod(_openbabel._OBMolRingIter_GetParent, None, _OBMolRingIter)
_OBMolRingIter.findCenterAndNormal = new_instancemethod(_openbabel._OBMolRingIter_findCenterAndNormal, 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

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
etab = cvar.etab
isotab = cvar.isotab
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)

openbabel-python.cpp

part1

/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.7
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */

#define SWIGPYTHON
#define SWIG_PYTHON_NO_BUILD_NONE
#define SWIG_PYTHON_DIRECTOR_NO_VTABLE


#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#  ifndef GCC_HASCLASSVISIBILITY
#    define GCC_HASCLASSVISIBILITY
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif


#if defined(_DEBUG) && defined(SWIG_PYTHON_INTERPRETER_NO_DEBUG)
/* Use debug wrappers with the Python release dll */
# undef _DEBUG
# include <Python.h>
# define _DEBUG
#else
# include <Python.h>
#endif

/* -----------------------------------------------------------------------------
 * swigrun.swg
 *
 * This file contains generic C API SWIG runtime support for pointer
 * type checking.
 * ----------------------------------------------------------------------------- */

/* This should only be incremented when either the layout of swig_type_info changes,
   or for whatever reason, the runtime changes incompatibly */
#define SWIG_RUNTIME_VERSION "4"

/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
#ifdef SWIG_TYPE_TABLE
# define SWIG_QUOTE_STRING(x) #x
# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
#else
# define SWIG_TYPE_TABLE_NAME
#endif

/*
  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
  creating a static or dynamic library from the SWIG runtime code.
  In 99.9% of the cases, SWIG just needs to declare them as 'static'.

  But only do this if strictly necessary, ie, if you have problems
  with your compiler or suchlike.
*/

#ifndef SWIGRUNTIME
# define SWIGRUNTIME SWIGINTERN
#endif

#ifndef SWIGRUNTIMEINLINE
# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
#endif

/*  Generic buffer size */
#ifndef SWIG_BUFFER_SIZE
# define SWIG_BUFFER_SIZE 1024
#endif

/* Flags for pointer conversions */
#define SWIG_POINTER_DISOWN        0x1
#define SWIG_CAST_NEW_MEMORY       0x2

/* Flags for new pointer objects */
#define SWIG_POINTER_OWN           0x1


/*
   Flags/methods for returning states.

   The SWIG conversion methods, as ConvertPtr, return an integer
   that tells if the conversion was successful or not. And if not,
   an error code can be returned (see swigerrors.swg for the codes).

   Use the following macros/flags to set or process the returning
   states.

   In old versions of SWIG, code such as the following was usually written:

     if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
       // success code
     } else {
       //fail code
     }

   Now you can be more explicit:

    int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
    if (SWIG_IsOK(res)) {
      // success code
    } else {
      // fail code
    }

   which is the same really, but now you can also do

    Type *ptr;
    int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
    if (SWIG_IsOK(res)) {
      // success code
      if (SWIG_IsNewObj(res) {
        ...
  delete *ptr;
      } else {
        ...
      }
    } else {
      // fail code
    }

   I.e., now SWIG_ConvertPtr can return new objects and you can
   identify the case and take care of the deallocation. Of course that
   also requires SWIG_ConvertPtr to return new result values, such as

      int SWIG_ConvertPtr(obj, ptr,...) {
        if (<obj is ok>) {
          if (<need new object>) {
            *ptr = <ptr to new allocated object>;
            return SWIG_NEWOBJ;
          } else {
            *ptr = <ptr to old object>;
            return SWIG_OLDOBJ;
          }
        } else {
          return SWIG_BADOBJ;
        }
      }

   Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
   more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
   SWIG errors code.

   Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
   allows to return the 'cast rank', for example, if you have this

       int food(double)
       int fooi(int);

   and you call

      food(1)   // cast rank '1'  (1 -> 1.0)
      fooi(1)   // cast rank '0'

   just use the SWIG_AddCast()/SWIG_CheckState()
*/

#define SWIG_OK                    (0)
#define SWIG_ERROR                 (-1)
#define SWIG_IsOK(r)               (r >= 0)
#define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)

/* The CastRankLimit says how many bits are used for the cast rank */
#define SWIG_CASTRANKLIMIT         (1 << 8)
/* The NewMask denotes the object was created (using new/malloc) */
#define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
/* The TmpMask is for in/out typemaps that use temporal objects */
#define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
/* Simple returning values */
#define SWIG_BADOBJ                (SWIG_ERROR)
#define SWIG_OLDOBJ                (SWIG_OK)
#define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
#define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
/* Check, add and del mask methods */
#define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
#define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
#define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
#define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
#define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
#define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))

/* Cast-Rank Mode */
#if defined(SWIG_CASTRANK_MODE)
#  ifndef SWIG_TypeRank
#    define SWIG_TypeRank             unsigned long
#  endif
#  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
#    define SWIG_MAXCASTRANK          (2)
#  endif
#  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
#  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
SWIGINTERNINLINE int SWIG_AddCast(int r) {
  return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
}
SWIGINTERNINLINE int SWIG_CheckState(int r) {
  return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
}
#else /* no cast-rank mode */
#  define SWIG_AddCast(r) (r)
#  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
#endif


#include <string.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *, int *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

/* Structure to store information on one type */
typedef struct swig_type_info {
  const char             *name;     /* mangled name of this type */
  const char             *str;      /* human readable name of this type */
  swig_dycast_func        dcast;    /* dynamic cast function down a hierarchy */
  struct swig_cast_info  *cast;     /* linked list of types that can cast into this type */
  void                   *clientdata;   /* language specific type data */
  int                    owndata;   /* flag if the structure owns the clientdata */
} swig_type_info;

/* Structure to store a type and conversion function used for casting */
typedef struct swig_cast_info {
  swig_type_info         *type;     /* pointer to type that is equivalent to this type */
  swig_converter_func     converter;    /* function to cast the void pointers */
  struct swig_cast_info  *next;     /* pointer to next cast in linked list */
  struct swig_cast_info  *prev;     /* pointer to the previous cast */
} swig_cast_info;

/* Structure used to store module information
 * Each module generates one structure like this, and the runtime collects
 * all of these structures and stores them in a circularly linked list.*/
typedef struct swig_module_info {
  swig_type_info         **types;   /* Array of pointers to swig_type_info structures that are in this module */
  size_t                 size;            /* Number of types in this module */
  struct swig_module_info *next;    /* Pointer to next element in circularly linked list */
  swig_type_info         **type_initial;  /* Array of initially generated type structures */
  swig_cast_info         **cast_initial;  /* Array of initially generated casting structures */
  void                    *clientdata;    /* Language specific module data */
} swig_module_info;

/*
  Compare two type names skipping the space characters, therefore
  "char*" == "char *" and "Class<int>" == "Class<int >", etc.

  Return 0 when the two name types are equivalent, as in
  strncmp, but skipping ' '.
*/
SWIGRUNTIME int
SWIG_TypeNameComp(const char *f1, const char *l1,
      const char *f2, const char *l2) {
  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
    while ((*f1 == ' ') && (f1 != l1)) ++f1;
    while ((*f2 == ' ') && (f2 != l2)) ++f2;
    if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
  }
  return (int)((l1 - f1) - (l2 - f2));
}

/*
  Check type equivalence in a name list like <name1>|<name2>|...
  Return 0 if equal, -1 if nb < tb, 1 if nb > tb
*/
SWIGRUNTIME int
SWIG_TypeCmp(const char *nb, const char *tb) {
  int equiv = 1;
  const char* te = tb + strlen(tb);
  const char* ne = nb;
  while (equiv != 0 && *ne) {
    for (nb = ne; *ne; ++ne) {
      if (*ne == '|') break;
    }
    equiv = SWIG_TypeNameComp(nb, ne, tb, te);
    if (*ne) ++ne;
  }
  return equiv;
}

/*
  Check type equivalence in a name list like <name1>|<name2>|...
  Return 0 if not equal, 1 if equal
*/
SWIGRUNTIME int
SWIG_TypeEquiv(const char *nb, const char *tb) {
  return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
}

/*
  Check the typename
*/
SWIGRUNTIME swig_cast_info *
SWIG_TypeCheck(const char *c, swig_type_info *ty) {
  if (ty) {
    swig_cast_info *iter = ty->cast;
    while (iter) {
      if (strcmp(iter->type->name, c) == 0) {
        if (iter == ty->cast)
          return iter;
        /* Move iter to the top of the linked list */
        iter->prev->next = iter->next;
        if (iter->next)
          iter->next->prev = iter->prev;
        iter->next = ty->cast;
        iter->prev = 0;
        if (ty->cast) ty->cast->prev = iter;
        ty->cast = iter;
        return iter;
      }
      iter = iter->next;
    }
  }
  return 0;
}

/*
  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
*/
SWIGRUNTIME swig_cast_info *
SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
  if (ty) {
    swig_cast_info *iter = ty->cast;
    while (iter) {
      if (iter->type == from) {
        if (iter == ty->cast)
          return iter;
        /* Move iter to the top of the linked list */
        iter->prev->next = iter->next;
        if (iter->next)
          iter->next->prev = iter->prev;
        iter->next = ty->cast;
        iter->prev = 0;
        if (ty->cast) ty->cast->prev = iter;
        ty->cast = iter;
        return iter;
      }
      iter = iter->next;
    }
  }
  return 0;
}

/*
  Cast a pointer up an inheritance hierarchy
*/
SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
}

/*
   Dynamic pointer casting. Down an inheritance hierarchy
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
  swig_type_info *lastty = ty;
  if (!ty || !ty->dcast) return ty;
  while (ty && (ty->dcast)) {
    ty = (*ty->dcast)(ptr);
    if (ty) lastty = ty;
  }
  return lastty;
}

/*
  Return the name associated with this type
*/
SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info *ty) {
  return ty->name;
}

/*
  Return the pretty name associated with this type,
  that is an unmangled type name in a form presentable to the user.
*/
SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info *type) {
  /* The "str" field contains the equivalent pretty names of the
     type, separated by vertical-bar characters.  We choose
     to print the last name, as it is often (?) the most
     specific. */
  if (!type) return NULL;
  if (type->str != NULL) {
    const char *last_name = type->str;
    const char *s;
    for (s = type->str; *s; s++)
      if (*s == '|') last_name = s+1;
    return last_name;
  }
  else
    return type->name;
}

/*
   Set the clientdata field for a type
*/
SWIGRUNTIME void
SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
  swig_cast_info *cast = ti->cast;
  /* if (ti->clientdata == clientdata) return; */
  ti->clientdata = clientdata;

  while (cast) {
    if (!cast->converter) {
      swig_type_info *tc = cast->type;
      if (!tc->clientdata) {
  SWIG_TypeClientData(tc, clientdata);
      }
    }
    cast = cast->next;
  }
}
SWIGRUNTIME void
SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
  SWIG_TypeClientData(ti, clientdata);
  ti->owndata = 1;
}

/*
  Search for a swig_type_info structure only by mangled name
  Search is a O(log #types)

  We start searching at module start, and finish searching when start == end.
  Note: if start == end at the beginning of the function, we go all the way around
  the circular list.
*/
SWIGRUNTIME swig_type_info *
SWIG_MangledTypeQueryModule(swig_module_info *start,
                            swig_module_info *end,
                const char *name) {
  swig_module_info *iter = start;
  do {
    if (iter->size) {
      size_t l = 0;
      size_t r = iter->size - 1;
      do {
  /* since l+r >= 0, we can (>> 1) instead (/ 2) */
  size_t i = (l + r) >> 1;
  const char *iname = iter->types[i]->name;
  if (iname) {
    int compare = strcmp(name, iname);
    if (compare == 0) {
      return iter->types[i];
    } else if (compare < 0) {
      if (i) {
        r = i - 1;
      } else {
        break;
      }
    } else if (compare > 0) {
      l = i + 1;
    }
  } else {
    break; /* should never happen */
  }
      } while (l <= r);
    }
    iter = iter->next;
  } while (iter != end);
  return 0;
}

/*
  Search for a swig_type_info structure for either a mangled name or a human readable name.
  It first searches the mangled names of the types, which is a O(log #types)
  If a type is not found it then searches the human readable names, which is O(#types).

  We start searching at module start, and finish searching when start == end.
  Note: if start == end at the beginning of the function, we go all the way around
  the circular list.
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeQueryModule(swig_module_info *start,
                     swig_module_info *end,
         const char *name) {
  /* STEP 1: Search the name field using binary search */
  swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
  if (ret) {
    return ret;
  } else {
    /* STEP 2: If the type hasn't been found, do a complete search
       of the str field (the human readable name) */
    swig_module_info *iter = start;
    do {
      size_t i = 0;
      for (; i < iter->size; ++i) {
  if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
    return iter->types[i];
      }
      iter = iter->next;
    } while (iter != end);
  }

  /* neither found a match */
  return 0;
}

/*
   Pack binary data into a string
*/
SWIGRUNTIME char *
SWIG_PackData(char *c, void *ptr, size_t sz) {
  static const char hex[17] = "0123456789abcdef";
  const unsigned char *u = (unsigned char *) ptr;
  const unsigned char *eu =  u + sz;
  for (; u != eu; ++u) {
    unsigned char uu = *u;
    *(c++) = hex[(uu & 0xf0) >> 4];
    *(c++) = hex[uu & 0xf];
  }
  return c;
}

/*
   Unpack binary data from a string
*/
SWIGRUNTIME const char *
SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
  unsigned char *u = (unsigned char *) ptr;
  const unsigned char *eu = u + sz;
  for (; u != eu; ++u) {
    char d = *(c++);
    unsigned char uu;
    if ((d >= '0') && (d <= '9'))
      uu = ((d - '0') << 4);
    else if ((d >= 'a') && (d <= 'f'))
      uu = ((d - ('a'-10)) << 4);
    else
      return (char *) 0;
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu |= (d - '0');
    else if ((d >= 'a') && (d <= 'f'))
      uu |= (d - ('a'-10));
    else
      return (char *) 0;
    *u = uu;
  }
  return c;
}

/*
   Pack 'void *' into a string buffer.
*/
SWIGRUNTIME char *
SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
  char *r = buff;
  if ((2*sizeof(void *) + 2) > bsz) return 0;
  *(r++) = '_';
  r = SWIG_PackData(r,&ptr,sizeof(void *));
  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
  strcpy(r,name);
  return buff;
}

SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
  if (*c != '_') {
    if (strcmp(c,"NULL") == 0) {
      *ptr = (void *) 0;
      return name;
    } else {
      return 0;
    }
  }
  return SWIG_UnpackData(++c,ptr,sizeof(void *));
}

SWIGRUNTIME char *
SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
  char *r = buff;
  size_t lname = (name ? strlen(name) : 0);
  if ((2*sz + 2 + lname) > bsz) return 0;
  *(r++) = '_';
  r = SWIG_PackData(r,ptr,sz);
  if (lname) {
    strncpy(r,name,lname+1);
  } else {
    *r = 0;
  }
  return buff;
}

SWIGRUNTIME const char *
SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
  if (*c != '_') {
    if (strcmp(c,"NULL") == 0) {
      memset(ptr,0,sz);
      return name;
    } else {
      return 0;
    }
  }
  return SWIG_UnpackData(++c,ptr,sz);
}

#ifdef __cplusplus
}
#endif

/*  Errors in SWIG */
#define  SWIG_UnknownError         -1
#define  SWIG_IOError            -2
#define  SWIG_RuntimeError       -3
#define  SWIG_IndexError         -4
#define  SWIG_TypeError          -5
#define  SWIG_DivisionByZero     -6
#define  SWIG_OverflowError      -7
#define  SWIG_SyntaxError        -8
#define  SWIG_ValueError         -9
#define  SWIG_SystemError        -10
#define  SWIG_AttributeError     -11
#define  SWIG_MemoryError        -12
#define  SWIG_NullReferenceError   -13



/* Compatibility macros for Python 3 */
#if PY_VERSION_HEX >= 0x03000000

#define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type)
#define PyInt_Check(x) PyLong_Check(x)
#define PyInt_AsLong(x) PyLong_AsLong(x)
#define PyInt_FromLong(x) PyLong_FromLong(x)
#define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
#define PyString_Check(name) PyBytes_Check(name)
#define PyString_FromString(x) PyUnicode_FromString(x)
#define PyString_Format(fmt, args)  PyUnicode_Format(fmt, args)
#define PyString_AsString(str) PyBytes_AsString(str)
#define PyString_Size(str) PyBytes_Size(str)  
#define PyString_InternFromString(key) PyUnicode_InternFromString(key)
#define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
#define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
#define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)

#endif

#ifndef Py_TYPE
#  define Py_TYPE(op) ((op)->ob_type)
#endif

/* SWIG APIs for compatibility of both Python 2 & 3 */

#if PY_VERSION_HEX >= 0x03000000
#  define SWIG_Python_str_FromFormat PyUnicode_FromFormat
#else
#  define SWIG_Python_str_FromFormat PyString_FromFormat
#endif


/* Warning: This function will allocate a new string in Python 3,
 * so please call SWIG_Python_str_DelForPy3(x) to free the space.
 */
SWIGINTERN char*
SWIG_Python_str_AsChar(PyObject *str)
{
#if PY_VERSION_HEX >= 0x03000000
  char *cstr;
  char *newstr;
  Py_ssize_t len;
  str = PyUnicode_AsUTF8String(str);
  PyBytes_AsStringAndSize(str, &cstr, &len);
  newstr = (char *) malloc(len+1);
  memcpy(newstr, cstr, len+1);
  Py_XDECREF(str);
  return newstr;
#else
  return PyString_AsString(str);
#endif
}

#if PY_VERSION_HEX >= 0x03000000
#  define SWIG_Python_str_DelForPy3(x) free( (void*) (x) )
#else
#  define SWIG_Python_str_DelForPy3(x) 
#endif


SWIGINTERN PyObject*
SWIG_Python_str_FromChar(const char *c)
{
#if PY_VERSION_HEX >= 0x03000000
  return PyUnicode_FromString(c); 
#else
  return PyString_FromString(c);
#endif
}

/* Add PyOS_snprintf for old Pythons */
#if PY_VERSION_HEX < 0x02020000
# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(_WATCOM)
#  define PyOS_snprintf _snprintf
# else
#  define PyOS_snprintf snprintf
# endif
#endif

/* A crude PyString_FromFormat implementation for old Pythons */
#if PY_VERSION_HEX < 0x02020000

#ifndef SWIG_PYBUFFER_SIZE
# define SWIG_PYBUFFER_SIZE 1024
#endif

static PyObject *
PyString_FromFormat(const char *fmt, ...) {
  va_list ap;
  char buf[SWIG_PYBUFFER_SIZE * 2];
  int res;
  va_start(ap, fmt);
  res = vsnprintf(buf, sizeof(buf), fmt, ap);
  va_end(ap);
  return (res < 0 || res >= (int)sizeof(buf)) ? 0 : PyString_FromString(buf);
}
#endif

/* Add PyObject_Del for old Pythons */
#if PY_VERSION_HEX < 0x01060000
# define PyObject_Del(op) PyMem_DEL((op))
#endif
#ifndef PyObject_DEL
# define PyObject_DEL PyObject_Del
#endif

/* A crude PyExc_StopIteration exception for old Pythons */
#if PY_VERSION_HEX < 0x02020000
# ifndef PyExc_StopIteration
#  define PyExc_StopIteration PyExc_RuntimeError
# endif
# ifndef PyObject_GenericGetAttr
#  define PyObject_GenericGetAttr 0
# endif
#endif

/* Py_NotImplemented is defined in 2.1 and up. */
#if PY_VERSION_HEX < 0x02010000
# ifndef Py_NotImplemented
#  define Py_NotImplemented PyExc_RuntimeError
# endif
#endif

/* A crude PyString_AsStringAndSize implementation for old Pythons */
#if PY_VERSION_HEX < 0x02010000
# ifndef PyString_AsStringAndSize
#  define PyString_AsStringAndSize(obj, s, len) {*s = PyString_AsString(obj); *len = *s ? strlen(*s) : 0;}
# endif
#endif

/* PySequence_Size for old Pythons */
#if PY_VERSION_HEX < 0x02000000
# ifndef PySequence_Size
#  define PySequence_Size PySequence_Length
# endif
#endif

/* PyBool_FromLong for old Pythons */
#if PY_VERSION_HEX < 0x02030000
static
PyObject *PyBool_FromLong(long ok)
{
  PyObject *result = ok ? Py_True : Py_False;
  Py_INCREF(result);
  return result;
}
#endif

/* Py_ssize_t for old Pythons */
/* This code is as recommended by: */
/* http://www.python.org/dev/peps/pep-0353/#conversion-guidelines */
#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
typedef int Py_ssize_t;
# define PY_SSIZE_T_MAX INT_MAX
# define PY_SSIZE_T_MIN INT_MIN
typedef inquiry lenfunc;
typedef intargfunc ssizeargfunc;
typedef intintargfunc ssizessizeargfunc;
typedef intobjargproc ssizeobjargproc;
typedef intintobjargproc ssizessizeobjargproc;
typedef getreadbufferproc readbufferproc;
typedef getwritebufferproc writebufferproc;
typedef getsegcountproc segcountproc;
typedef getcharbufferproc charbufferproc;
static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc))
{
  long result = 0;
  PyObject *i = PyNumber_Int(x);
  if (i) {
    result = PyInt_AsLong(i);
    Py_DECREF(i);
  }
  return result;
}
#endif

#if PY_VERSION_HEX < 0x02050000
#define PyInt_FromSize_t(x) PyInt_FromLong((long)x)
#endif

#if PY_VERSION_HEX < 0x02040000
#define Py_VISIT(op)        \
  do {            \
    if (op) {         \
      int vret = visit((op), arg);    \
      if (vret)         \
        return vret;        \
    }           \
  } while (0)
#endif

#if PY_VERSION_HEX < 0x02030000
typedef struct {
  PyTypeObject type;
  PyNumberMethods as_number;
  PyMappingMethods as_mapping;
  PySequenceMethods as_sequence;
  PyBufferProcs as_buffer;
  PyObject *name, *slots;
} PyHeapTypeObject;
#endif

#if PY_VERSION_HEX < 0x02030000
typedef destructor freefunc;
#endif

#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
     (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \
     (PY_MAJOR_VERSION > 3))
# define SWIGPY_USE_CAPSULE
# define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
#endif

#if PY_VERSION_HEX < 0x03020000
#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
#endif

/* -----------------------------------------------------------------------------
 * error manipulation
 * ----------------------------------------------------------------------------- */

SWIGRUNTIME PyObject*
SWIG_Python_ErrorType(int code) {
  PyObject* type = 0;
  switch(code) {
  case SWIG_MemoryError:
    type = PyExc_MemoryError;
    break;
  case SWIG_IOError:
    type = PyExc_IOError;
    break;
  case SWIG_RuntimeError:
    type = PyExc_RuntimeError;
    break;
  case SWIG_IndexError:
    type = PyExc_IndexError;
    break;
  case SWIG_TypeError:
    type = PyExc_TypeError;
    break;
  case SWIG_DivisionByZero:
    type = PyExc_ZeroDivisionError;
    break;
  case SWIG_OverflowError:
    type = PyExc_OverflowError;
    break;
  case SWIG_SyntaxError:
    type = PyExc_SyntaxError;
    break;
  case SWIG_ValueError:
    type = PyExc_ValueError;
    break;
  case SWIG_SystemError:
    type = PyExc_SystemError;
    break;
  case SWIG_AttributeError:
    type = PyExc_AttributeError;
    break;
  default:
    type = PyExc_RuntimeError;
  }
  return type;
}


SWIGRUNTIME void
SWIG_Python_AddErrorMsg(const char* mesg)
{
  PyObject *type = 0;
  PyObject *value = 0;
  PyObject *traceback = 0;

  if (PyErr_Occurred()) PyErr_Fetch(&type, &value, &traceback);
  if (value) {
    char *tmp;
    PyObject *old_str = PyObject_Str(value);
    PyErr_Clear();
    Py_XINCREF(type);

    PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
    SWIG_Python_str_DelForPy3(tmp);
    Py_DECREF(old_str);
    Py_DECREF(value);
  } else {
    PyErr_SetString(PyExc_RuntimeError, mesg);
  }
}

#if defined(SWIG_PYTHON_NO_THREADS)
#  if defined(SWIG_PYTHON_THREADS)
#    undef SWIG_PYTHON_THREADS
#  endif
#endif
#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
#  if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
#    if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
#      define SWIG_PYTHON_USE_GIL
#    endif
#  endif
#  if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
#    ifndef SWIG_PYTHON_INITIALIZE_THREADS
#     define SWIG_PYTHON_INITIALIZE_THREADS  PyEval_InitThreads() 
#    endif
#    ifdef __cplusplus /* C++ code */
       class SWIG_Python_Thread_Block {
         bool status;
         PyGILState_STATE state;
       public:
         void end() { if (status) { PyGILState_Release(state); status = false;} }
         SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
         ~SWIG_Python_Thread_Block() { end(); }
       };
       class SWIG_Python_Thread_Allow {
         bool status;
         PyThreadState *save;
       public:
         void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
         SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
         ~SWIG_Python_Thread_Allow() { end(); }
       };
#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   SWIG_Python_Thread_Block _swig_thread_block
#      define SWIG_PYTHON_THREAD_END_BLOCK     _swig_thread_block.end()
#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   SWIG_Python_Thread_Allow _swig_thread_allow
#      define SWIG_PYTHON_THREAD_END_ALLOW     _swig_thread_allow.end()
#    else /* C code */
#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK   PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
#      define SWIG_PYTHON_THREAD_END_BLOCK     PyGILState_Release(_swig_thread_block)
#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW   PyThreadState *_swig_thread_allow = PyEval_SaveThread()
#      define SWIG_PYTHON_THREAD_END_ALLOW     PyEval_RestoreThread(_swig_thread_allow)
#    endif
#  else /* Old thread way, not implemented, user must provide it */
#    if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
#      define SWIG_PYTHON_INITIALIZE_THREADS
#    endif
#    if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
#      define SWIG_PYTHON_THREAD_BEGIN_BLOCK
#    endif
#    if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
#      define SWIG_PYTHON_THREAD_END_BLOCK
#    endif
#    if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
#      define SWIG_PYTHON_THREAD_BEGIN_ALLOW
#    endif
#    if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
#      define SWIG_PYTHON_THREAD_END_ALLOW
#    endif
#  endif
#else /* No thread support */
#  define SWIG_PYTHON_INITIALIZE_THREADS
#  define SWIG_PYTHON_THREAD_BEGIN_BLOCK
#  define SWIG_PYTHON_THREAD_END_BLOCK
#  define SWIG_PYTHON_THREAD_BEGIN_ALLOW
#  define SWIG_PYTHON_THREAD_END_ALLOW
#endif

/* -----------------------------------------------------------------------------
 * Python API portion that goes into the runtime
 * ----------------------------------------------------------------------------- */

#ifdef __cplusplus
extern "C" {
#endif

/* -----------------------------------------------------------------------------
 * Constant declarations
 * ----------------------------------------------------------------------------- */

/* Constant Types */
#define SWIG_PY_POINTER 4
#define SWIG_PY_BINARY  5

/* Constant information structure */
typedef struct swig_const_info {
  int type;
  char *name;
  long lvalue;
  double dvalue;
  void   *pvalue;
  swig_type_info **ptype;
} swig_const_info;


/* -----------------------------------------------------------------------------
 * Wrapper of PyInstanceMethod_New() used in Python 3
 * It is exported to the generated module, used for -fastproxy
 * ----------------------------------------------------------------------------- */
#if PY_VERSION_HEX >= 0x03000000
SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
{
  return PyInstanceMethod_New(func);
}
#else
SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func))
{
  return NULL;
}
#endif

#ifdef __cplusplus
}
#endif


/* -----------------------------------------------------------------------------
 * pyrun.swg
 *
 * This file contains the runtime support for Python modules
 * and includes code for managing global variables and pointer
 * type checking.
 *
 * ----------------------------------------------------------------------------- */

/* Common SWIG API */

/* for raw pointers */
#define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
#define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
#define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)

#ifdef SWIGPYTHON_BUILTIN
#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(self, ptr, type, flags)
#else
#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
#endif

#define SWIG_InternalNewPointerObj(ptr, type, flags)  SWIG_Python_NewPointerObj(NULL, ptr, type, flags)

#define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
#define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
#define swig_owntype                                    int

/* for raw packed data */
#define SWIG_ConvertPacked(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
#define SWIG_NewPackedObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)

/* for class or struct pointers */
#define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
#define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)

/* for C or C++ function pointers */
#define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(NULL, ptr, type, 0)

/* for C++ member pointers, ie, member methods */
#define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
#define SWIG_NewMemberObj(ptr, sz, type)                SWIG_Python_NewPackedObj(ptr, sz, type)


/* Runtime API */

#define SWIG_GetModule(clientdata)                      SWIG_Python_GetModule(clientdata)
#define SWIG_SetModule(clientdata, pointer)             SWIG_Python_SetModule(pointer)
#define SWIG_NewClientData(obj)                         SwigPyClientData_New(obj)

#define SWIG_SetErrorObj                                SWIG_Python_SetErrorObj                            
#define SWIG_SetErrorMsg                          SWIG_Python_SetErrorMsg          
#define SWIG_ErrorType(code)                      SWIG_Python_ErrorType(code)                        
#define SWIG_Error(code, msg)               SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg) 
#define SWIG_fail                           goto fail            


/* Runtime API implementation */

/* Error manipulation */

SWIGINTERN void 
SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
  SWIG_PYTHON_THREAD_BEGIN_BLOCK; 
  PyErr_SetObject(errtype, obj);
  Py_DECREF(obj);
  SWIG_PYTHON_THREAD_END_BLOCK;
}

SWIGINTERN void 
SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
  SWIG_PYTHON_THREAD_BEGIN_BLOCK;
  PyErr_SetString(errtype, msg);
  SWIG_PYTHON_THREAD_END_BLOCK;
}

#define SWIG_Python_Raise(obj, type, desc)  SWIG_Python_SetErrorObj(SWIG_Python_ExceptionType(desc), obj)

/* Set a constant value */

#if defined(SWIGPYTHON_BUILTIN)

SWIGINTERN void
SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
  PyObject *s = PyString_InternFromString(key);
  PyList_Append(seq, s);
  Py_DECREF(s);
}

SWIGINTERN void
SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {   
#if PY_VERSION_HEX < 0x02030000
  PyDict_SetItemString(d, (char *)name, obj);
#else
  PyDict_SetItemString(d, name, obj);
#endif
  Py_DECREF(obj);
  if (public_interface)
    SwigPyBuiltin_AddPublicSymbol(public_interface, name);
}

#else

SWIGINTERN void
SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
#if PY_VERSION_HEX < 0x02030000
  PyDict_SetItemString(d, (char *)name, obj);
#else
  PyDict_SetItemString(d, name, obj);
#endif
  Py_DECREF(obj);                            
}

#endif

/* Append a value to the result obj */

SWIGINTERN PyObject*
SWIG_Python_AppendOutput(PyObject* result, PyObject* obj) {
#if !defined(SWIG_PYTHON_OUTPUT_TUPLE)
  if (!result) {
    result = obj;
  } else if (result == Py_None) {
    Py_DECREF(result);
    result = obj;
  } else {
    if (!PyList_Check(result)) {
      PyObject *o2 = result;
      result = PyList_New(1);
      PyList_SetItem(result, 0, o2);
    }
    PyList_Append(result,obj);
    Py_DECREF(obj);
  }
  return result;
#else
  PyObject*   o2;
  PyObject*   o3;
  if (!result) {
    result = obj;
  } else if (result == Py_None) {
    Py_DECREF(result);
    result = obj;
  } else {
    if (!PyTuple_Check(result)) {
      o2 = result;
      result = PyTuple_New(1);
      PyTuple_SET_ITEM(result, 0, o2);
    }
    o3 = PyTuple_New(1);
    PyTuple_SET_ITEM(o3, 0, obj);
    o2 = result;
    result = PySequence_Concat(o2, o3);
    Py_DECREF(o2);
    Py_DECREF(o3);
  }
  return result;
#endif
}

/* Unpack the argument tuple */

SWIGINTERN int
SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssize_t max, PyObject **objs)
{
  if (!args) {
    if (!min && !max) {
      return 1;
    } else {
      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got none", 
       name, (min == max ? "" : "at least "), (int)min);
      return 0;
    }
  }  
  if (!PyTuple_Check(args)) {
    if (min <= 1 && max >= 1) {
      int i;
      objs[0] = args;
      for (i = 1; i < max; ++i) {
  objs[i] = 0;
      }
      return 2;
    }
    PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
    return 0;
  } else {
    Py_ssize_t l = PyTuple_GET_SIZE(args);
    if (l < min) {
      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
       name, (min == max ? "" : "at least "), (int)min, (int)l);
      return 0;
    } else if (l > max) {
      PyErr_Format(PyExc_TypeError, "%s expected %s%d arguments, got %d", 
       name, (min == max ? "" : "at most "), (int)max, (int)l);
      return 0;
    } else {
      int i;
      for (i = 0; i < l; ++i) {
  objs[i] = PyTuple_GET_ITEM(args, i);
      }
      for (; l < max; ++l) {
  objs[l] = 0;
      }
      return i + 1;
    }    
  }
}

/* A functor is a function object with one single object argument */
#if PY_VERSION_HEX >= 0x02020000
#define SWIG_Python_CallFunctor(functor, obj)         PyObject_CallFunctionObjArgs(functor, obj, NULL);
#else
#define SWIG_Python_CallFunctor(functor, obj)         PyObject_CallFunction(functor, "O", obj);
#endif

/*
  Helper for static pointer initialization for both C and C++ code, for example
  static PyObject *SWIG_STATIC_POINTER(MyVar) = NewSomething(...);
*/
#ifdef __cplusplus
#define SWIG_STATIC_POINTER(var)  var
#else
#define SWIG_STATIC_POINTER(var)  var = 0; if (!var) var
#endif

/* -----------------------------------------------------------------------------
 * Pointer declarations
 * ----------------------------------------------------------------------------- */

/* Flags for new pointer objects */
#define SWIG_POINTER_NOSHADOW       (SWIG_POINTER_OWN      << 1)
#define SWIG_POINTER_NEW            (SWIG_POINTER_NOSHADOW | SWIG_POINTER_OWN)

#define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)

#define SWIG_BUILTIN_TP_INIT      (SWIG_POINTER_OWN << 2)
#define SWIG_BUILTIN_INIT     (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)

#ifdef __cplusplus
extern "C" {
#endif

/*  How to access Py_None */
#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#  ifndef SWIG_PYTHON_NO_BUILD_NONE
#    ifndef SWIG_PYTHON_BUILD_NONE
#      define SWIG_PYTHON_BUILD_NONE
#    endif
#  endif
#endif

#ifdef SWIG_PYTHON_BUILD_NONE
#  ifdef Py_None
#   undef Py_None
#   define Py_None SWIG_Py_None()
#  endif
SWIGRUNTIMEINLINE PyObject * 
_SWIG_Py_None(void)
{
  PyObject *none = Py_BuildValue((char*)"");
  Py_DECREF(none);
  return none;
}
SWIGRUNTIME PyObject * 
SWIG_Py_None(void)
{
  static PyObject *SWIG_STATIC_POINTER(none) = _SWIG_Py_None();
  return none;
}
#endif

/* The python void return value */

SWIGRUNTIMEINLINE PyObject * 
SWIG_Py_Void(void)
{
  PyObject *none = Py_None;
  Py_INCREF(none);
  return none;
}

/* SwigPyClientData */

typedef struct {
  PyObject *klass;
  PyObject *newraw;
  PyObject *newargs;
  PyObject *destroy;
  int delargs;
  int implicitconv;
  PyTypeObject *pytype;
} SwigPyClientData;

SWIGRUNTIMEINLINE int 
SWIG_Python_CheckImplicit(swig_type_info *ty)
{
  SwigPyClientData *data = (SwigPyClientData *)ty->clientdata;
  return data ? data->implicitconv : 0;
}

SWIGRUNTIMEINLINE PyObject *
SWIG_Python_ExceptionType(swig_type_info *desc) {
  SwigPyClientData *data = desc ? (SwigPyClientData *) desc->clientdata : 0;
  PyObject *klass = data ? data->klass : 0;
  return (klass ? klass : PyExc_RuntimeError);
}


SWIGRUNTIME SwigPyClientData * 
SwigPyClientData_New(PyObject* obj)
{
  if (!obj) {
    return 0;
  } else {
    SwigPyClientData *data = (SwigPyClientData *)malloc(sizeof(SwigPyClientData));
    /* the klass element */
    data->klass = obj;
    Py_INCREF(data->klass);
    /* the newraw method and newargs arguments used to create a new raw instance */
    if (PyClass_Check(obj)) {
      data->newraw = 0;
      data->newargs = obj;
      Py_INCREF(obj);
    } else {
#if (PY_VERSION_HEX < 0x02020000)
      data->newraw = 0;
#else
      data->newraw = PyObject_GetAttrString(data->klass, (char *)"__new__");
#endif
      if (data->newraw) {
  Py_INCREF(data->newraw);
  data->newargs = PyTuple_New(1);
  PyTuple_SetItem(data->newargs, 0, obj);
      } else {
  data->newargs = obj;
      }
      Py_INCREF(data->newargs);
    }
    /* the destroy method, aka as the C++ delete method */
    data->destroy = PyObject_GetAttrString(data->klass, (char *)"__swig_destroy__");
    if (PyErr_Occurred()) {
      PyErr_Clear();
      data->destroy = 0;
    }
    if (data->destroy) {
      int flags;
      Py_INCREF(data->destroy);
      flags = PyCFunction_GET_FLAGS(data->destroy);
#ifdef METH_O
      data->delargs = !(flags & (METH_O));
#else
      data->delargs = 0;
#endif
    } else {
      data->delargs = 0;
    }
    data->implicitconv = 0;
    data->pytype = 0;
    return data;
  }
}

SWIGRUNTIME void 
SwigPyClientData_Del(SwigPyClientData *data) {
  Py_XDECREF(data->newraw);
  Py_XDECREF(data->newargs);
  Py_XDECREF(data->destroy);
}

/* =============== SwigPyObject =====================*/

typedef struct {
  PyObject_HEAD
  void *ptr;
  swig_type_info *ty;
  int own;
  PyObject *next;
#ifdef SWIGPYTHON_BUILTIN
  PyObject *dict;
#endif
} SwigPyObject;


#ifdef SWIGPYTHON_BUILTIN

SWIGRUNTIME PyObject *
SwigPyObject_get___dict__(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
{
  SwigPyObject *sobj = (SwigPyObject *)v;

  if (!sobj->dict)
    sobj->dict = PyDict_New();

  Py_INCREF(sobj->dict);
  return sobj->dict;
}

#endif

SWIGRUNTIME PyObject *
SwigPyObject_long(SwigPyObject *v)
{
  return PyLong_FromVoidPtr(v->ptr);
}

SWIGRUNTIME PyObject *
SwigPyObject_format(const char* fmt, SwigPyObject *v)
{
  PyObject *res = NULL;
  PyObject *args = PyTuple_New(1);
  if (args) {
    if (PyTuple_SetItem(args, 0, SwigPyObject_long(v)) == 0) {
      PyObject *ofmt = SWIG_Python_str_FromChar(fmt);
      if (ofmt) {
#if PY_VERSION_HEX >= 0x03000000
  res = PyUnicode_Format(ofmt,args);
#else
  res = PyString_Format(ofmt,args);
#endif
  Py_DECREF(ofmt);
      }
      Py_DECREF(args);
    }
  }
  return res;
}

SWIGRUNTIME PyObject *
SwigPyObject_oct(SwigPyObject *v)
{
  return SwigPyObject_format("%o",v);
}

SWIGRUNTIME PyObject *
SwigPyObject_hex(SwigPyObject *v)
{
  return SwigPyObject_format("%x",v);
}

SWIGRUNTIME PyObject *
#ifdef METH_NOARGS
SwigPyObject_repr(SwigPyObject *v)
#else
SwigPyObject_repr(SwigPyObject *v, PyObject *args)
#endif
{
  const char *name = SWIG_TypePrettyName(v->ty);
  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
  if (v->next) {
# ifdef METH_NOARGS
    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
# else
    PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args);
# endif
# if PY_VERSION_HEX >= 0x03000000
    PyObject *joined = PyUnicode_Concat(repr, nrep);
    Py_DecRef(repr);
    Py_DecRef(nrep);
    repr = joined;
# else
    PyString_ConcatAndDel(&repr,nrep);
# endif
  }
  return repr;  
}

SWIGRUNTIME int
SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
{
  void *i = v->ptr;
  void *j = w->ptr;
  return (i < j) ? -1 : ((i > j) ? 1 : 0);
}

/* Added for Python 3.x, would it also be useful for Python 2.x? */
SWIGRUNTIME PyObject*
SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
{
  PyObject* res;
  if( op != Py_EQ && op != Py_NE ) {
    Py_INCREF(Py_NotImplemented);
    return Py_NotImplemented;
  }
  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
  return res;  
}


SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);

#ifdef SWIGPYTHON_BUILTIN
static swig_type_info *SwigPyObject_stype = 0;
SWIGRUNTIME PyTypeObject*
SwigPyObject_type(void) {
    SwigPyClientData *cd;
    assert(SwigPyObject_stype);
    cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
    assert(cd);
    assert(cd->pytype);
    return cd->pytype;
}
#else
SWIGRUNTIME PyTypeObject*
SwigPyObject_type(void) {
  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
  return type;
}
#endif

SWIGRUNTIMEINLINE int
SwigPyObject_Check(PyObject *op) {
#ifdef SWIGPYTHON_BUILTIN
  PyTypeObject *target_tp = SwigPyObject_type();
  if (PyType_IsSubtype(op->ob_type, target_tp))
    return 1;
  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
#else
  return (Py_TYPE(op) == SwigPyObject_type())
    || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
#endif
}

SWIGRUNTIME PyObject *
SwigPyObject_New(void *ptr, swig_type_info *ty, int own);

SWIGRUNTIME void
SwigPyObject_dealloc(PyObject *v)
{
  SwigPyObject *sobj = (SwigPyObject *) v;
  PyObject *next = sobj->next;
  if (sobj->own == SWIG_POINTER_OWN) {
    swig_type_info *ty = sobj->ty;
    SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
    PyObject *destroy = data ? data->destroy : 0;
    if (destroy) {
      /* destroy is always a VARARGS method */
      PyObject *res;
      if (data->delargs) {
  /* we need to create a temporary object to carry the destroy operation */
  PyObject *tmp = SwigPyObject_New(sobj->ptr, ty, 0);
  res = SWIG_Python_CallFunctor(destroy, tmp);
  Py_DECREF(tmp);
      } else {
  PyCFunction meth = PyCFunction_GET_FUNCTION(destroy);
  PyObject *mself = PyCFunction_GET_SELF(destroy);
  res = ((*meth)(mself, v));
      }
      Py_XDECREF(res);
    } 
#if !defined(SWIG_PYTHON_SILENT_MEMLEAK)
    else {
      const char *name = SWIG_TypePrettyName(ty);
      printf("swig/python detected a memory leak of type '%s', no destructor found.\n", (name ? name : "unknown"));
    }
#endif
  } 
  Py_XDECREF(next);
  PyObject_DEL(v);
}

SWIGRUNTIME PyObject* 
SwigPyObject_append(PyObject* v, PyObject* next)
{
  SwigPyObject *sobj = (SwigPyObject *) v;
#ifndef METH_O
  PyObject *tmp = 0;
  if (!PyArg_ParseTuple(next,(char *)"O:append", &tmp)) return NULL;
  next = tmp;
#endif
  if (!SwigPyObject_Check(next)) {
    return NULL;
  }
  sobj->next = next;
  Py_INCREF(next);
  return SWIG_Py_Void();
}

SWIGRUNTIME PyObject* 
#ifdef METH_NOARGS
SwigPyObject_next(PyObject* v)
#else
SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
#endif
{
  SwigPyObject *sobj = (SwigPyObject *) v;
  if (sobj->next) {    
    Py_INCREF(sobj->next);
    return sobj->next;
  } else {
    return SWIG_Py_Void();
  }
}

SWIGINTERN PyObject*
#ifdef METH_NOARGS
SwigPyObject_disown(PyObject *v)
#else
SwigPyObject_disown(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
#endif
{
  SwigPyObject *sobj = (SwigPyObject *)v;
  sobj->own = 0;
  return SWIG_Py_Void();
}

SWIGINTERN PyObject*
#ifdef METH_NOARGS
SwigPyObject_acquire(PyObject *v)
#else
SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
#endif
{
  SwigPyObject *sobj = (SwigPyObject *)v;
  sobj->own = SWIG_POINTER_OWN;
  return SWIG_Py_Void();
}

SWIGINTERN PyObject*
SwigPyObject_own(PyObject *v, PyObject *args)
{
  PyObject *val = 0;
#if (PY_VERSION_HEX < 0x02020000)
  if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
#elif (PY_VERSION_HEX < 0x02050000)
  if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
#else
  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) 
#endif
    {
      return NULL;
    } 
  else
    {
      SwigPyObject *sobj = (SwigPyObject *)v;
      PyObject *obj = PyBool_FromLong(sobj->own);
      if (val) {
#ifdef METH_NOARGS
  if (PyObject_IsTrue(val)) {
    SwigPyObject_acquire(v);
  } else {
    SwigPyObject_disown(v);
  }
#else
  if (PyObject_IsTrue(val)) {
    SwigPyObject_acquire(v,args);
  } else {
    SwigPyObject_disown(v,args);
  }
#endif
      } 
      return obj;
    }
}

#ifdef METH_O
static PyMethodDef
swigobject_methods[] = {
  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS,  (char *)"acquires ownership of the pointer"},
  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_O,       (char *)"appends another 'this' object"},
  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
  {0, 0, 0, 0}  
};
#else
static PyMethodDef
swigobject_methods[] = {
  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_VARARGS,  (char *)"releases ownership of the pointer"},
  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_VARARGS,  (char *)"acquires ownership of the pointer"},
  {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
  {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
  {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
  {0, 0, 0, 0}  
};
#endif

#if PY_VERSION_HEX < 0x02020000
SWIGINTERN PyObject *
SwigPyObject_getattr(SwigPyObject *sobj,char *name)
{
  return Py_FindMethod(swigobject_methods, (PyObject *)sobj, name);
}
#endif

SWIGRUNTIME PyTypeObject*
SwigPyObject_TypeOnce(void) {
  static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";

  static PyNumberMethods SwigPyObject_as_number = {
    (binaryfunc)0, /*nb_add*/
    (binaryfunc)0, /*nb_subtract*/
    (binaryfunc)0, /*nb_multiply*/
    /* nb_divide removed in Python 3 */
#if PY_VERSION_HEX < 0x03000000
    (binaryfunc)0, /*nb_divide*/
#endif
    (binaryfunc)0, /*nb_remainder*/
    (binaryfunc)0, /*nb_divmod*/
    (ternaryfunc)0,/*nb_power*/
    (unaryfunc)0,  /*nb_negative*/
    (unaryfunc)0,  /*nb_positive*/
    (unaryfunc)0,  /*nb_absolute*/
    (inquiry)0,    /*nb_nonzero*/
    0,       /*nb_invert*/
    0,       /*nb_lshift*/
    0,       /*nb_rshift*/
    0,       /*nb_and*/
    0,       /*nb_xor*/
    0,       /*nb_or*/
#if PY_VERSION_HEX < 0x03000000
    0,   /*nb_coerce*/
#endif
    (unaryfunc)SwigPyObject_long, /*nb_int*/
#if PY_VERSION_HEX < 0x03000000
    (unaryfunc)SwigPyObject_long, /*nb_long*/
#else
    0, /*nb_reserved*/
#endif
    (unaryfunc)0,                 /*nb_float*/
#if PY_VERSION_HEX < 0x03000000
    (unaryfunc)SwigPyObject_oct,  /*nb_oct*/
    (unaryfunc)SwigPyObject_hex,  /*nb_hex*/
#endif
#if PY_VERSION_HEX >= 0x03000000 /* 3.0 */
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index, nb_inplace_divide removed */
#elif PY_VERSION_HEX >= 0x02050000 /* 2.5.0 */
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_index */
#elif PY_VERSION_HEX >= 0x02020000 /* 2.2.0 */
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
#elif PY_VERSION_HEX >= 0x02000000 /* 2.0.0 */
    0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
#endif
  };

  static PyTypeObject swigpyobject_type;
  static int type_init = 0;
  if (!type_init) {
    const PyTypeObject tmp = {
      /* PyObject header changed in Python 3 */
#if PY_VERSION_HEX >= 0x03000000
      PyVarObject_HEAD_INIT(NULL, 0)
#else
      PyObject_HEAD_INIT(NULL)
      0,                                    /* ob_size */
#endif
      (char *)"SwigPyObject",               /* tp_name */
      sizeof(SwigPyObject),                 /* tp_basicsize */
      0,                                    /* tp_itemsize */
      (destructor)SwigPyObject_dealloc,     /* tp_dealloc */
      0,            /* tp_print */
#if PY_VERSION_HEX < 0x02020000
      (getattrfunc)SwigPyObject_getattr,    /* tp_getattr */
#else
      (getattrfunc)0,                       /* tp_getattr */
#endif
      (setattrfunc)0,                       /* tp_setattr */
#if PY_VERSION_HEX >= 0x03000000
    0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
#else
      (cmpfunc)SwigPyObject_compare,        /* tp_compare */
#endif
      (reprfunc)SwigPyObject_repr,          /* tp_repr */
      &SwigPyObject_as_number,              /* tp_as_number */
      0,                                    /* tp_as_sequence */
      0,                                    /* tp_as_mapping */
      (hashfunc)0,                          /* tp_hash */
      (ternaryfunc)0,                       /* tp_call */
      0,            /* tp_str */
      PyObject_GenericGetAttr,              /* tp_getattro */
      0,                                    /* tp_setattro */
      0,                                    /* tp_as_buffer */
      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
      swigobject_doc,                       /* tp_doc */
      0,                                    /* tp_traverse */
      0,                                    /* tp_clear */
      (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
      0,                                    /* tp_weaklistoffset */
#if PY_VERSION_HEX >= 0x02020000
      0,                                    /* tp_iter */
      0,                                    /* tp_iternext */
      swigobject_methods,                   /* tp_methods */
      0,                                    /* tp_members */
      0,                                    /* tp_getset */
      0,                                    /* tp_base */
      0,                                    /* tp_dict */
      0,                                    /* tp_descr_get */
      0,                                    /* tp_descr_set */
      0,                                    /* tp_dictoffset */
      0,                                    /* tp_init */
      0,                                    /* tp_alloc */
      0,                                    /* tp_new */
      0,                                    /* tp_free */
      0,                                    /* tp_is_gc */
      0,                                    /* tp_bases */
      0,                                    /* tp_mro */
      0,                                    /* tp_cache */
      0,                                    /* tp_subclasses */
      0,                                    /* tp_weaklist */
#endif
#if PY_VERSION_HEX >= 0x02030000
      0,                                    /* tp_del */
#endif
#if PY_VERSION_HEX >= 0x02060000
      0,                                    /* tp_version */
#endif
#ifdef COUNT_ALLOCS
      0,0,0,0                               /* tp_alloc -> tp_next */
#endif
    };
    swigpyobject_type = tmp;
    type_init = 1;
#if PY_VERSION_HEX < 0x02020000
    swigpyobject_type.ob_type = &PyType_Type;
#else
    if (PyType_Ready(&swigpyobject_type) < 0)
      return NULL;
#endif
  }
  return &swigpyobject_type;
}

SWIGRUNTIME PyObject *
SwigPyObject_New(void *ptr, swig_type_info *ty, int own)
{
  SwigPyObject *sobj = PyObject_NEW(SwigPyObject, SwigPyObject_type());
  if (sobj) {
    sobj->ptr  = ptr;
    sobj->ty   = ty;
    sobj->own  = own;
    sobj->next = 0;
  }
  return (PyObject *)sobj;
}

/* -----------------------------------------------------------------------------
 * Implements a simple Swig Packed type, and use it instead of string
 * ----------------------------------------------------------------------------- */

typedef struct {
  PyObject_HEAD
  void *pack;
  swig_type_info *ty;
  size_t size;
} SwigPyPacked;

SWIGRUNTIME int
SwigPyPacked_print(SwigPyPacked *v, FILE *fp, int SWIGUNUSEDPARM(flags))
{
  char result[SWIG_BUFFER_SIZE];
  fputs("<Swig Packed ", fp); 
  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
    fputs("at ", fp); 
    fputs(result, fp); 
  }
  fputs(v->ty->name,fp); 
  fputs(">", fp);
  return 0; 
}
  
SWIGRUNTIME PyObject *
SwigPyPacked_repr(SwigPyPacked *v)
{
  char result[SWIG_BUFFER_SIZE];
  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
    return SWIG_Python_str_FromFormat("<Swig Packed at %s%s>", result, v->ty->name);
  } else {
    return SWIG_Python_str_FromFormat("<Swig Packed %s>", v->ty->name);
  }  
}

SWIGRUNTIME PyObject *
SwigPyPacked_str(SwigPyPacked *v)
{
  char result[SWIG_BUFFER_SIZE];
  if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
    return SWIG_Python_str_FromFormat("%s%s", result, v->ty->name);
  } else {
    return SWIG_Python_str_FromChar(v->ty->name);
  }  
}

SWIGRUNTIME int
SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
{
  size_t i = v->size;
  size_t j = w->size;
  int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
  return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
}

SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);

SWIGRUNTIME PyTypeObject*
SwigPyPacked_type(void) {
  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
  return type;
}

SWIGRUNTIMEINLINE int
SwigPyPacked_Check(PyObject *op) {
  return ((op)->ob_type == SwigPyPacked_TypeOnce()) 
    || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
}

SWIGRUNTIME void
SwigPyPacked_dealloc(PyObject *v)
{
  if (SwigPyPacked_Check(v)) {
    SwigPyPacked *sobj = (SwigPyPacked *) v;
    free(sobj->pack);
  }
  PyObject_DEL(v);
}

SWIGRUNTIME PyTypeObject*
SwigPyPacked_TypeOnce(void) {
  static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
  static PyTypeObject swigpypacked_type;
  static int type_init = 0;
  if (!type_init) {
    const PyTypeObject tmp = {
      /* PyObject header changed in Python 3 */
#if PY_VERSION_HEX>=0x03000000
      PyVarObject_HEAD_INIT(NULL, 0)
#else
      PyObject_HEAD_INIT(NULL)
      0,                                    /* ob_size */
#endif
      (char *)"SwigPyPacked",               /* tp_name */
      sizeof(SwigPyPacked),                 /* tp_basicsize */
      0,                                    /* tp_itemsize */
      (destructor)SwigPyPacked_dealloc,     /* tp_dealloc */
      (printfunc)SwigPyPacked_print,        /* tp_print */
      (getattrfunc)0,                       /* tp_getattr */
      (setattrfunc)0,                       /* tp_setattr */
#if PY_VERSION_HEX>=0x03000000
      0, /* tp_reserved in 3.0.1 */
#else
      (cmpfunc)SwigPyPacked_compare,        /* tp_compare */
#endif
      (reprfunc)SwigPyPacked_repr,          /* tp_repr */
      0,                                    /* tp_as_number */
      0,                                    /* tp_as_sequence */
      0,                                    /* tp_as_mapping */
      (hashfunc)0,                          /* tp_hash */
      (ternaryfunc)0,                       /* tp_call */
      (reprfunc)SwigPyPacked_str,           /* tp_str */
      PyObject_GenericGetAttr,              /* tp_getattro */
      0,                                    /* tp_setattro */
      0,                                    /* tp_as_buffer */
      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
      swigpacked_doc,                       /* tp_doc */
      0,                                    /* tp_traverse */
      0,                                    /* tp_clear */
      0,                                    /* tp_richcompare */
      0,                                    /* tp_weaklistoffset */
#if PY_VERSION_HEX >= 0x02020000
      0,                                    /* tp_iter */
      0,                                    /* tp_iternext */
      0,                                    /* tp_methods */
      0,                                    /* tp_members */
      0,                                    /* tp_getset */
      0,                                    /* tp_base */
      0,                                    /* tp_dict */
      0,                                    /* tp_descr_get */
      0,                                    /* tp_descr_set */
      0,                                    /* tp_dictoffset */
      0,                                    /* tp_init */
      0,                                    /* tp_alloc */
      0,                                    /* tp_new */
      0,                                    /* tp_free */
      0,                                    /* tp_is_gc */
      0,                                    /* tp_bases */
      0,                                    /* tp_mro */
      0,                                    /* tp_cache */
      0,                                    /* tp_subclasses */
      0,                                    /* tp_weaklist */
#endif
#if PY_VERSION_HEX >= 0x02030000
      0,                                    /* tp_del */
#endif
#if PY_VERSION_HEX >= 0x02060000
      0,                                    /* tp_version */
#endif
#ifdef COUNT_ALLOCS
      0,0,0,0                               /* tp_alloc -> tp_next */
#endif
    };
    swigpypacked_type = tmp;
    type_init = 1;
#if PY_VERSION_HEX < 0x02020000
    swigpypacked_type.ob_type = &PyType_Type;
#else
    if (PyType_Ready(&swigpypacked_type) < 0)
      return NULL;
#endif
  }
  return &swigpypacked_type;
}

SWIGRUNTIME PyObject *
SwigPyPacked_New(void *ptr, size_t size, swig_type_info *ty)
{
  SwigPyPacked *sobj = PyObject_NEW(SwigPyPacked, SwigPyPacked_type());
  if (sobj) {
    void *pack = malloc(size);
    if (pack) {
      memcpy(pack, ptr, size);
      sobj->pack = pack;
      sobj->ty   = ty;
      sobj->size = size;
    } else {
      PyObject_DEL((PyObject *) sobj);
      sobj = 0;
    }
  }
  return (PyObject *) sobj;
}

SWIGRUNTIME swig_type_info *
SwigPyPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
{
  if (SwigPyPacked_Check(obj)) {
    SwigPyPacked *sobj = (SwigPyPacked *)obj;
    if (sobj->size != size) return 0;
    memcpy(ptr, sobj->pack, size);
    return sobj->ty;
  } else {
    return 0;
  }
}

/* -----------------------------------------------------------------------------
 * pointers/data manipulation
 * ----------------------------------------------------------------------------- */

SWIGRUNTIMEINLINE PyObject *
_SWIG_This(void)
{
    return SWIG_Python_str_FromChar("this");
}

static PyObject *swig_this = NULL;

SWIGRUNTIME PyObject *
SWIG_This(void)
{
  if (swig_this == NULL)
    swig_this = _SWIG_This();
  return swig_this;
}

/* #define SWIG_PYTHON_SLOW_GETSET_THIS */

/* TODO: I don't know how to implement the fast getset in Python 3 right now */
#if PY_VERSION_HEX>=0x03000000
#define SWIG_PYTHON_SLOW_GETSET_THIS 
#endif

SWIGRUNTIME SwigPyObject *
SWIG_Python_GetSwigThis(PyObject *pyobj) 
{
  PyObject *obj;

  if (SwigPyObject_Check(pyobj))
    return (SwigPyObject *) pyobj;

#ifdef SWIGPYTHON_BUILTIN
  (void)obj;
# ifdef PyWeakref_CheckProxy
  if (PyWeakref_CheckProxy(pyobj)) {
    pyobj = PyWeakref_GET_OBJECT(pyobj);
    if (pyobj && SwigPyObject_Check(pyobj))
      return (SwigPyObject*) pyobj;
  }
# endif
  return NULL;
#else

  obj = 0;

#if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
  if (PyInstance_Check(pyobj)) {
    obj = _PyInstance_Lookup(pyobj, SWIG_This());      
  } else {
    PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
    if (dictptr != NULL) {
      PyObject *dict = *dictptr;
      obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
    } else {
#ifdef PyWeakref_CheckProxy
      if (PyWeakref_CheckProxy(pyobj)) {
  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
      }
#endif
      obj = PyObject_GetAttr(pyobj,SWIG_This());
      if (obj) {
  Py_DECREF(obj);
      } else {
  if (PyErr_Occurred()) PyErr_Clear();
  return 0;
      }
    }
  }
#else
  obj = PyObject_GetAttr(pyobj,SWIG_This());
  if (obj) {
    Py_DECREF(obj);
  } else {
    if (PyErr_Occurred()) PyErr_Clear();
    return 0;
  }
#endif
  if (obj && !SwigPyObject_Check(obj)) {
    /* a PyObject is called 'this', try to get the 'real this'
       SwigPyObject from it */ 
    return SWIG_Python_GetSwigThis(obj);
  }
  return (SwigPyObject *)obj;
#endif
}

/* Acquire a pointer value */

SWIGRUNTIME int
SWIG_Python_AcquirePtr(PyObject *obj, int own) {
  if (own == SWIG_POINTER_OWN) {
    SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
    if (sobj) {
      int oldown = sobj->own;
      sobj->own = own;
      return oldown;
    }
  }
  return 0;
}

/* Convert a pointer value */

SWIGRUNTIME int
SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
  int res;
  SwigPyObject *sobj;
  int implicit_conv = (flags & SWIG_POINTER_IMPLICIT_CONV) != 0;

  if (!obj)
    return SWIG_ERROR;
  if (obj == Py_None && !implicit_conv) {
    if (ptr)
      *ptr = 0;
    return SWIG_OK;
  }

  res = SWIG_ERROR;

  sobj = SWIG_Python_GetSwigThis(obj);
  if (own)
    *own = 0;
  while (sobj) {
    void *vptr = sobj->ptr;
    if (ty) {
      swig_type_info *to = sobj->ty;
      if (to == ty) {
        /* no type cast needed */
        if (ptr) *ptr = vptr;
        break;
      } else {
        swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
        if (!tc) {
          sobj = (SwigPyObject *)sobj->next;
        } else {
          if (ptr) {
            int newmemory = 0;
            *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
            if (newmemory == SWIG_CAST_NEW_MEMORY) {
              assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
              if (own)
                *own = *own | SWIG_CAST_NEW_MEMORY;
            }
          }
          break;
        }
      }
    } else {
      if (ptr) *ptr = vptr;
      break;
    }
  }
  if (sobj) {
    if (own)
      *own = *own | sobj->own;
    if (flags & SWIG_POINTER_DISOWN) {
      sobj->own = 0;
    }
    res = SWIG_OK;
  } else {
    if (implicit_conv) {
      SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
      if (data && !data->implicitconv) {
        PyObject *klass = data->klass;
        if (klass) {
          PyObject *impconv;
          data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
          impconv = SWIG_Python_CallFunctor(klass, obj);
          data->implicitconv = 0;
          if (PyErr_Occurred()) {
            PyErr_Clear();
            impconv = 0;
          }
          if (impconv) {
            SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
            if (iobj) {
              void *vptr;
              res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
              if (SWIG_IsOK(res)) {
                if (ptr) {
                  *ptr = vptr;
                  /* transfer the ownership to 'ptr' */
                  iobj->own = 0;
                  res = SWIG_AddCast(res);
                  res = SWIG_AddNewMask(res);
                } else {
                  res = SWIG_AddCast(res);        
                }
              }
            }
            Py_DECREF(impconv);
          }
        }
      }
    }
    if (!SWIG_IsOK(res) && obj == Py_None) {
      if (ptr)
        *ptr = 0;
      if (PyErr_Occurred())
        PyErr_Clear();
      res = SWIG_OK;
    }
  }
  return res;
}

/* Convert a function ptr value */

SWIGRUNTIME int
SWIG_Python_ConvertFunctionPtr(PyObject *obj, void **ptr, swig_type_info *ty) {
  if (!PyCFunction_Check(obj)) {
    return SWIG_ConvertPtr(obj, ptr, ty, 0);
  } else {
    void *vptr = 0;
    
    /* here we get the method pointer for callbacks */
    const char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
    const char *desc = doc ? strstr(doc, "swig_ptr: ") : 0;
    if (desc)
      desc = ty ? SWIG_UnpackVoidPtr(desc + 10, &vptr, ty->name) : 0;
    if (!desc) 
      return SWIG_ERROR;
    if (ty) {
      swig_cast_info *tc = SWIG_TypeCheck(desc,ty);
      if (tc) {
        int newmemory = 0;
        *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
        assert(!newmemory); /* newmemory handling not yet implemented */
      } else {
        return SWIG_ERROR;
      }
    } else {
      *ptr = vptr;
    }
    return SWIG_OK;
  }
}

/* Convert a packed value value */

SWIGRUNTIME int
SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty) {
  swig_type_info *to = SwigPyPacked_UnpackData(obj, ptr, sz);
  if (!to) return SWIG_ERROR;
  if (ty) {
    if (to != ty) {
      /* check type cast? */
      swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
      if (!tc) return SWIG_ERROR;
    }
  }
  return SWIG_OK;
}  

/* -----------------------------------------------------------------------------
 * Create a new pointer object
 * ----------------------------------------------------------------------------- */

/*
  Create a new instance object, without calling __init__, and set the
  'this' attribute.
*/

SWIGRUNTIME PyObject* 
SWIG_Python_NewShadowInstance(SwigPyClientData *data, PyObject *swig_this)
{
#if (PY_VERSION_HEX >= 0x02020000)
  PyObject *inst = 0;
  PyObject *newraw = data->newraw;
  if (newraw) {
    inst = PyObject_Call(newraw, data->newargs, NULL);
    if (inst) {
#if !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
      PyObject **dictptr = _PyObject_GetDictPtr(inst);
      if (dictptr != NULL) {
  PyObject *dict = *dictptr;
  if (dict == NULL) {
    dict = PyDict_New();
    *dictptr = dict;
    PyDict_SetItem(dict, SWIG_This(), swig_this);
  }
      }
#else
      PyObject *key = SWIG_This();
      PyObject_SetAttr(inst, key, swig_this);
#endif
    }
  } else {
#if PY_VERSION_HEX >= 0x03000000
    inst = ((PyTypeObject*) data->newargs)->tp_new((PyTypeObject*) data->newargs, Py_None, Py_None);
    if (inst) {
      PyObject_SetAttr(inst, SWIG_This(), swig_this);
      Py_TYPE(inst)->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG;
    }
#else
    PyObject *dict = PyDict_New();
    if (dict) {
      PyDict_SetItem(dict, SWIG_This(), swig_this);
      inst = PyInstance_NewRaw(data->newargs, dict);
      Py_DECREF(dict);
    }
#endif
  }
  return inst;
#else
#if (PY_VERSION_HEX >= 0x02010000)
  PyObject *inst = 0;
  PyObject *dict = PyDict_New();
  if (dict) {
    PyDict_SetItem(dict, SWIG_This(), swig_this);
    inst = PyInstance_NewRaw(data->newargs, dict);
    Py_DECREF(dict);
  }
  return (PyObject *) inst;
#else
  PyInstanceObject *inst = PyObject_NEW(PyInstanceObject, &PyInstance_Type);
  if (inst == NULL) {
    return NULL;
  }
  inst->in_class = (PyClassObject *)data->newargs;
  Py_INCREF(inst->in_class);
  inst->in_dict = PyDict_New();
  if (inst->in_dict == NULL) {
    Py_DECREF(inst);
    return NULL;
  }
#ifdef Py_TPFLAGS_HAVE_WEAKREFS
  inst->in_weakreflist = NULL;
#endif
#ifdef Py_TPFLAGS_GC
  PyObject_GC_Init(inst);
#endif
  PyDict_SetItem(inst->in_dict, SWIG_This(), swig_this);
  return (PyObject *) inst;
#endif
#endif
}

SWIGRUNTIME void
SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
{
 PyObject *dict;
#if (PY_VERSION_HEX >= 0x02020000) && !defined(SWIG_PYTHON_SLOW_GETSET_THIS)
 PyObject **dictptr = _PyObject_GetDictPtr(inst);
 if (dictptr != NULL) {
   dict = *dictptr;
   if (dict == NULL) {
     dict = PyDict_New();
     *dictptr = dict;
   }
   PyDict_SetItem(dict, SWIG_This(), swig_this);
   return;
 }
#endif
 dict = PyObject_GetAttrString(inst, (char*)"__dict__");
 PyDict_SetItem(dict, SWIG_This(), swig_this);
 Py_DECREF(dict);
} 


SWIGINTERN PyObject *
SWIG_Python_InitShadowInstance(PyObject *args) {
  PyObject *obj[2];
  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
    return NULL;
  } else {
    SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
    if (sthis) {
      SwigPyObject_append((PyObject*) sthis, obj[1]);
    } else {
      SWIG_Python_SetSwigThis(obj[0], obj[1]);
    }
    return SWIG_Py_Void();
  }
}

/* Create a new pointer object */

SWIGRUNTIME PyObject *
SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
  SwigPyClientData *clientdata;
  PyObject * robj;
  int own;

  if (!ptr)
    return SWIG_Py_Void();

  clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
  own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
  if (clientdata && clientdata->pytype) {
    SwigPyObject *newobj;
    if (flags & SWIG_BUILTIN_TP_INIT) {
      newobj = (SwigPyObject*) self;
      if (newobj->ptr) {
        PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
        while (newobj->next)
    newobj = (SwigPyObject *) newobj->next;
        newobj->next = next_self;
        newobj = (SwigPyObject *)next_self;
#ifdef SWIGPYTHON_BUILTIN
        newobj->dict = 0;
#endif
      }
    } else {
      newobj = PyObject_New(SwigPyObject, clientdata->pytype);
#ifdef SWIGPYTHON_BUILTIN
      newobj->dict = 0;
#endif
    }
    if (newobj) {
      newobj->ptr = ptr;
      newobj->ty = type;
      newobj->own = own;
      newobj->next = 0;
      return (PyObject*) newobj;
    }
    return SWIG_Py_Void();
  }

  assert(!(flags & SWIG_BUILTIN_TP_INIT));

  robj = SwigPyObject_New(ptr, type, own);
  if (robj && clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
    PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
    Py_DECREF(robj);
    robj = inst;
  }
  return robj;
}

/* Create a new packed object */

SWIGRUNTIMEINLINE PyObject *
SWIG_Python_NewPackedObj(void *ptr, size_t sz, swig_type_info *type) {
  return ptr ? SwigPyPacked_New((void *) ptr, sz, type) : SWIG_Py_Void();
}

/* -----------------------------------------------------------------------------*
 *  Get type list 
 * -----------------------------------------------------------------------------*/

#ifdef SWIG_LINK_RUNTIME
void *SWIG_ReturnGlobalTypeList(void *);
#endif

SWIGRUNTIME swig_module_info *
SWIG_Python_GetModule(void *SWIGUNUSEDPARM(clientdata)) {
  static void *type_pointer = (void *)0;
  /* first check if module already created */
  if (!type_pointer) {
#ifdef SWIG_LINK_RUNTIME
    type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
#else
# ifdef SWIGPY_USE_CAPSULE
    type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
# else
    type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
            (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
# endif
    if (PyErr_Occurred()) {
      PyErr_Clear();
      type_pointer = (void *)0;
    }
#endif
  }
  return (swig_module_info *) type_pointer;
}

#if PY_MAJOR_VERSION < 2
/* PyModule_AddObject function was introduced in Python 2.0.  The following function
   is copied out of Python/modsupport.c in python version 2.3.4 */
SWIGINTERN int
PyModule_AddObject(PyObject *m, char *name, PyObject *o)
{
  PyObject *dict;
  if (!PyModule_Check(m)) {
    PyErr_SetString(PyExc_TypeError,
        "PyModule_AddObject() needs module as first arg");
    return SWIG_ERROR;
  }
  if (!o) {
    PyErr_SetString(PyExc_TypeError,
        "PyModule_AddObject() needs non-NULL value");
    return SWIG_ERROR;
  }
  
  dict = PyModule_GetDict(m);
  if (dict == NULL) {
    /* Internal error -- modules must have a dict! */
    PyErr_Format(PyExc_SystemError, "module '%s' has no __dict__",
     PyModule_GetName(m));
    return SWIG_ERROR;
  }
  if (PyDict_SetItemString(dict, name, o))
    return SWIG_ERROR;
  Py_DECREF(o);
  return SWIG_OK;
}
#endif

SWIGRUNTIME void
#ifdef SWIGPY_USE_CAPSULE
SWIG_Python_DestroyModule(PyObject *obj)
#else
SWIG_Python_DestroyModule(void *vptr)
#endif
{
#ifdef SWIGPY_USE_CAPSULE
  swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
#else
  swig_module_info *swig_module = (swig_module_info *) vptr;
#endif
  swig_type_info **types = swig_module->types;
  size_t i;
  for (i =0; i < swig_module->size; ++i) {
    swig_type_info *ty = types[i];
    if (ty->owndata) {
      SwigPyClientData *data = (SwigPyClientData *) ty->clientdata;
      if (data) SwigPyClientData_Del(data);
    }
  }
  Py_DECREF(SWIG_This());
  swig_this = NULL;
}

SWIGRUNTIME void
SWIG_Python_SetModule(swig_module_info *swig_module) {
#if PY_VERSION_HEX >= 0x03000000
 /* Add a dummy module object into sys.modules */
  PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION);
#else
  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
#endif
#ifdef SWIGPY_USE_CAPSULE
  PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
  if (pointer && module) {
    PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
  } else {
    Py_XDECREF(pointer);
  }
#else
  PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
  if (pointer && module) {
    PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
  } else {
    Py_XDECREF(pointer);
  }
#endif
}

/* The python cached type query */
SWIGRUNTIME PyObject *
SWIG_Python_TypeCache(void) {
  static PyObject *SWIG_STATIC_POINTER(cache) = PyDict_New();
  return cache;
}

SWIGRUNTIME swig_type_info *
SWIG_Python_TypeQuery(const char *type)
{
  PyObject *cache = SWIG_Python_TypeCache();
  PyObject *key = SWIG_Python_str_FromChar(type); 
  PyObject *obj = PyDict_GetItem(cache, key);
  swig_type_info *descriptor;
  if (obj) {
#ifdef SWIGPY_USE_CAPSULE
    descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
#else
    descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
#endif
  } else {
    swig_module_info *swig_module = SWIG_GetModule(0);
    descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
    if (descriptor) {
#ifdef SWIGPY_USE_CAPSULE
      obj = PyCapsule_New((void*) descriptor, NULL, NULL);
#else
      obj = PyCObject_FromVoidPtr(descriptor, NULL);
#endif
      PyDict_SetItem(cache, key, obj);
      Py_DECREF(obj);
    }
  }
  Py_DECREF(key);
  return descriptor;
}

/* 
   For backward compatibility only
*/
#define SWIG_POINTER_EXCEPTION  0
#define SWIG_arg_fail(arg)      SWIG_Python_ArgFail(arg)
#define SWIG_MustGetPtr(p, type, argnum, flags)  SWIG_Python_MustGetPtr(p, type, argnum, flags)

SWIGRUNTIME int
SWIG_Python_AddErrMesg(const char* mesg, int infront)
{  
  if (PyErr_Occurred()) {
    PyObject *type = 0;
    PyObject *value = 0;
    PyObject *traceback = 0;
    PyErr_Fetch(&type, &value, &traceback);
    if (value) {
      char *tmp;
      PyObject *old_str = PyObject_Str(value);
      Py_XINCREF(type);
      PyErr_Clear();
      if (infront) {
  PyErr_Format(type, "%s %s", mesg, tmp = SWIG_Python_str_AsChar(old_str));
      } else {
  PyErr_Format(type, "%s %s", tmp = SWIG_Python_str_AsChar(old_str), mesg);
      }
      SWIG_Python_str_DelForPy3(tmp);
      Py_DECREF(old_str);
    }
    return 1;
  } else {
    return 0;
  }
}
  
SWIGRUNTIME int
SWIG_Python_ArgFail(int argnum)
{
  if (PyErr_Occurred()) {
    /* add information about failing argument */
    char mesg[256];
    PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
    return SWIG_Python_AddErrMesg(mesg, 1);
  } else {
    return 0;
  }
}

SWIGRUNTIMEINLINE const char *
SwigPyObject_GetDesc(PyObject *self)
{
  SwigPyObject *v = (SwigPyObject *)self;
  swig_type_info *ty = v ? v->ty : 0;
  return ty ? ty->str : "";
}

SWIGRUNTIME void
SWIG_Python_TypeError(const char *type, PyObject *obj)
{
  if (type) {
#if defined(SWIG_COBJECT_TYPES)
    if (obj && SwigPyObject_Check(obj)) {
      const char *otype = (const char *) SwigPyObject_GetDesc(obj);
      if (otype) {
  PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'SwigPyObject(%s)' is received",
         type, otype);
  return;
      }
    } else 
#endif      
    {
      const char *otype = (obj ? obj->ob_type->tp_name : 0); 
      if (otype) {
  PyObject *str = PyObject_Str(obj);
  const char *cstr = str ? SWIG_Python_str_AsChar(str) : 0;
  if (cstr) {
    PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
           type, otype, cstr);
          SWIG_Python_str_DelForPy3(cstr);
  } else {
    PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
           type, otype);
  }
  Py_XDECREF(str);
  return;
      }
    }   
    PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
  } else {
    PyErr_Format(PyExc_TypeError, "unexpected type is received");
  }
}


/* Convert a pointer value, signal an exception on a type mismatch */
SWIGRUNTIME void *
SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
  void *result;
  if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
    PyErr_Clear();
#if SWIG_POINTER_EXCEPTION
    if (flags) {
      SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
      SWIG_Python_ArgFail(argnum);
    }
#endif
  }
  return result;
}

#ifdef SWIGPYTHON_BUILTIN
SWIGRUNTIME int
SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
  PyTypeObject *tp = obj->ob_type;
  PyObject *descr;
  PyObject *encoded_name;
  descrsetfunc f;
  int res = -1;

# ifdef Py_USING_UNICODE
  if (PyString_Check(name)) {
    name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
    if (!name)
      return -1;
  } else if (!PyUnicode_Check(name))
# else
  if (!PyString_Check(name))
# endif
  {
    PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
    return -1;
  } else {
    Py_INCREF(name);
  }

  if (!tp->tp_dict) {
    if (PyType_Ready(tp) < 0)
      goto done;
  }

  descr = _PyType_Lookup(tp, name);
  f = NULL;
  if (descr != NULL)
    f = descr->ob_type->tp_descr_set;
  if (!f) {
    if (PyString_Check(name)) {
      encoded_name = name;
      Py_INCREF(name);
    } else {
      encoded_name = PyUnicode_AsUTF8String(name);
    }
    PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
    Py_DECREF(encoded_name);
  } else {
    res = f(descr, obj, value);
  }
  
  done:
  Py_DECREF(name);
  return res;
}
#endif

#ifdef __cplusplus
}
#endif

#define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 

#define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 



  #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) 

part2:

/* -------- TYPES TABLE (BEGIN) -------- */

#define SWIGTYPE_p_ConstRefIter swig_types[0]
#define SWIGTYPE_p_Mapping swig_types[1]
#define SWIGTYPE_p_Mappings swig_types[2]
#define SWIGTYPE_p_OpMap swig_types[3]
#define SWIGTYPE_p_OpenBabel__AliasData swig_types[4]
#define SWIGTYPE_p_OpenBabel__CharPtrLess swig_types[5]
#define SWIGTYPE_p_OpenBabel__DoubleType swig_types[6]
#define SWIGTYPE_p_OpenBabel__FastSearch swig_types[7]
#define SWIGTYPE_p_OpenBabel__FastSearchIndexer swig_types[8]
#define SWIGTYPE_p_OpenBabel__FptIndex swig_types[9]
#define SWIGTYPE_p_OpenBabel__FptIndexHeader swig_types[10]
#define SWIGTYPE_p_OpenBabel__LineSearchType swig_types[11]
#define SWIGTYPE_p_OpenBabel__OBAlign swig_types[12]
#define SWIGTYPE_p_OpenBabel__OBAngle swig_types[13]
#define SWIGTYPE_p_OpenBabel__OBAngleData swig_types[14]
#define SWIGTYPE_p_OpenBabel__OBAromaticTyper swig_types[15]
#define SWIGTYPE_p_OpenBabel__OBAtom swig_types[16]
#define SWIGTYPE_p_OpenBabel__OBAtomAtomIter swig_types[17]
#define SWIGTYPE_p_OpenBabel__OBAtomBondIter swig_types[18]
#define SWIGTYPE_p_OpenBabel__OBAtomClassData swig_types[19]
#define SWIGTYPE_p_OpenBabel__OBAtomHOF swig_types[20]
#define SWIGTYPE_p_OpenBabel__OBAtomTyper swig_types[21]
#define SWIGTYPE_p_OpenBabel__OBAtomicHeatOfFormationTable swig_types[22]
#define SWIGTYPE_p_OpenBabel__OBBase swig_types[23]
#define SWIGTYPE_p_OpenBabel__OBBitVec swig_types[24]
#define SWIGTYPE_p_OpenBabel__OBBond swig_types[25]
#define SWIGTYPE_p_OpenBabel__OBBuilder swig_types[26]
#define SWIGTYPE_p_OpenBabel__OBChainsParser swig_types[27]
#define SWIGTYPE_p_OpenBabel__OBChargeModel swig_types[28]
#define SWIGTYPE_p_OpenBabel__OBChemTsfm swig_types[29]
#define SWIGTYPE_p_OpenBabel__OBChiralData swig_types[30]
#define SWIGTYPE_p_OpenBabel__OBCisTransConfig swig_types[31]
#define SWIGTYPE_p_OpenBabel__OBCisTransStereo swig_types[32]
#define SWIGTYPE_p_OpenBabel__OBCommentData swig_types[33]
#define SWIGTYPE_p_OpenBabel__OBConformerData swig_types[34]
#define SWIGTYPE_p_OpenBabel__OBConformerFilter swig_types[35]
#define SWIGTYPE_p_OpenBabel__OBConformerFilters swig_types[36]
#define SWIGTYPE_p_OpenBabel__OBConformerScore swig_types[37]
#define SWIGTYPE_p_OpenBabel__OBConformerSearch swig_types[38]
#define SWIGTYPE_p_OpenBabel__OBConversion swig_types[39]
#define SWIGTYPE_p_OpenBabel__OBDOSData swig_types[40]
#define SWIGTYPE_p_OpenBabel__OBDescriptor swig_types[41]
#define SWIGTYPE_p_OpenBabel__OBElectronicTransitionData swig_types[42]
#define SWIGTYPE_p_OpenBabel__OBElement swig_types[43]
#define SWIGTYPE_p_OpenBabel__OBElementTable swig_types[44]
#define SWIGTYPE_p_OpenBabel__OBEnergyConformerScore swig_types[45]
#define SWIGTYPE_p_OpenBabel__OBError swig_types[46]
#define SWIGTYPE_p_OpenBabel__OBExternalBond swig_types[47]
#define SWIGTYPE_p_OpenBabel__OBExternalBondData swig_types[48]
#define SWIGTYPE_p_OpenBabel__OBFFCalculation2 swig_types[49]
#define SWIGTYPE_p_OpenBabel__OBFFCalculation3 swig_types[50]
#define SWIGTYPE_p_OpenBabel__OBFFCalculation4 swig_types[51]
#define SWIGTYPE_p_OpenBabel__OBFFConstraint swig_types[52]
#define SWIGTYPE_p_OpenBabel__OBFFConstraints swig_types[53]
#define SWIGTYPE_p_OpenBabel__OBFFParameter swig_types[54]
#define SWIGTYPE_p_OpenBabel__OBFingerprint swig_types[55]
#define SWIGTYPE_p_OpenBabel__OBForceField swig_types[56]
#define SWIGTYPE_p_OpenBabel__OBFormat swig_types[57]
#define SWIGTYPE_p_OpenBabel__OBFreeGrid swig_types[58]
#define SWIGTYPE_p_OpenBabel__OBFreeGridPoint swig_types[59]
#define SWIGTYPE_p_OpenBabel__OBGenericData swig_types[60]
#define SWIGTYPE_p_OpenBabel__OBGlobalDataBase swig_types[61]
#define SWIGTYPE_p_OpenBabel__OBGraphSym swig_types[62]
#define SWIGTYPE_p_OpenBabel__OBGridData swig_types[63]
#define SWIGTYPE_p_OpenBabel__OBInternalCoord swig_types[64]
#define SWIGTYPE_p_OpenBabel__OBIsomorphismMapper swig_types[65]
#define SWIGTYPE_p_OpenBabel__OBIsomorphismMapper__Functor swig_types[66]
#define SWIGTYPE_p_OpenBabel__OBIsotopeTable swig_types[67]
#define SWIGTYPE_p_OpenBabel__OBMatrixData swig_types[68]
#define SWIGTYPE_p_OpenBabel__OBMessageHandler swig_types[69]
#define SWIGTYPE_p_OpenBabel__OBMinimizingEnergyConformerScore swig_types[70]
#define SWIGTYPE_p_OpenBabel__OBMinimizingRMSDConformerScore swig_types[71]
#define SWIGTYPE_p_OpenBabel__OBMol swig_types[72]
#define SWIGTYPE_p_OpenBabel__OBMolAngleIter swig_types[73]
#define SWIGTYPE_p_OpenBabel__OBMolAtomBFSIter swig_types[74]
#define SWIGTYPE_p_OpenBabel__OBMolAtomDFSIter swig_types[75]
#define SWIGTYPE_p_OpenBabel__OBMolAtomIter swig_types[76]
#define SWIGTYPE_p_OpenBabel__OBMolBondBFSIter swig_types[77]
#define SWIGTYPE_p_OpenBabel__OBMolBondIter swig_types[78]
#define SWIGTYPE_p_OpenBabel__OBMolPairIter swig_types[79]
#define SWIGTYPE_p_OpenBabel__OBMolRingIter swig_types[80]
#define SWIGTYPE_p_OpenBabel__OBMolTorsionIter swig_types[81]
#define SWIGTYPE_p_OpenBabel__OBNasaThermoData swig_types[82]
#define SWIGTYPE_p_OpenBabel__OBOp swig_types[83]
#define SWIGTYPE_p_OpenBabel__OBOrbital swig_types[84]
#define SWIGTYPE_p_OpenBabel__OBOrbitalData swig_types[85]
#define SWIGTYPE_p_OpenBabel__OBPairData swig_types[86]
#define SWIGTYPE_p_OpenBabel__OBPairTemplateT_bool_t swig_types[87]
#define SWIGTYPE_p_OpenBabel__OBPairTemplateT_double_t swig_types[88]
#define SWIGTYPE_p_OpenBabel__OBPairTemplateT_int_t swig_types[89]
#define SWIGTYPE_p_OpenBabel__OBPhModel swig_types[90]
#define SWIGTYPE_p_OpenBabel__OBPlugin swig_types[91]
#define SWIGTYPE_p_OpenBabel__OBQuery swig_types[92]
#define SWIGTYPE_p_OpenBabel__OBQueryAtom swig_types[93]
#define SWIGTYPE_p_OpenBabel__OBQueryBond swig_types[94]
#define SWIGTYPE_p_OpenBabel__OBRMSDConformerScore swig_types[95]
#define SWIGTYPE_p_OpenBabel__OBRTree swig_types[96]
#define SWIGTYPE_p_OpenBabel__OBRandom swig_types[97]
#define SWIGTYPE_p_OpenBabel__OBRateData swig_types[98]
#define SWIGTYPE_p_OpenBabel__OBReaction swig_types[99]
#define SWIGTYPE_p_OpenBabel__OBResidue swig_types[100]
#define SWIGTYPE_p_OpenBabel__OBResidueAtomIter swig_types[101]
#define SWIGTYPE_p_OpenBabel__OBResidueData swig_types[102]
#define SWIGTYPE_p_OpenBabel__OBResidueIter swig_types[103]
#define SWIGTYPE_p_OpenBabel__OBRing swig_types[104]
#define SWIGTYPE_p_OpenBabel__OBRingData swig_types[105]
#define SWIGTYPE_p_OpenBabel__OBRingSearch swig_types[106]
#define SWIGTYPE_p_OpenBabel__OBRingTyper swig_types[107]
#define SWIGTYPE_p_OpenBabel__OBRotamerList swig_types[108]
#define SWIGTYPE_p_OpenBabel__OBRotationData swig_types[109]
#define SWIGTYPE_p_OpenBabel__OBRotor swig_types[110]
#define SWIGTYPE_p_OpenBabel__OBRotorKeys swig_types[111]
#define SWIGTYPE_p_OpenBabel__OBRotorList swig_types[112]
#define SWIGTYPE_p_OpenBabel__OBRotorRule swig_types[113]
#define SWIGTYPE_p_OpenBabel__OBRotorRules swig_types[114]
#define SWIGTYPE_p_OpenBabel__OBSSMatch swig_types[115]
#define SWIGTYPE_p_OpenBabel__OBSerialNums swig_types[116]
#define SWIGTYPE_p_OpenBabel__OBSetData swig_types[117]
#define SWIGTYPE_p_OpenBabel__OBSmartsMatcher swig_types[118]
#define SWIGTYPE_p_OpenBabel__OBSmartsPattern swig_types[119]
#define SWIGTYPE_p_OpenBabel__OBSpectrophore swig_types[120]
#define SWIGTYPE_p_OpenBabel__OBSqrtTbl swig_types[121]
#define SWIGTYPE_p_OpenBabel__OBSquarePlanarConfig swig_types[122]
#define SWIGTYPE_p_OpenBabel__OBSquarePlanarStereo swig_types[123]
#define SWIGTYPE_p_OpenBabel__OBStereo swig_types[124]
#define SWIGTYPE_p_OpenBabel__OBStereoBase swig_types[125]
#define SWIGTYPE_p_OpenBabel__OBStereoFacade swig_types[126]
#define SWIGTYPE_p_OpenBabel__OBStereoUnit swig_types[127]
#define SWIGTYPE_p_OpenBabel__OBStericConformerFilter swig_types[128]
#define SWIGTYPE_p_OpenBabel__OBStopwatch swig_types[129]
#define SWIGTYPE_p_OpenBabel__OBSymmetryData swig_types[130]
#define SWIGTYPE_p_OpenBabel__OBTetraNonPlanarStereo swig_types[131]
#define SWIGTYPE_p_OpenBabel__OBTetraPlanarStereo swig_types[132]
#define SWIGTYPE_p_OpenBabel__OBTetrahedralConfig swig_types[133]
#define SWIGTYPE_p_OpenBabel__OBTetrahedralStereo swig_types[134]
#define SWIGTYPE_p_OpenBabel__OBTorsion swig_types[135]
#define SWIGTYPE_p_OpenBabel__OBTorsionData swig_types[136]
#define SWIGTYPE_p_OpenBabel__OBTypeTable swig_types[137]
#define SWIGTYPE_p_OpenBabel__OBUnitCell swig_types[138]
#define SWIGTYPE_p_OpenBabel__OBVectorData swig_types[139]
#define SWIGTYPE_p_OpenBabel__OBVibrationData swig_types[140]
#define SWIGTYPE_p_OpenBabel__OBVirtualBond swig_types[141]
#define SWIGTYPE_p_OpenBabel__Pattern swig_types[142]
#define SWIGTYPE_p_OpenBabel__SpaceGroup swig_types[143]
#define SWIGTYPE_p_OpenBabel__Template swig_types[144]
#define SWIGTYPE_p_OpenBabel__matrix3x3 swig_types[145]
#define SWIGTYPE_p_OpenBabel__obLogBuf swig_types[146]
#define SWIGTYPE_p_OpenBabel__quadT_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_t swig_types[147]
#define SWIGTYPE_p_OpenBabel__rotor_digit swig_types[148]
#define SWIGTYPE_p_OpenBabel__transform3d swig_types[149]
#define SWIGTYPE_p_OpenBabel__tripleT_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_t swig_types[150]
#define SWIGTYPE_p_OpenBabel__vector3 swig_types[151]
#define SWIGTYPE_p_PluginIterator swig_types[152]
#define SWIGTYPE_p_PluginMapType swig_types[153]
#define SWIGTYPE_p_Ref swig_types[154]
#define SWIGTYPE_p_RefIter swig_types[155]
#define SWIGTYPE_p_Refs swig_types[156]
#define SWIGTYPE_p_Unit swig_types[157]
#define SWIGTYPE_p_a_3__double swig_types[158]
#define SWIGTYPE_p_a_3__doubleArray swig_types[159]
#define SWIGTYPE_p_a_4__char swig_types[160]
#define SWIGTYPE_p_allocator_type swig_types[161]
#define SWIGTYPE_p_bool swig_types[162]
#define SWIGTYPE_p_char swig_types[163]
#define SWIGTYPE_p_const_reference swig_types[164]
#define SWIGTYPE_p_difference_type swig_types[165]
#define SWIGTYPE_p_double swig_types[166]
#define SWIGTYPE_p_doubleArray swig_types[167]
#define SWIGTYPE_p_first_type swig_types[168]
#define SWIGTYPE_p_int swig_types[169]
#define SWIGTYPE_p_obsharedptrT_OpenBabel__OBMol_t swig_types[170]
#define SWIGTYPE_p_p_OpenBabel__OBChargeModel swig_types[171]
#define SWIGTYPE_p_p_OpenBabel__OBDescriptor swig_types[172]
#define SWIGTYPE_p_p_OpenBabel__OBFingerprint swig_types[173]
#define SWIGTYPE_p_p_OpenBabel__OBForceField swig_types[174]
#define SWIGTYPE_p_p_OpenBabel__OBFormat swig_types[175]
#define SWIGTYPE_p_p_OpenBabel__OBOp swig_types[176]
#define SWIGTYPE_p_p_PyObject swig_types[177]
#define SWIGTYPE_p_p_double swig_types[178]
#define SWIGTYPE_p_p_doubleArray swig_types[179]
#define SWIGTYPE_p_p_int swig_types[180]
#define SWIGTYPE_p_reference swig_types[181]
#define SWIGTYPE_p_second_type swig_types[182]
#define SWIGTYPE_p_size_type swig_types[183]
#define SWIGTYPE_p_std__allocatorT_std__vectorT_std__pairT_unsigned_int_unsigned_int_t_std__allocatorT_std__pairT_unsigned_int_unsigned_int_t_t_t_t swig_types[184]
#define SWIGTYPE_p_std__binary_functionT_char_const_p_char_const_p_bool_t swig_types[185]
#define SWIGTYPE_p_std__dequeT_int_t swig_types[186]
#define SWIGTYPE_p_std__invalid_argument swig_types[187]
#define SWIGTYPE_p_std__istream swig_types[188]
#define SWIGTYPE_p_std__listT_OpenBabel__transform3d_p_std__allocatorT_OpenBabel__transform3d_p_t_t__const_iterator swig_types[189]
#define SWIGTYPE_p_std__listT_OpenBabel__vector3_std__allocatorT_OpenBabel__vector3_t_t swig_types[190]
#define SWIGTYPE_p_std__mapT_OpenBabel__OBBond_p_OpenBabel__OBStereo__BondDirection_std__lessT_OpenBabel__OBBond_p_t_std__allocatorT_std__pairT_OpenBabel__OBBond_pconst_OpenBabel__OBStereo__BondDirection_t_t_t swig_types[191]
#define SWIGTYPE_p_std__mapT_OpenBabel__OBBond_p_unsigned_long_std__lessT_OpenBabel__OBBond_p_t_std__allocatorT_std__pairT_OpenBabel__OBBond_pconst_unsigned_long_t_t_t swig_types[192]
#define SWIGTYPE_p_std__mapT_char_const_p_OpenBabel__OBPlugin_p_OpenBabel__CharPtrLess_std__allocatorT_std__pairT_char_const_pconst_OpenBabel__OBPlugin_p_t_t_t swig_types[193]
#define SWIGTYPE_p_std__mapT_char_const_p_OpenBabel__OBPlugin_p_OpenBabel__CharPtrLess_std__allocatorT_std__pairT_char_const_pconst_OpenBabel__OBPlugin_p_t_t_t__const_iterator swig_types[194]
#define SWIGTYPE_p_std__mapT_int_OpenBabel__OBAtom_p_std__lessT_int_t_std__allocatorT_std__pairT_int_const_OpenBabel__OBAtom_p_t_t_t swig_types[195]
#define SWIGTYPE_p_std__mapT_std__string_std__string_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_std__string_t_t_t swig_types[196]
#define SWIGTYPE_p_std__mapT_std__vectorT_int_std__allocatorT_int_t_t_double_std__lessT_std__vectorT_int_t_t_std__allocatorT_std__pairT_std__vectorT_int_std__allocatorT_int_t_t_const_double_t_t_t swig_types[197]
#define SWIGTYPE_p_std__multimapT_double_unsigned_int_t swig_types[198]
#define SWIGTYPE_p_std__ostream swig_types[199]
#define SWIGTYPE_p_std__pairT_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_t swig_types[200]
#define SWIGTYPE_p_std__pairT_int_int_t swig_types[201]
#define SWIGTYPE_p_std__pairT_std__string_std__string_t swig_types[202]
#define SWIGTYPE_p_std__pairT_unsigned_int_unsigned_int_t swig_types[203]
#define SWIGTYPE_p_std__setT_OpenBabel__OBBond_p_t swig_types[204]
#define SWIGTYPE_p_std__streampos swig_types[205]
#define SWIGTYPE_p_std__string swig_types[206]
#define SWIGTYPE_p_std__stringbuf swig_types[207]
#define SWIGTYPE_p_std__type_info swig_types[208]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBAtom_p_std__allocatorT_OpenBabel__OBAtom_p_t_t swig_types[209]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBAtom_p_std__allocatorT_OpenBabel__OBAtom_p_t_t__iterator swig_types[210]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBBase_p_std__allocatorT_OpenBabel__OBBase_p_t_t swig_types[211]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_std__allocatorT_OpenBabel__OBBond_p_t_t swig_types[212]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_p_std__allocatorT_OpenBabel__OBBond_p_t_t__iterator swig_types[213]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBBond_std__allocatorT_OpenBabel__OBBond_t_t swig_types[214]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBCisTransStereo_p_std__allocatorT_OpenBabel__OBCisTransStereo_p_t_t swig_types[215]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBConformerFilter_p_std__allocatorT_OpenBabel__OBConformerFilter_p_t_t swig_types[216]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBExternalBond_std__allocatorT_OpenBabel__OBExternalBond_t_t swig_types[217]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBFreeGridPoint_p_std__allocatorT_OpenBabel__OBFreeGridPoint_p_t_t__iterator swig_types[218]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBGenericData_p_std__allocatorT_OpenBabel__OBGenericData_p_t_t swig_types[219]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBGenericData_p_std__allocatorT_OpenBabel__OBGenericData_p_t_t__iterator swig_types[220]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBInternalCoord_p_std__allocatorT_OpenBabel__OBInternalCoord_p_t_t swig_types[221]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBInternalCoord_p_std__allocatorT_OpenBabel__OBInternalCoord_p_t_t__iterator swig_types[222]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBMol_std__allocatorT_OpenBabel__OBMol_t_t swig_types[223]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBOrbital_std__allocatorT_OpenBabel__OBOrbital_t_t swig_types[224]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBQueryAtom_p_std__allocatorT_OpenBabel__OBQueryAtom_p_t_t swig_types[225]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBQueryBond_p_std__allocatorT_OpenBabel__OBQueryBond_p_t_t swig_types[226]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBResidue_p_std__allocatorT_OpenBabel__OBResidue_p_t_t__iterator swig_types[227]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBResidue_std__allocatorT_OpenBabel__OBResidue_t_t swig_types[228]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBRing_p_std__allocatorT_OpenBabel__OBRing_p_t_t swig_types[229]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBRing_p_std__allocatorT_OpenBabel__OBRing_p_t_t__iterator swig_types[230]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBRing_std__allocatorT_OpenBabel__OBRing_t_t swig_types[231]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBRotor_p_std__allocatorT_OpenBabel__OBRotor_p_t_t__iterator swig_types[232]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBStereoUnit_std__allocatorT_OpenBabel__OBStereoUnit_t_t swig_types[233]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBTetrahedralStereo_p_std__allocatorT_OpenBabel__OBTetrahedralStereo_p_t_t swig_types[234]
#define SWIGTYPE_p_std__vectorT_OpenBabel__OBTorsion_std__allocatorT_OpenBabel__OBTorsion_t_t swig_types[235]
#define SWIGTYPE_p_std__vectorT_OpenBabel__tripleT_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_double_t_std__allocatorT_OpenBabel__tripleT_OpenBabel__OBAtom_p_OpenBabel__OBAtom_p_double_t_t_t swig_types[236]
#define SWIGTYPE_p_std__vectorT_OpenBabel__vector3_std__allocatorT_OpenBabel__vector3_t_t swig_types[237]
#define SWIGTYPE_p_std__vectorT_double_p_std__allocatorT_double_p_t_t swig_types[238]
#define SWIGTYPE_p_std__vectorT_double_p_std__allocatorT_double_p_t_t__iterator swig_types[239]
#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[240]
#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[241]
#define SWIGTYPE_p_std__vectorT_std__pairT_int_int_t_std__allocatorT_std__pairT_int_int_t_t_t swig_types[242]
#define SWIGTYPE_p_std__vectorT_std__pairT_std__string_std__string_t_std__allocatorT_std__pairT_std__string_std__string_t_t_t swig_types[243]
#define SWIGTYPE_p_std__vectorT_std__pairT_unsigned_int_unsigned_int_t_std__allocatorT_std__pairT_unsigned_int_unsigned_int_t_t_t swig_types[244]
#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[245]
#define SWIGTYPE_p_std__vectorT_std__vectorT_OpenBabel__OBStereoUnit_std__allocatorT_OpenBabel__OBStereoUnit_t_t_std__allocatorT_std__vectorT_OpenBabel__OBStereoUnit_std__allocatorT_OpenBabel__OBStereoUnit_t_t_t_t swig_types[246]
#define SWIGTYPE_p_std__vectorT_std__vectorT_OpenBabel__vector3_std__allocatorT_OpenBabel__vector3_t_t_std__allocatorT_std__vectorT_OpenBabel__vector3_std__allocatorT_OpenBabel__vector3_t_t_t_t swig_types[247]
#define SWIGTYPE_p_std__vectorT_std__vectorT_int_std__allocatorT_int_t_t_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t_t swig_types[248]
#define SWIGTYPE_p_std__vectorT_std__vectorT_std__pairT_unsigned_int_unsigned_int_t_std__allocatorT_std__pairT_unsigned_int_unsigned_int_t_t_t_std__allocatorT_std__vectorT_std__pairT_unsigned_int_unsigned_int_t_std__allocatorT_std__pairT_unsigned_int_unsigned_int_t_t_t_t_t swig_types[249]
#define SWIGTYPE_p_std__vectorT_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t_std__allocatorT_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t_t_t swig_types[250]
#define SWIGTYPE_p_std__vectorT_uint32_t_std__allocatorT_uint32_t_t_t swig_types[251]
#define SWIGTYPE_p_std__vectorT_unsigned_char_p_std__allocatorT_unsigned_char_p_t_t__iterator swig_types[252]
#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[253]
#define SWIGTYPE_p_std__vectorT_unsigned_long_std__allocatorT_unsigned_long_t_t swig_types[254]
#define SWIGTYPE_p_std__vectorT_unsigned_short_std__allocatorT_unsigned_short_t_t swig_types[255]
#define SWIGTYPE_p_swig__SwigPyIterator swig_types[256]
#define SWIGTYPE_p_unsigned_char swig_types[257]
#define SWIGTYPE_p_unsigned_int swig_types[258]
#define SWIGTYPE_p_value_type swig_types[259]
#define SWIGTYPE_p_void swig_types[260]
#define SWIGTYPE_p_word_vector swig_types[261]
static swig_type_info *swig_types[263];
static swig_module_info swig_module = {swig_types, 262, 0, 0, 0, 0};
#define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
#define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)

/* -------- TYPES TABLE (END) -------- */

#if (PY_VERSION_HEX <= 0x02000000)
# if !defined(SWIG_PYTHON_CLASSIC)
#  error "This python version requires swig to be run with the '-classic' option"
# endif
#endif
#if (PY_VERSION_HEX <= 0x02020000)
# error "This python version requires swig to be run with the '-nomodern' option"
#endif
#if (PY_VERSION_HEX <= 0x02020000)
# error "This python version requires swig to be run with the '-nomodernargs' option"
#endif
#ifndef METH_O
# error "This python version requires swig to be run with the '-nofastunpack' option"
#endif
#ifdef SWIG_TypeQuery
# undef SWIG_TypeQuery
#endif
#define SWIG_TypeQuery SWIG_Python_TypeQuery

part3:

/*-----------------------------------------------
              @(target):= _openbabel.so
  ------------------------------------------------*/
#if PY_VERSION_HEX >= 0x03000000
#  define SWIG_init    PyInit__openbabel

#else
#  define SWIG_init    init_openbabel

#endif
#define SWIG_name    "_openbabel"

#define SWIGVERSION 0x030007 
#define SWIG_VERSION SWIGVERSION


#define SWIG_as_voidptr(a) const_cast< void * >(static_cast< const void * >(a)) 
#define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),reinterpret_cast< void** >(a)) 


#include <stdexcept>


namespace swig {
  class SwigPtr_PyObject {
  protected:
    PyObject *_obj;

  public:
    SwigPtr_PyObject() :_obj(0)
    {
    }

    SwigPtr_PyObject(const SwigPtr_PyObject& item) : _obj(item._obj)
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
      Py_XINCREF(_obj);      
      SWIG_PYTHON_THREAD_END_BLOCK;
    }
    
    SwigPtr_PyObject(PyObject *obj, bool initial_ref = true) :_obj(obj)
    {
      if (initial_ref) {
        SWIG_PYTHON_THREAD_BEGIN_BLOCK;
        Py_XINCREF(_obj);
        SWIG_PYTHON_THREAD_END_BLOCK;
      }
    }
    
    SwigPtr_PyObject & operator=(const SwigPtr_PyObject& item) 
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
      Py_XINCREF(item._obj);
      Py_XDECREF(_obj);
      _obj = item._obj;
      SWIG_PYTHON_THREAD_END_BLOCK;
      return *this;      
    }
    
    ~SwigPtr_PyObject() 
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK;
      Py_XDECREF(_obj);
      SWIG_PYTHON_THREAD_END_BLOCK;
    }
    
    operator PyObject *() const
    {
      return _obj;
    }

    PyObject *operator->() const
    {
      return _obj;
    }
  };
}


namespace swig {
  struct SwigVar_PyObject : SwigPtr_PyObject {
    SwigVar_PyObject(PyObject* obj = 0) : SwigPtr_PyObject(obj, false) { }
    
    SwigVar_PyObject & operator = (PyObject* obj)
    {
      Py_XDECREF(_obj);
      _obj = obj;
      return *this;      
    }
  };
}


// used to set import/export for Cygwin DLLs
#ifdef WIN32
#define USING_OBDLL
#endif

#include <openbabel/obutil.h>
#include <openbabel/rand.h>
#include <openbabel/math/vector3.h>
#include <openbabel/math/matrix3x3.h>
#include <openbabel/math/transform3d.h>
#include <openbabel/math/spacegroup.h>

#include <openbabel/generic.h>
#include <openbabel/griddata.h>

#include <openbabel/base.h>
#include <openbabel/mol.h>
#include <openbabel/atom.h>
#include <openbabel/bond.h>
#include <openbabel/reaction.h>
#include <openbabel/residue.h>
#include <openbabel/internalcoord.h>

#include <openbabel/ring.h>
#include <openbabel/obconversion.h>
#include <openbabel/oberror.h>
#include <openbabel/plugin.h>
#include <openbabel/fingerprint.h>
#include <openbabel/descriptor.h>
#include <openbabel/format.h>

#include <openbabel/forcefield.h>
#include <openbabel/builder.h>
#include <openbabel/op.h>

#include <openbabel/bitvec.h>
#include <openbabel/data.h>
#include <openbabel/parsmart.h>
#include <openbabel/alias.h>
#include <openbabel/atomclass.h>

#include <openbabel/kinetics.h>
#include <openbabel/rotor.h>
#include <openbabel/rotamer.h>
#include <openbabel/spectrophore.h>

#include <openbabel/chargemodel.h>
#include <openbabel/phmodel.h>
#include <openbabel/graphsym.h>
#include <openbabel/isomorphism.h>
#include <openbabel/query.h>
#include <openbabel/canon.h>

#include <openbabel/stereo/tetrahedral.h>
#include <openbabel/stereo/cistrans.h>
#include <openbabel/stereo/squareplanar.h>
#include <openbabel/stereo/bindings.h>


#include <openbabel/conformersearch.h>
#include <openbabel/math/align.h>


#include <iostream>

#if PY_VERSION_HEX >= 0x03020000
# define SWIGPY_SLICE_ARG(obj) ((PyObject*) (obj))
#else
# define SWIGPY_SLICE_ARG(obj) ((PySliceObject*) (obj))
#endif


#include <stdexcept>


#if defined(__GNUC__)
#  if __GNUC__ == 2 && __GNUC_MINOR <= 96
#     define SWIG_STD_NOMODERN_STL
#  endif
#endif


#include <string>


#include <stddef.h>


namespace swig {
  struct stop_iteration {
  };

  struct SwigPyIterator {
  private:
    SwigPtr_PyObject _seq;

  protected:
    SwigPyIterator(PyObject *seq) : _seq(seq)
    {
    }
      
  public:
    virtual ~SwigPyIterator() {}

    // Access iterator method, required by Python
    virtual PyObject *value() const = 0;

    // Forward iterator method, required by Python
    virtual SwigPyIterator *incr(size_t n = 1) = 0;
    
    // Backward iterator method, very common in C++, but not required in Python
    virtual SwigPyIterator *decr(size_t /*n*/ = 1)
    {
      throw stop_iteration();
    }

    // Random access iterator methods, but not required in Python
    virtual ptrdiff_t distance(const SwigPyIterator &/*x*/) const
    {
      throw std::invalid_argument("operation not supported");
    }

    virtual bool equal (const SwigPyIterator &/*x*/) const
    {
      throw std::invalid_argument("operation not supported");
    }
    
    // C++ common/needed methods
    virtual SwigPyIterator *copy() const = 0;

    PyObject *next()     
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads       
      PyObject *obj = value();
      incr();       
      SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads
      return obj;     
    }

    /* Make an alias for Python 3.x */
    PyObject *__next__()
    {
      return next();
    }

    PyObject *previous()
    {
      SWIG_PYTHON_THREAD_BEGIN_BLOCK; // disable threads       
      decr();
      PyObject *obj = value();
      SWIG_PYTHON_THREAD_END_BLOCK; // re-enable threads       
      return obj;
    }

    SwigPyIterator *advance(ptrdiff_t n)
    {
      return  (n > 0) ?  incr(n) : decr(-n);
    }
      
    bool operator == (const SwigPyIterator& x)  const
    {
      return equal(x);
    }
      
    bool operator != (const SwigPyIterator& x) const
    {
      return ! operator==(x);
    }
      
    SwigPyIterator& operator += (ptrdiff_t n)
    {
      return *advance(n);
    }

    SwigPyIterator& operator -= (ptrdiff_t n)
    {
      return *advance(-n);
    }
      
    SwigPyIterator* operator + (ptrdiff_t n) const
    {
      return copy()->advance(n);
    }

    SwigPyIterator* operator - (ptrdiff_t n) const
    {
      return copy()->advance(-n);
    }
      
    ptrdiff_t operator - (const SwigPyIterator& x) const
    {
      return x.distance(*this);
    }
      
    static swig_type_info* descriptor() {
      static int init = 0;
      static swig_type_info* desc = 0;
      if (!init) {
  desc = SWIG_TypeQuery("swig::SwigPyIterator *");
  init = 1;
      } 
      return desc;
    }    
  };

#if defined(SWIGPYTHON_BUILTIN)
  inline PyObject* make_output_iterator_builtin (PyObject *pyself)
  {
    Py_INCREF(pyself);
    return pyself;
  }
#endif
}


SWIGINTERN int
SWIG_AsVal_double (PyObject *obj, double *val)
{
  int res = SWIG_TypeError;
  if (PyFloat_Check(obj)) {
    if (val) *val = PyFloat_AsDouble(obj);
    return SWIG_OK;
  } else if (PyInt_Check(obj)) {
    if (val) *val = PyInt_AsLong(obj);
    return SWIG_OK;
  } else if (PyLong_Check(obj)) {
    double v = PyLong_AsDouble(obj);
    if (!PyErr_Occurred()) {
      if (val) *val = v;
      return SWIG_OK;
    } else {
      PyErr_Clear();
    }
  }
#ifdef SWIG_PYTHON_CAST_MODE
  {
    int dispatch = 0;
    double d = PyFloat_AsDouble(obj);
    if (!PyErr_Occurred()) {
      if (val) *val = d;
      return SWIG_AddCast(SWIG_OK);
    } else {
      PyErr_Clear();
    }
    if (!dispatch) {
      long v = PyLong_AsLong(obj);
      if (!PyErr_Occurred()) {
  if (val) *val = v;
  return SWIG_AddCast(SWIG_AddCast(SWIG_OK));
      } else {
  PyErr_Clear();
      }
    }
  }
#endif
  return res;
}


#include <float.h>

The remaining part is ignored…



◆ 本文地址: http://platinhom.github.io/2015/10/27/openbabel-py/, 转载请注明 ◆

前一篇: Python装饰器和符号@
后一篇: pybel使用


Contact: Hom / 已阅读()
Source 类别: CompCB  标签: Python  CompChem