# 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.12
#
# 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 as _swig_python_version_info

def swig_import_helper():
    from os.path import dirname
    import importlib.util

    spec = importlib.machinery.PathFinder().find_spec("_oechem", [dirname(__file__)])

    if spec is None:
        # OpenEye Import Statements
        spec = importlib.machinery.PathFinder().find_spec("libs",[dirname(__file__)])
    libs = importlib.util.module_from_spec(spec)

    import sys
    sys.modules[spec.name] = libs
    spec.loader.exec_module(libs)

    assert not sys.platform.startswith('win')

    _oeiupac = libs.OEGetModule('_oeiupac2715')
    return _oeiupac

_oeiupac = swig_import_helper()
del swig_import_helper
del _swig_python_version_info

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        object.__setattr__(self, name, value)
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


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


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


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


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


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



def __no_op(*args) -> "void":
    return _oeiupac.__no_op(*args)
__no_op = _oeiupac.__no_op
import openeye.oechem as oechem
OENamStyle_NS_VERSION = _oeiupac.OENamStyle_NS_VERSION
OENamStyle_NS_COMMON = _oeiupac.OENamStyle_NS_COMMON
OENamStyle_NS_CAS = _oeiupac.OENamStyle_NS_CAS
OENamStyle_NS_OLD = _oeiupac.OENamStyle_NS_OLD
OENamStyle_NS_SYS = _oeiupac.OENamStyle_NS_SYS
OENamStyle_NS_ESTER = _oeiupac.OENamStyle_NS_ESTER
OENamStyle_NS_STEREO = _oeiupac.OENamStyle_NS_STEREO
OENamStyle_NS_DASH = _oeiupac.OENamStyle_NS_DASH
OENamStyle_NS_AMINE = _oeiupac.OENamStyle_NS_AMINE
OENamStyle_NS_RINGLOC = _oeiupac.OENamStyle_NS_RINGLOC
OENamStyle_NS_PERMIDX = _oeiupac.OENamStyle_NS_PERMIDX
OENamStyle_NS_IUPAC79 = _oeiupac.OENamStyle_NS_IUPAC79
OENamStyle_NS_IUPAC93 = _oeiupac.OENamStyle_NS_IUPAC93
OENamStyle_NS_AUTONOM = _oeiupac.OENamStyle_NS_AUTONOM
OENamStyle_NS_PSEUDOHAL = _oeiupac.OENamStyle_NS_PSEUDOHAL
OENamStyle_NS_ACDNAME = _oeiupac.OENamStyle_NS_ACDNAME
OENamStyle_NS_AMMONIO = _oeiupac.OENamStyle_NS_AMMONIO
OENamStyle_NS_PERMIDX2 = _oeiupac.OENamStyle_NS_PERMIDX2
OENamStyle_NS_1NLOC = _oeiupac.OENamStyle_NS_1NLOC
OENamStyle_NS_FLIPENH = _oeiupac.OENamStyle_NS_FLIPENH
OENamStyle_NS_MAX = _oeiupac.OENamStyle_NS_MAX
OECharSet_DEFAULT = _oeiupac.OECharSet_DEFAULT
OECharSet_ASCII = _oeiupac.OECharSet_ASCII
OECharSet_HTML = _oeiupac.OECharSet_HTML
OECharSet_UTF8 = _oeiupac.OECharSet_UTF8
OECharSet_SJIS = _oeiupac.OECharSet_SJIS
OECharSet_EUCJP = _oeiupac.OECharSet_EUCJP
OECharSet_Latin1 = _oeiupac.OECharSet_Latin1
OELanguage_ENGLISH = _oeiupac.OELanguage_ENGLISH
OELanguage_AMERICAN = _oeiupac.OELanguage_AMERICAN
OELanguage_BRITISH = _oeiupac.OELanguage_BRITISH
OELanguage_INTERNATIONAL = _oeiupac.OELanguage_INTERNATIONAL
OELanguage_CHINESE = _oeiupac.OELanguage_CHINESE
OELanguage_DANISH = _oeiupac.OELanguage_DANISH
OELanguage_DUTCH = _oeiupac.OELanguage_DUTCH
OELanguage_FRENCH = _oeiupac.OELanguage_FRENCH
OELanguage_GERMAN = _oeiupac.OELanguage_GERMAN
OELanguage_GREEK = _oeiupac.OELanguage_GREEK
OELanguage_HUNGARIAN = _oeiupac.OELanguage_HUNGARIAN
OELanguage_IRISH = _oeiupac.OELanguage_IRISH
OELanguage_ITALIAN = _oeiupac.OELanguage_ITALIAN
OELanguage_JAPANESE = _oeiupac.OELanguage_JAPANESE
OELanguage_POLISH = _oeiupac.OELanguage_POLISH
OELanguage_PORTUGUESE = _oeiupac.OELanguage_PORTUGUESE
OELanguage_ROMANIAN = _oeiupac.OELanguage_ROMANIAN
OELanguage_RUSSIAN = _oeiupac.OELanguage_RUSSIAN
OELanguage_SLOVAK = _oeiupac.OELanguage_SLOVAK
OELanguage_SPANISH = _oeiupac.OELanguage_SPANISH
OELanguage_SWEDISH = _oeiupac.OELanguage_SWEDISH
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)
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

