# CONFIDENTIAL. (C) 2017 OpenEye Scientific Software Inc.
# All rights reserved.
# 
# ALL SOFTWARE BELOW IS PROPRIETARY AND CONFIDENTIAL TO OPENEYE
# SCIENTIFIC SOFTWARE INC., AND IS SUBJECT TO THE FULL PROTECTION OF
# COPYRIGHT AND TRADESECRET LAW.
# Copying or modifying this software is strictly prohibited and illegal.
# Using this software without a valid license from OpenEye is strictly
# prohibited and illegal.  De-obfuscating, de-minimizing, or any other
# attempt to reverse engineer or discover the workings of this software,
# is strictly prohibited. Even if software is exposed or visible, it is
# still proprietary and confidential and the above prohibitions apply.
# This software is NOT "Sample Code". For purposes of customization or
# interoperation with other software you must use Sample Code
# specifically labeled as such.
# Please contact OpenEye at eyesopen.com/legal if you have any questions
# about this warning.


# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.8
#
# 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

def swig_import_helper():
    from os.path import dirname
    import imp
    fp = None
    try:
        fp, pathname, description = imp.find_module('_oechem', [dirname(__file__)])
    except ImportError:
        # OpenEye Import Statements
        fp, pathname, description = imp.find_module('libs', [dirname(__file__)])
        try:
            libs = imp.load_module('libs', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()

        import sys
        assert not sys.platform.startswith('win')
        
        _oeiupac = libs.OEGetModule('_oeiupac266')
        return _oeiupac

_oeiupac = swig_import_helper()
del swig_import_helper
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 Exception:
        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


try:
    import weakref
    weakref_proxy = weakref.proxy
except Exception:
    weakref_proxy = lambda x: x


class OEUCharArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEUCharArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEUCharArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEUCharArray') -> "bool":
        return _oeiupac.OEUCharArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEUCharArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEUCharArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEUCharArray___repr__(self)

    def PtrCast(self, *args) -> "unsigned char const *":
        return _oeiupac.OEUCharArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEUCharArray___len__(self)
OEUCharArray_swigregister = _oeiupac.OEUCharArray_swigregister
OEUCharArray_swigregister(OEUCharArray)

class OEUIntArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEUIntArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEUIntArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEUIntArray') -> "bool":
        return _oeiupac.OEUIntArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEUIntArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEUIntArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEUIntArray___repr__(self)

    def PtrCast(self, *args) -> "unsigned int const *":
        return _oeiupac.OEUIntArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEUIntArray___len__(self)
OEUIntArray_swigregister = _oeiupac.OEUIntArray_swigregister
OEUIntArray_swigregister(OEUIntArray)

class OEIntArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEIntArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEIntArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEIntArray') -> "bool":
        return _oeiupac.OEIntArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEIntArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEIntArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEIntArray___repr__(self)

    def PtrCast(self, *args) -> "int const *":
        return _oeiupac.OEIntArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEIntArray___len__(self)
OEIntArray_swigregister = _oeiupac.OEIntArray_swigregister
OEIntArray_swigregister(OEIntArray)

class OEFloatArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEFloatArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEFloatArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEFloatArray') -> "bool":
        return _oeiupac.OEFloatArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEFloatArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEFloatArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEFloatArray___repr__(self)

    def PtrCast(self, *args) -> "float const *":
        return _oeiupac.OEFloatArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEFloatArray___len__(self)
OEFloatArray_swigregister = _oeiupac.OEFloatArray_swigregister
OEFloatArray_swigregister(OEFloatArray)

class OEDoubleArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEDoubleArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEDoubleArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEDoubleArray') -> "bool":
        return _oeiupac.OEDoubleArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEDoubleArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEDoubleArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEDoubleArray___repr__(self)

    def PtrCast(self, *args) -> "double const *":
        return _oeiupac.OEDoubleArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEDoubleArray___len__(self)
OEDoubleArray_swigregister = _oeiupac.OEDoubleArray_swigregister
OEDoubleArray_swigregister(OEDoubleArray)

class OEBoolArray(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __swig_destroy__ = _oeiupac.delete_OEBoolArray
    __del__ = lambda self: None

    def __init__(self, *args):
        this = _oeiupac.new_OEBoolArray(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __eq__(self, other: 'OEBoolArray') -> "bool":
        return _oeiupac.OEBoolArray___eq__(self, other)

    def __setitem__(self, *args) -> "void":
        return _oeiupac.OEBoolArray___setitem__(self, *args)

    def __getitem__(self, obj):
        if not isinstance(obj, slice):
            return _oeiupac.OEBoolArray___getitem__(self, obj)

        indices = range(*obj.indices(len(self)))
        newarr  = self.__class__(len(indices))
        for dst, src in enumerate(indices):
            newarr[dst] = self[src]
        return newarr



    def __repr__(self) -> "PyObject *":
        return _oeiupac.OEBoolArray___repr__(self)

    def PtrCast(self, *args) -> "bool const *":
        return _oeiupac.OEBoolArray_PtrCast(self, *args)

    def __len__(self) -> "Py_ssize_t":
        return _oeiupac.OEBoolArray___len__(self)
OEBoolArray_swigregister = _oeiupac.OEBoolArray_swigregister
OEBoolArray_swigregister(OEBoolArray)

class OEUIntVector(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):
        this = _oeiupac.new_OEUIntVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OEUIntVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OEUIntVector_clear(self)

    def append(self, x: 'unsigned int') -> "void":
        return _oeiupac.OEUIntVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OEUIntVector___nonzero__(self)

    def pop(self) -> "unsigned int":
        return _oeiupac.OEUIntVector_pop(self)

    def __getitem__(self, i: 'int') -> "unsigned int":
        return _oeiupac.OEUIntVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< unsigned int >":
        return _oeiupac.OEUIntVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'unsigned int') -> "void":
        return _oeiupac.OEUIntVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OEUIntVector') -> "void":
        return _oeiupac.OEUIntVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OEUIntVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OEUIntVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OEUIntVector
    __del__ = lambda self: None
OEUIntVector_swigregister = _oeiupac.OEUIntVector_swigregister
OEUIntVector_swigregister(OEUIntVector)

class OEIntVector(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):
        this = _oeiupac.new_OEIntVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OEIntVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OEIntVector_clear(self)

    def append(self, x: 'int') -> "void":
        return _oeiupac.OEIntVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OEIntVector___nonzero__(self)

    def pop(self) -> "int":
        return _oeiupac.OEIntVector_pop(self)

    def __getitem__(self, i: 'int') -> "int":
        return _oeiupac.OEIntVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< int >":
        return _oeiupac.OEIntVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'int') -> "void":
        return _oeiupac.OEIntVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OEIntVector') -> "void":
        return _oeiupac.OEIntVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OEIntVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OEIntVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OEIntVector
    __del__ = lambda self: None
OEIntVector_swigregister = _oeiupac.OEIntVector_swigregister
OEIntVector_swigregister(OEIntVector)

class OELongVector(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):
        this = _oeiupac.new_OELongVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OELongVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OELongVector_clear(self)

    def append(self, x: 'long') -> "void":
        return _oeiupac.OELongVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OELongVector___nonzero__(self)

    def pop(self) -> "long":
        return _oeiupac.OELongVector_pop(self)

    def __getitem__(self, i: 'int') -> "long":
        return _oeiupac.OELongVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< long >":
        return _oeiupac.OELongVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'long') -> "void":
        return _oeiupac.OELongVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OELongVector') -> "void":
        return _oeiupac.OELongVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OELongVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OELongVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OELongVector
    __del__ = lambda self: None
OELongVector_swigregister = _oeiupac.OELongVector_swigregister
OELongVector_swigregister(OELongVector)

class OECharVector(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):
        this = _oeiupac.new_OECharVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OECharVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OECharVector_clear(self)

    def append(self, x: 'char') -> "void":
        return _oeiupac.OECharVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OECharVector___nonzero__(self)

    def pop(self) -> "char":
        return _oeiupac.OECharVector_pop(self)

    def __getitem__(self, i: 'int') -> "char":
        return _oeiupac.OECharVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< char >":
        return _oeiupac.OECharVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'char') -> "void":
        return _oeiupac.OECharVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OECharVector') -> "void":
        return _oeiupac.OECharVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OECharVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OECharVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OECharVector
    __del__ = lambda self: None
OECharVector_swigregister = _oeiupac.OECharVector_swigregister
OECharVector_swigregister(OECharVector)

class OEUCharVector(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):
        this = _oeiupac.new_OEUCharVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OEUCharVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OEUCharVector_clear(self)

    def append(self, x: 'unsigned char') -> "void":
        return _oeiupac.OEUCharVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OEUCharVector___nonzero__(self)

    def pop(self) -> "unsigned char":
        return _oeiupac.OEUCharVector_pop(self)

    def __getitem__(self, i: 'int') -> "unsigned char":
        return _oeiupac.OEUCharVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< unsigned char >":
        return _oeiupac.OEUCharVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'unsigned char') -> "void":
        return _oeiupac.OEUCharVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OEUCharVector') -> "void":
        return _oeiupac.OEUCharVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OEUCharVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OEUCharVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OEUCharVector
    __del__ = lambda self: None
OEUCharVector_swigregister = _oeiupac.OEUCharVector_swigregister
OEUCharVector_swigregister(OEUCharVector)

class OEFloatVector(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):
        this = _oeiupac.new_OEFloatVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OEFloatVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OEFloatVector_clear(self)

    def append(self, x: 'float') -> "void":
        return _oeiupac.OEFloatVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OEFloatVector___nonzero__(self)

    def pop(self) -> "float":
        return _oeiupac.OEFloatVector_pop(self)

    def __getitem__(self, i: 'int') -> "float":
        return _oeiupac.OEFloatVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< float >":
        return _oeiupac.OEFloatVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'float') -> "void":
        return _oeiupac.OEFloatVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OEFloatVector') -> "void":
        return _oeiupac.OEFloatVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OEFloatVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OEFloatVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OEFloatVector
    __del__ = lambda self: None
OEFloatVector_swigregister = _oeiupac.OEFloatVector_swigregister
OEFloatVector_swigregister(OEFloatVector)

class OEDoubleVector(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):
        this = _oeiupac.new_OEDoubleVector(*args)
        try:
            self.this.append(this)
        except Exception:
            self.this = this

    def __len__(self) -> "unsigned int":
        return _oeiupac.OEDoubleVector___len__(self)

    def clear(self) -> "void":
        return _oeiupac.OEDoubleVector_clear(self)

    def append(self, x: 'double') -> "void":
        return _oeiupac.OEDoubleVector_append(self, x)

    def __nonzero__(self) -> "bool":
        return _oeiupac.OEDoubleVector___nonzero__(self)

    def pop(self) -> "double":
        return _oeiupac.OEDoubleVector_pop(self)

    def __getitem__(self, i: 'int') -> "double":
        return _oeiupac.OEDoubleVector___getitem__(self, i)

    def __getslice__(self, i: 'int', j: 'int') -> "std::vector< double >":
        return _oeiupac.OEDoubleVector___getslice__(self, i, j)

    def __setitem__(self, i: 'int', x: 'double') -> "void":
        return _oeiupac.OEDoubleVector___setitem__(self, i, x)

    def __setslice__(self, i: 'int', j: 'int', v: 'OEDoubleVector') -> "void":
        return _oeiupac.OEDoubleVector___setslice__(self, i, j, v)

    def __delitem__(self, i: 'int') -> "void":
        return _oeiupac.OEDoubleVector___delitem__(self, i)

    def __delslice__(self, i: 'int', j: 'int') -> "void":
        return _oeiupac.OEDoubleVector___delslice__(self, i, j)
    __swig_destroy__ = _oeiupac.delete_OEDoubleVector
    __del__ = lambda self: None
OEDoubleVector_swigregister = _oeiupac.OEDoubleVector_swigregister
OEDoubleVector_swigregister(OEDoubleVector)


def __no_op(*args) -> "void":
    return _oeiupac.__no_op(*args)
__no_op = _oeiupac.__no_op
import openeye.oechem as oechem

_oeiupac.OENamStyle_NS_VERSION_swigconstant(_oeiupac)
OENamStyle_NS_VERSION = _oeiupac.OENamStyle_NS_VERSION

_oeiupac.OENamStyle_NS_COMMON_swigconstant(_oeiupac)
OENamStyle_NS_COMMON = _oeiupac.OENamStyle_NS_COMMON

_oeiupac.OENamStyle_NS_CAS_swigconstant(_oeiupac)
OENamStyle_NS_CAS = _oeiupac.OENamStyle_NS_CAS

_oeiupac.OENamStyle_NS_OLD_swigconstant(_oeiupac)
OENamStyle_NS_OLD = _oeiupac.OENamStyle_NS_OLD

_oeiupac.OENamStyle_NS_SYS_swigconstant(_oeiupac)
OENamStyle_NS_SYS = _oeiupac.OENamStyle_NS_SYS

_oeiupac.OENamStyle_NS_ESTER_swigconstant(_oeiupac)
OENamStyle_NS_ESTER = _oeiupac.OENamStyle_NS_ESTER

_oeiupac.OENamStyle_NS_STEREO_swigconstant(_oeiupac)
OENamStyle_NS_STEREO = _oeiupac.OENamStyle_NS_STEREO

_oeiupac.OENamStyle_NS_DASH_swigconstant(_oeiupac)
OENamStyle_NS_DASH = _oeiupac.OENamStyle_NS_DASH

_oeiupac.OENamStyle_NS_AMINE_swigconstant(_oeiupac)
OENamStyle_NS_AMINE = _oeiupac.OENamStyle_NS_AMINE

_oeiupac.OENamStyle_NS_RINGLOC_swigconstant(_oeiupac)
OENamStyle_NS_RINGLOC = _oeiupac.OENamStyle_NS_RINGLOC

_oeiupac.OENamStyle_NS_PERMIDX_swigconstant(_oeiupac)
OENamStyle_NS_PERMIDX = _oeiupac.OENamStyle_NS_PERMIDX

_oeiupac.OENamStyle_NS_IUPAC79_swigconstant(_oeiupac)
OENamStyle_NS_IUPAC79 = _oeiupac.OENamStyle_NS_IUPAC79

_oeiupac.OENamStyle_NS_IUPAC93_swigconstant(_oeiupac)
OENamStyle_NS_IUPAC93 = _oeiupac.OENamStyle_NS_IUPAC93

_oeiupac.OENamStyle_NS_AUTONOM_swigconstant(_oeiupac)
OENamStyle_NS_AUTONOM = _oeiupac.OENamStyle_NS_AUTONOM

_oeiupac.OENamStyle_NS_PSEUDOHAL_swigconstant(_oeiupac)
OENamStyle_NS_PSEUDOHAL = _oeiupac.OENamStyle_NS_PSEUDOHAL

_oeiupac.OENamStyle_NS_ACDNAME_swigconstant(_oeiupac)
OENamStyle_NS_ACDNAME = _oeiupac.OENamStyle_NS_ACDNAME

_oeiupac.OENamStyle_NS_AMMONIO_swigconstant(_oeiupac)
OENamStyle_NS_AMMONIO = _oeiupac.OENamStyle_NS_AMMONIO

_oeiupac.OENamStyle_NS_PERMIDX2_swigconstant(_oeiupac)
OENamStyle_NS_PERMIDX2 = _oeiupac.OENamStyle_NS_PERMIDX2

_oeiupac.OENamStyle_NS_1NLOC_swigconstant(_oeiupac)
OENamStyle_NS_1NLOC = _oeiupac.OENamStyle_NS_1NLOC

_oeiupac.OENamStyle_NS_FLIPENH_swigconstant(_oeiupac)
OENamStyle_NS_FLIPENH = _oeiupac.OENamStyle_NS_FLIPENH

_oeiupac.OENamStyle_NS_MAX_swigconstant(_oeiupac)
OENamStyle_NS_MAX = _oeiupac.OENamStyle_NS_MAX

_oeiupac.OECharSet_DEFAULT_swigconstant(_oeiupac)
OECharSet_DEFAULT = _oeiupac.OECharSet_DEFAULT

_oeiupac.OECharSet_ASCII_swigconstant(_oeiupac)
OECharSet_ASCII = _oeiupac.OECharSet_ASCII

_oeiupac.OECharSet_HTML_swigconstant(_oeiupac)
OECharSet_HTML = _oeiupac.OECharSet_HTML

_oeiupac.OECharSet_UTF8_swigconstant(_oeiupac)
OECharSet_UTF8 = _oeiupac.OECharSet_UTF8

_oeiupac.OECharSet_SJIS_swigconstant(_oeiupac)
OECharSet_SJIS = _oeiupac.OECharSet_SJIS

_oeiupac.OECharSet_EUCJP_swigconstant(_oeiupac)
OECharSet_EUCJP = _oeiupac.OECharSet_EUCJP

_oeiupac.OECharSet_Latin1_swigconstant(_oeiupac)
OECharSet_Latin1 = _oeiupac.OECharSet_Latin1

_oeiupac.OELanguage_ENGLISH_swigconstant(_oeiupac)
OELanguage_ENGLISH = _oeiupac.OELanguage_ENGLISH

_oeiupac.OELanguage_AMERICAN_swigconstant(_oeiupac)
OELanguage_AMERICAN = _oeiupac.OELanguage_AMERICAN

_oeiupac.OELanguage_BRITISH_swigconstant(_oeiupac)
OELanguage_BRITISH = _oeiupac.OELanguage_BRITISH

_oeiupac.OELanguage_INTERNATIONAL_swigconstant(_oeiupac)
OELanguage_INTERNATIONAL = _oeiupac.OELanguage_INTERNATIONAL

_oeiupac.OELanguage_CHINESE_swigconstant(_oeiupac)
OELanguage_CHINESE = _oeiupac.OELanguage_CHINESE

_oeiupac.OELanguage_DANISH_swigconstant(_oeiupac)
OELanguage_DANISH = _oeiupac.OELanguage_DANISH

_oeiupac.OELanguage_DUTCH_swigconstant(_oeiupac)
OELanguage_DUTCH = _oeiupac.OELanguage_DUTCH

_oeiupac.OELanguage_FRENCH_swigconstant(_oeiupac)
OELanguage_FRENCH = _oeiupac.OELanguage_FRENCH

_oeiupac.OELanguage_GERMAN_swigconstant(_oeiupac)
OELanguage_GERMAN = _oeiupac.OELanguage_GERMAN

_oeiupac.OELanguage_GREEK_swigconstant(_oeiupac)
OELanguage_GREEK = _oeiupac.OELanguage_GREEK

_oeiupac.OELanguage_HUNGARIAN_swigconstant(_oeiupac)
OELanguage_HUNGARIAN = _oeiupac.OELanguage_HUNGARIAN

_oeiupac.OELanguage_IRISH_swigconstant(_oeiupac)
OELanguage_IRISH = _oeiupac.OELanguage_IRISH

_oeiupac.OELanguage_ITALIAN_swigconstant(_oeiupac)
OELanguage_ITALIAN = _oeiupac.OELanguage_ITALIAN

_oeiupac.OELanguage_JAPANESE_swigconstant(_oeiupac)
OELanguage_JAPANESE = _oeiupac.OELanguage_JAPANESE

_oeiupac.OELanguage_POLISH_swigconstant(_oeiupac)
OELanguage_POLISH = _oeiupac.OELanguage_POLISH

_oeiupac.OELanguage_PORTUGUESE_swigconstant(_oeiupac)
OELanguage_PORTUGUESE = _oeiupac.OELanguage_PORTUGUESE

_oeiupac.OELanguage_ROMANIAN_swigconstant(_oeiupac)
OELanguage_ROMANIAN = _oeiupac.OELanguage_ROMANIAN

_oeiupac.OELanguage_RUSSIAN_swigconstant(_oeiupac)
OELanguage_RUSSIAN = _oeiupac.OELanguage_RUSSIAN

_oeiupac.OELanguage_SLOVAK_swigconstant(_oeiupac)
OELanguage_SLOVAK = _oeiupac.OELanguage_SLOVAK

_oeiupac.OELanguage_SPANISH_swigconstant(_oeiupac)
OELanguage_SPANISH = _oeiupac.OELanguage_SPANISH

_oeiupac.OELanguage_SWEDISH_swigconstant(_oeiupac)
OELanguage_SWEDISH = _oeiupac.OELanguage_SWEDISH

_oeiupac.OELanguage_WELSH_swigconstant(_oeiupac)
OELanguage_WELSH = _oeiupac.OELanguage_WELSH

def OENameLocant(loc: 'unsigned int', iupac: 'bool'=False) -> "std::string":
    """
    OENameLocant(unsigned int loc, bool iupac=False) -> std::string
    OENameLocant(unsigned int loc) -> std::string
    """
    return _oeiupac.OENameLocant(loc, iupac)

def OEParseIUPACName(mol: 'OEMolBase', name: 'char const *') -> "bool":
    """OEParseIUPACName(OEMolBase mol, char const * name) -> bool"""
    return _oeiupac.OEParseIUPACName(mol, name)

def OECreateIUPACName(*args) -> "std::string":
    """
    OECreateIUPACName(OEMolBase mol, unsigned char const * style) -> std::string
    OECreateIUPACName(OEMolBase mol) -> std::string
    """
    return _oeiupac.OECreateIUPACName(*args)

def OEGetIUPACNamStyle(style: 'std::string const &') -> "unsigned char const *":
    """OEGetIUPACNamStyle(std::string const & style) -> unsigned char const *"""
    return _oeiupac.OEGetIUPACNamStyle(style)

def OEGetCIPStereo(*args) -> "char":
    """
    OEGetCIPStereo(OEMolBase mol, OEAtomBase atm) -> char
    OEGetCIPStereo(OEMolBase mol, OEBondBase bnd) -> char
    """
    return _oeiupac.OEGetCIPStereo(*args)

def OESetCIPStereo(*args) -> "bool":
    """
    OESetCIPStereo(OEMolBase mol, OEAtomBase atm, char s) -> bool
    OESetCIPStereo(OEMolBase mol, OEBondBase bnd, char s) -> bool
    """
    return _oeiupac.OESetCIPStereo(*args)

def OECapitalizeName(ptr: 'char const *') -> "std::string":
    """OECapitalizeName(char const * ptr) -> std::string"""
    return _oeiupac.OECapitalizeName(ptr)

def OELowerCaseName(ptr: 'char const *') -> "std::string":
    """OELowerCaseName(char const * ptr) -> std::string"""
    return _oeiupac.OELowerCaseName(ptr)

def OEReorderIndexName(ptr: 'char const *') -> "std::string":
    """OEReorderIndexName(char const * ptr) -> std::string"""
    return _oeiupac.OEReorderIndexName(ptr)

def OEGetIUPACLanguage(langStr: 'std::string const &') -> "unsigned int":
    """OEGetIUPACLanguage(std::string const & langStr) -> unsigned int"""
    return _oeiupac.OEGetIUPACLanguage(langStr)

def OEFromLanguage(ptr: 'char const *', lang: 'unsigned int') -> "std::string":
    """OEFromLanguage(char const * ptr, unsigned int lang) -> std::string"""
    return _oeiupac.OEFromLanguage(ptr, lang)

def OEToLanguage(ptr: 'char const *', lang: 'unsigned int') -> "std::string":
    """OEToLanguage(char const * ptr, unsigned int lang) -> std::string"""
    return _oeiupac.OEToLanguage(ptr, lang)

def OEToBritish(ptr: 'char const *', sulph: 'bool') -> "std::string":
    """OEToBritish(char const * ptr, bool sulph) -> std::string"""
    return _oeiupac.OEToBritish(ptr, sulph)

def OEToChinese(ptr: 'char const *') -> "std::string":
    """OEToChinese(char const * ptr) -> std::string"""
    return _oeiupac.OEToChinese(ptr)

def OEToDanish(ptr: 'char const *') -> "std::string":
    """OEToDanish(char const * ptr) -> std::string"""
    return _oeiupac.OEToDanish(ptr)

def OEToDutch(ptr: 'char const *') -> "std::string":
    """OEToDutch(char const * ptr) -> std::string"""
    return _oeiupac.OEToDutch(ptr)

def OEToFrench(ptr: 'char const *') -> "std::string":
    """OEToFrench(char const * ptr) -> std::string"""
    return _oeiupac.OEToFrench(ptr)

def OEToGerman(ptr: 'char const *') -> "std::string":
    """OEToGerman(char const * ptr) -> std::string"""
    return _oeiupac.OEToGerman(ptr)

def OEToGreek(ptr: 'char const *') -> "std::string":
    """OEToGreek(char const * ptr) -> std::string"""
    return _oeiupac.OEToGreek(ptr)

def OEToHungarian(ptr: 'char const *') -> "std::string":
    """OEToHungarian(char const * ptr) -> std::string"""
    return _oeiupac.OEToHungarian(ptr)

def OEToIrish(ptr: 'char const *') -> "std::string":
    """OEToIrish(char const * ptr) -> std::string"""
    return _oeiupac.OEToIrish(ptr)

def OEToItalian(ptr: 'char const *') -> "std::string":
    """OEToItalian(char const * ptr) -> std::string"""
    return _oeiupac.OEToItalian(ptr)

def OEToJapanese(ptr: 'char const *') -> "std::string":
    """OEToJapanese(char const * ptr) -> std::string"""
    return _oeiupac.OEToJapanese(ptr)

def OEToPolish(ptr: 'char const *') -> "std::string":
    """OEToPolish(char const * ptr) -> std::string"""
    return _oeiupac.OEToPolish(ptr)

def OEToPortuguese(ptr: 'char const *') -> "std::string":
    """OEToPortuguese(char const * ptr) -> std::string"""
    return _oeiupac.OEToPortuguese(ptr)

def OEToRomanian(ptr: 'char const *') -> "std::string":
    """OEToRomanian(char const * ptr) -> std::string"""
    return _oeiupac.OEToRomanian(ptr)

def OEToRussian(ptr: 'char const *') -> "std::string":
    """OEToRussian(char const * ptr) -> std::string"""
    return _oeiupac.OEToRussian(ptr)

def OEToSlovak(ptr: 'char const *') -> "std::string":
    """OEToSlovak(char const * ptr) -> std::string"""
    return _oeiupac.OEToSlovak(ptr)

def OEToSpanish(ptr: 'char const *') -> "std::string":
    """OEToSpanish(char const * ptr) -> std::string"""
    return _oeiupac.OEToSpanish(ptr)

def OEToSwedish(ptr: 'char const *') -> "std::string":
    """OEToSwedish(char const * ptr) -> std::string"""
    return _oeiupac.OEToSwedish(ptr)

def OEToWelsh(ptr: 'char const *') -> "std::string":
    """OEToWelsh(char const * ptr) -> std::string"""
    return _oeiupac.OEToWelsh(ptr)

def OEFromBritish(ptr: 'char const *') -> "std::string":
    """OEFromBritish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromBritish(ptr)

def OEFromChinese(ptr: 'char const *') -> "std::string":
    """OEFromChinese(char const * ptr) -> std::string"""
    return _oeiupac.OEFromChinese(ptr)

def OEFromDanish(ptr: 'char const *') -> "std::string":
    """OEFromDanish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromDanish(ptr)

def OEFromDutch(ptr: 'char const *') -> "std::string":
    """OEFromDutch(char const * ptr) -> std::string"""
    return _oeiupac.OEFromDutch(ptr)

def OEFromFrench(ptr: 'char const *') -> "std::string":
    """OEFromFrench(char const * ptr) -> std::string"""
    return _oeiupac.OEFromFrench(ptr)

def OEFromGerman(ptr: 'char const *') -> "std::string":
    """OEFromGerman(char const * ptr) -> std::string"""
    return _oeiupac.OEFromGerman(ptr)

def OEFromGreek(ptr: 'char const *') -> "std::string":
    """OEFromGreek(char const * ptr) -> std::string"""
    return _oeiupac.OEFromGreek(ptr)

def OEFromHungarian(ptr: 'char const *') -> "std::string":
    """OEFromHungarian(char const * ptr) -> std::string"""
    return _oeiupac.OEFromHungarian(ptr)

def OEFromIrish(ptr: 'char const *') -> "std::string":
    """OEFromIrish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromIrish(ptr)

def OEFromItalian(ptr: 'char const *') -> "std::string":
    """OEFromItalian(char const * ptr) -> std::string"""
    return _oeiupac.OEFromItalian(ptr)

def OEFromJapanese(ptr: 'char const *') -> "std::string":
    """OEFromJapanese(char const * ptr) -> std::string"""
    return _oeiupac.OEFromJapanese(ptr)

def OEFromPolish(ptr: 'char const *') -> "std::string":
    """OEFromPolish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromPolish(ptr)

def OEFromPortuguese(ptr: 'char const *') -> "std::string":
    """OEFromPortuguese(char const * ptr) -> std::string"""
    return _oeiupac.OEFromPortuguese(ptr)

def OEFromRomanian(ptr: 'char const *') -> "std::string":
    """OEFromRomanian(char const * ptr) -> std::string"""
    return _oeiupac.OEFromRomanian(ptr)

def OEFromRussian(ptr: 'char const *') -> "std::string":
    """OEFromRussian(char const * ptr) -> std::string"""
    return _oeiupac.OEFromRussian(ptr)

def OEFromSlovak(ptr: 'char const *') -> "std::string":
    """OEFromSlovak(char const * ptr) -> std::string"""
    return _oeiupac.OEFromSlovak(ptr)

def OEFromSpanish(ptr: 'char const *') -> "std::string":
    """OEFromSpanish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromSpanish(ptr)

def OEFromSwedish(ptr: 'char const *') -> "std::string":
    """OEFromSwedish(char const * ptr) -> std::string"""
    return _oeiupac.OEFromSwedish(ptr)

def OEFromWelsh(ptr: 'char const *') -> "std::string":
    """OEFromWelsh(char const * ptr) -> std::string"""
    return _oeiupac.OEFromWelsh(ptr)

def OEGetIUPACCharSet(charset: 'std::string const &') -> "unsigned int":
    """OEGetIUPACCharSet(std::string const & charset) -> unsigned int"""
    return _oeiupac.OEGetIUPACCharSet(charset)

def OEToASCII(ptr: 'char const *', remove_markup: 'bool const'=True) -> "std::string":
    """
    OEToASCII(char const * ptr, bool const remove_markup=True) -> std::string
    OEToASCII(char const * ptr) -> std::string
    """
    return _oeiupac.OEToASCII(ptr, remove_markup)

def OEToUTF8(ptr: 'char const *', remove_markup: 'bool const'=True) -> "std::string":
    """
    OEToUTF8(char const * ptr, bool const remove_markup=True) -> std::string
    OEToUTF8(char const * ptr) -> std::string
    """
    return _oeiupac.OEToUTF8(ptr, remove_markup)

def OEFromUTF8(ptr: 'char const *') -> "std::string":
    """OEFromUTF8(char const * ptr) -> std::string"""
    return _oeiupac.OEFromUTF8(ptr)

def OEToHTML(ptr: 'char const *') -> "std::string":
    """OEToHTML(char const * ptr) -> std::string"""
    return _oeiupac.OEToHTML(ptr)

def OEFromHTML(ptr: 'char const *') -> "std::string":
    """OEFromHTML(char const * ptr) -> std::string"""
    return _oeiupac.OEFromHTML(ptr)

def OEToSJIS(ptr: 'char const *') -> "std::string":
    """OEToSJIS(char const * ptr) -> std::string"""
    return _oeiupac.OEToSJIS(ptr)

def OEToEUCJP(ptr: 'char const *') -> "std::string":
    """OEToEUCJP(char const * ptr) -> std::string"""
    return _oeiupac.OEToEUCJP(ptr)

def OEFromKOI8R(ptr: 'char const *') -> "std::string":
    """OEFromKOI8R(char const * ptr) -> std::string"""
    return _oeiupac.OEFromKOI8R(ptr)

_oeiupac.OE_OEIUPAC_VERSION_swigconstant(_oeiupac)
OE_OEIUPAC_VERSION = _oeiupac.OE_OEIUPAC_VERSION

def OEIUPACGetRelease() -> "char const *":
    """OEIUPACGetRelease() -> char const *"""
    return _oeiupac.OEIUPACGetRelease()

def OEIUPACGetVersion() -> "unsigned int":
    """OEIUPACGetVersion() -> unsigned int"""
    return _oeiupac.OEIUPACGetVersion()

def OEIUPACGetArch() -> "char const *":
    """OEIUPACGetArch() -> char const *"""
    return _oeiupac.OEIUPACGetArch()

def OEIUPACGetPlatform() -> "char const *":
    """OEIUPACGetPlatform() -> char const *"""
    return _oeiupac.OEIUPACGetPlatform()

def OEIUPACIsLicensed(feature: 'char const *'=None, expdate: 'unsigned int *'=None) -> "bool":
    """
    OEIUPACIsLicensed(char const * feature=None, unsigned int * expdate=None) -> bool
    OEIUPACIsLicensed(char const * feature=None) -> bool
    OEIUPACIsLicensed() -> bool
    """
    return _oeiupac.OEIUPACIsLicensed(feature, expdate)

def OEIUPACGetLicensee(*args) -> "std::string":
    """
    OEIUPACGetLicensee(std::string & licensee) -> bool
    OEIUPACGetLicensee() -> std::string
    """
    return _oeiupac.OEIUPACGetLicensee(*args)

def OEIUPACGetSite(*args) -> "std::string":
    """
    OEIUPACGetSite(std::string & site) -> bool
    OEIUPACGetSite() -> std::string
    """
    return _oeiupac.OEIUPACGetSite(*args)

cvar = _oeiupac.cvar
OENamStyleOpenEye = cvar.OENamStyleOpenEye
OENamStyleTraditional = cvar.OENamStyleTraditional
OENamStyleSystematic = cvar.OENamStyleSystematic
OENamStyleIUPAC = cvar.OENamStyleIUPAC
OENamStyleCAS = cvar.OENamStyleCAS
OENamStyleCASIndex = cvar.OENamStyleCASIndex
OENamStyleAutoNom = cvar.OENamStyleAutoNom
OENamStyleIUPAC79 = cvar.OENamStyleIUPAC79
OENamStyleIUPAC93 = cvar.OENamStyleIUPAC93
OENamStyleACDName = cvar.OENamStyleACDName

