# CONFIDENTIAL. (C) 2022 Cadence Design Systems, Inc. (Cadence)
# All rights reserved.
# ALL SOFTWARE BELOW IS PROPRIETARY AND CONFIDENTIAL TO CADENCE
# AND IS SUBJECT TO THE FULL PROTECTION OF COPYRIGHT AND TRADE SECRET LAW.
# Copying or modifying this software is strictly prohibited and illegal.
# Using this software without a valid license from Cadence 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 Cadence at eyesopen.com/legal if you have any questions
# about this warning.


# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# 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
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")


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

    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('_oeiupac2811')
    return _oeiupac

_oeiupac = swig_import_helper()
del swig_import_helper

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import weakref


def __no_op(*args) -> "void":
    return _oeiupac.__no_op(*args)
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":
    r"""OENameLocant(unsigned int loc, bool iupac=False) -> std::string"""
    return _oeiupac.OENameLocant(loc, iupac)

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

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

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

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

def OESetCIPStereo(*args) -> "bool":
    r"""
    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":
    r"""OECapitalizeName(char const * ptr) -> std::string"""
    return _oeiupac.OECapitalizeName(ptr)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

def OEIUPACGetSite(*args) -> "std::string":
    r"""
    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

