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

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

    _oeomega = libs.OEGetModule('_oeomega4111')
    return _oeomega

_oeomega = 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 SwigNumber_Check(o: "PyObject *") -> "double":
    return _oeomega.SwigNumber_Check(o)

def SwigNumber_AsDouble(o: "PyObject *") -> "double":
    return _oeomega.SwigNumber_AsDouble(o)

def no_op(*args) -> "void":
    return _oeomega.no_op(*args)
import openeye.oechem as oechem
OEOmegaReturnCode_Success = _oeomega.OEOmegaReturnCode_Success

OEOmegaReturnCode_InvalidOptions = _oeomega.OEOmegaReturnCode_InvalidOptions

OEOmegaReturnCode_No3DFromCT = _oeomega.OEOmegaReturnCode_No3DFromCT

OEOmegaReturnCode_TooManyRotors = _oeomega.OEOmegaReturnCode_TooManyRotors

OEOmegaReturnCode_UnspecifiedStereo = _oeomega.OEOmegaReturnCode_UnspecifiedStereo

OEOmegaReturnCode_ExplicitHydrogens = _oeomega.OEOmegaReturnCode_ExplicitHydrogens

OEOmegaReturnCode_MissingFFParams = _oeomega.OEOmegaReturnCode_MissingFFParams

OEOmegaReturnCode_FailedCTBuild = _oeomega.OEOmegaReturnCode_FailedCTBuild

OEOmegaReturnCode_FailedTorDrive = _oeomega.OEOmegaReturnCode_FailedTorDrive

OEOmegaReturnCode_ExceedsAtomDegree4 = _oeomega.OEOmegaReturnCode_ExceedsAtomDegree4

OEOmegaReturnCode_FailedDupSetup = _oeomega.OEOmegaReturnCode_FailedDupSetup

OEOmegaReturnCode_FailedDGConfGen = _oeomega.OEOmegaReturnCode_FailedDGConfGen

OEOmegaReturnCode_FailedTorAssign = _oeomega.OEOmegaReturnCode_FailedTorAssign

OEOmegaReturnCode_FailedSmartMatch = _oeomega.OEOmegaReturnCode_FailedSmartMatch

OEOmegaReturnCode_FailedFixMatch = _oeomega.OEOmegaReturnCode_FailedFixMatch

OEOmegaReturnCode_NoFixedFragment = _oeomega.OEOmegaReturnCode_NoFixedFragment

OEOmegaReturnCode_NoValidConfs = _oeomega.OEOmegaReturnCode_NoValidConfs

OEOmegaReturnCode_No3DTorDrive = _oeomega.OEOmegaReturnCode_No3DTorDrive

OEOmegaReturnCode_Failed = _oeomega.OEOmegaReturnCode_Failed

OEOmegaForceFieldType_MMFF = _oeomega.OEOmegaForceFieldType_MMFF

OEOmegaForceFieldType_MMFF_NOESTAT = _oeomega.OEOmegaForceFieldType_MMFF_NOESTAT

OEOmegaForceFieldType_MMFF_TRUNC = _oeomega.OEOmegaForceFieldType_MMFF_TRUNC

OEOmegaForceFieldType_MMFF_SHEFF = _oeomega.OEOmegaForceFieldType_MMFF_SHEFF

OEOmegaForceFieldType_MMFF94S = _oeomega.OEOmegaForceFieldType_MMFF94S

OEOmegaForceFieldType_MMFF94S_NOESTAT = _oeomega.OEOmegaForceFieldType_MMFF94S_NOESTAT

OEOmegaForceFieldType_MMFF94S_TRUNC = _oeomega.OEOmegaForceFieldType_MMFF94S_TRUNC

OEOmegaForceFieldType_MMFF94S_SHEFF = _oeomega.OEOmegaForceFieldType_MMFF94S_SHEFF

OEOmegaForceFieldType_MMFF94Smod = _oeomega.OEOmegaForceFieldType_MMFF94Smod

OEOmegaForceFieldType_MMFF94Smod_NOESTAT = _oeomega.OEOmegaForceFieldType_MMFF94Smod_NOESTAT

OEOmegaForceFieldType_MMFF94Smod_TRUNC = _oeomega.OEOmegaForceFieldType_MMFF94Smod_TRUNC

OEOmegaForceFieldType_MMFF94Smod_SHEFF = _oeomega.OEOmegaForceFieldType_MMFF94Smod_SHEFF

OENitrogenEnumeration_Off = _oeomega.OENitrogenEnumeration_Off

OENitrogenEnumeration_All = _oeomega.OENitrogenEnumeration_All

OENitrogenEnumeration_Unspecified = _oeomega.OENitrogenEnumeration_Unspecified

OEOmegaSampling_Sparse = _oeomega.OEOmegaSampling_Sparse

OEOmegaSampling_Classic = _oeomega.OEOmegaSampling_Classic

OEOmegaSampling_Dense = _oeomega.OEOmegaSampling_Dense

OEOmegaSampling_Pose = _oeomega.OEOmegaSampling_Pose

OEOmegaSampling_ROCS = _oeomega.OEOmegaSampling_ROCS

OEOmegaSampling_FastROCS = _oeomega.OEOmegaSampling_FastROCS

OESliceEnsembleDefaults_RMS = _oeomega.OESliceEnsembleDefaults_RMS

OESliceEnsembleDefaults_EWindow = _oeomega.OESliceEnsembleDefaults_EWindow

OESliceEnsembleDefaults_MaxConfs = _oeomega.OESliceEnsembleDefaults_MaxConfs

OETorLibType_Original = _oeomega.OETorLibType_Original

OETorLibType_GubaV21 = _oeomega.OETorLibType_GubaV21


OETorLibType_Default = OETorLibType_Original

OEFragBuilderMode_Fast = _oeomega.OEFragBuilderMode_Fast

OEFragBuilderMode_Strict = _oeomega.OEFragBuilderMode_Strict

OEFragBuilderMode_Dense = _oeomega.OEFragBuilderMode_Dense


OEFragBuilderMode_Default = OEFragBuilderMode_Fast

class OEFragOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEFragOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFragOptions self) -> OEFragOptions
        __init__(OEFragOptions self, OEFragOptions arg2) -> OEFragOptions
        """
        _oeomega.OEFragOptions_swiginit(self, _oeomega.new_OEFragOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEFragOptions

    def GetEnergyWindow(self) -> "double":
        r"""GetEnergyWindow(OEFragOptions self) -> double"""
        return _oeomega.OEFragOptions_GetEnergyWindow(self)

    def SetEnergyWindow(self, value: "double const") -> "bool":
        r"""SetEnergyWindow(OEFragOptions self, double const value) -> bool"""
        return _oeomega.OEFragOptions_SetEnergyWindow(self, value)

    def GetRMS(self) -> "double":
        r"""GetRMS(OEFragOptions self) -> double"""
        return _oeomega.OEFragOptions_GetRMS(self)

    def SetRMS(self, value: "double const") -> "bool":
        r"""SetRMS(OEFragOptions self, double const value) -> bool"""
        return _oeomega.OEFragOptions_SetRMS(self, value)

    def GetTimeLimit(self) -> "double":
        r"""GetTimeLimit(OEFragOptions self) -> double"""
        return _oeomega.OEFragOptions_GetTimeLimit(self)

    def SetTimeLimit(self, value: "double const") -> "bool":
        r"""SetTimeLimit(OEFragOptions self, double const value) -> bool"""
        return _oeomega.OEFragOptions_SetTimeLimit(self, value)

    def GetFragGen(self) -> "unsigned int":
        r"""GetFragGen(OEFragOptions self) -> unsigned int"""
        return _oeomega.OEFragOptions_GetFragGen(self)

    def SetFragGen(self, value: "unsigned int const") -> "bool":
        r"""SetFragGen(OEFragOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEFragOptions_SetFragGen(self, value)

    def GetFragKeep(self) -> "unsigned int":
        r"""GetFragKeep(OEFragOptions self) -> unsigned int"""
        return _oeomega.OEFragOptions_GetFragKeep(self)

    def SetFragKeep(self, value: "unsigned int const") -> "bool":
        r"""SetFragKeep(OEFragOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEFragOptions_SetFragKeep(self, value)

    def CreateCopy(self) -> "OEConfGen::OEFragOptions *":
        r"""CreateCopy(OEFragOptions self) -> OEFragOptions"""
        return _oeomega.OEFragOptions_CreateCopy(self)

# Register OEFragOptions in _oeomega:
_oeomega.OEFragOptions_swigregister(OEFragOptions)

class OERingFragOptions(OEFragOptions):
    r"""Proxy of C++ OEConfGen::OERingFragOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OERingFragOptions self) -> OERingFragOptions
        __init__(OERingFragOptions self, OERingFragOptions arg2) -> OERingFragOptions
        """
        _oeomega.OERingFragOptions_swiginit(self, _oeomega.new_OERingFragOptions(*args))
    __swig_destroy__ = _oeomega.delete_OERingFragOptions

    def GetStartFactor(self) -> "unsigned int":
        r"""GetStartFactor(OERingFragOptions self) -> unsigned int"""
        return _oeomega.OERingFragOptions_GetStartFactor(self)

    def SetStartFactor(self, value: "unsigned int const") -> "bool":
        r"""SetStartFactor(OERingFragOptions self, unsigned int const value) -> bool"""
        return _oeomega.OERingFragOptions_SetStartFactor(self, value)

    def CreateCopy(self) -> "OEConfGen::OERingFragOptions *":
        r"""CreateCopy(OERingFragOptions self) -> OERingFragOptions"""
        return _oeomega.OERingFragOptions_CreateCopy(self)

# Register OERingFragOptions in _oeomega:
_oeomega.OERingFragOptions_swigregister(OERingFragOptions)

class OEFragBuilderOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEFragBuilderOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFragBuilderOptions self, unsigned int const argMode=) -> OEFragBuilderOptions
        __init__(OEFragBuilderOptions self, OEFragBuilderOptions arg2) -> OEFragBuilderOptions
        """
        _oeomega.OEFragBuilderOptions_swiginit(self, _oeomega.new_OEFragBuilderOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEFragBuilderOptions

    def GetForceField(self) -> "OEMolPotential::OEForceField const *":
        r"""GetForceField(OEFragBuilderOptions self) -> OEMolPotential::OEForceField const *"""
        return _oeomega.OEFragBuilderOptions_GetForceField(self)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OEFragBuilderOptions self) -> unsigned int"""
        return _oeomega.OEFragBuilderOptions_GetForceFieldType(self)

    def SetForceField(self, *args) -> "bool":
        r"""
        SetForceField(OEFragBuilderOptions self, unsigned int const value) -> bool
        SetForceField(OEFragBuilderOptions self, std::string const & value) -> bool
        SetForceField(OEFragBuilderOptions self, OEMolPotential::OEForceField const & value) -> bool
        """
        return _oeomega.OEFragBuilderOptions_SetForceField(self, *args)

    def SetNonRingOptions(self, opts: "OEFragOptions") -> "void":
        r"""SetNonRingOptions(OEFragBuilderOptions self, OEFragOptions opts)"""
        return _oeomega.OEFragBuilderOptions_SetNonRingOptions(self, opts)

    def GetNonRingOptions(self, *args) -> "OEConfGen::OEFragOptions const &":
        r"""
        GetNonRingOptions(OEFragBuilderOptions self) -> OEFragOptions
        GetNonRingOptions(OEFragBuilderOptions self) -> OEFragOptions
        """
        return _oeomega.OEFragBuilderOptions_GetNonRingOptions(self, *args)

    def SetRingOptions(self, opts: "OERingFragOptions") -> "void":
        r"""SetRingOptions(OEFragBuilderOptions self, OERingFragOptions opts)"""
        return _oeomega.OEFragBuilderOptions_SetRingOptions(self, opts)

    def GetRingOptions(self, *args) -> "OEConfGen::OERingFragOptions const &":
        r"""
        GetRingOptions(OEFragBuilderOptions self) -> OERingFragOptions
        GetRingOptions(OEFragBuilderOptions self) -> OERingFragOptions
        """
        return _oeomega.OEFragBuilderOptions_GetRingOptions(self, *args)

    def SetMacroCycOptions(self, opts: "OEFragOptions") -> "void":
        r"""SetMacroCycOptions(OEFragBuilderOptions self, OEFragOptions opts)"""
        return _oeomega.OEFragBuilderOptions_SetMacroCycOptions(self, opts)

    def GetMacroCycOptions(self, *args) -> "OEConfGen::OEFragOptions const &":
        r"""
        GetMacroCycOptions(OEFragBuilderOptions self) -> OEFragOptions
        GetMacroCycOptions(OEFragBuilderOptions self) -> OEFragOptions
        """
        return _oeomega.OEFragBuilderOptions_GetMacroCycOptions(self, *args)

    def CreateCopy(self) -> "OEConfGen::OEFragBuilderOptions *":
        r"""CreateCopy(OEFragBuilderOptions self) -> OEFragBuilderOptions"""
        return _oeomega.OEFragBuilderOptions_CreateCopy(self)

# Register OEFragBuilderOptions in _oeomega:
_oeomega.OEFragBuilderOptions_swigregister(OEFragBuilderOptions)

class OEMolBuilderOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEMolBuilderOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMolBuilderOptions self) -> OEMolBuilderOptions
        __init__(OEMolBuilderOptions self, OEMolBuilderOptions arg2) -> OEMolBuilderOptions
        """
        _oeomega.OEMolBuilderOptions_swiginit(self, _oeomega.new_OEMolBuilderOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEMolBuilderOptions

    def GetCanonOrder(self) -> "bool":
        r"""GetCanonOrder(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetCanonOrder(self)

    def SetCanonOrder(self, value: "bool const") -> "bool":
        r"""SetCanonOrder(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetCanonOrder(self, value)

    def GetUseFragLib(self) -> "bool":
        r"""GetUseFragLib(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetUseFragLib(self)

    def SetUseFragLib(self, value: "bool const") -> "bool":
        r"""SetUseFragLib(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetUseFragLib(self, value)

    def GetFromCT(self) -> "bool":
        r"""GetFromCT(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetFromCT(self)

    def SetFromCT(self, value: "bool const") -> "bool":
        r"""SetFromCT(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetFromCT(self, value)

    def GetStrictAtomTypes(self) -> "bool":
        r"""GetStrictAtomTypes(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetStrictAtomTypes(self)

    def SetStrictAtomTypes(self, value: "bool const") -> "bool":
        r"""SetStrictAtomTypes(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetStrictAtomTypes(self, value)

    def GetEnumRing(self) -> "bool":
        r"""GetEnumRing(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetEnumRing(self)

    def SetEnumRing(self, value: "bool const") -> "bool":
        r"""SetEnumRing(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetEnumRing(self, value)

    def GetSampleHydrogens(self) -> "bool":
        r"""GetSampleHydrogens(OEMolBuilderOptions self) -> bool"""
        return _oeomega.OEMolBuilderOptions_GetSampleHydrogens(self)

    def SetSampleHydrogens(self, value: "bool const") -> "bool":
        r"""SetSampleHydrogens(OEMolBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetSampleHydrogens(self, value)

    def GetEnumNitrogen(self) -> "unsigned int":
        r"""GetEnumNitrogen(OEMolBuilderOptions self) -> unsigned int"""
        return _oeomega.OEMolBuilderOptions_GetEnumNitrogen(self)

    def SetEnumNitrogen(self, value: "unsigned int const") -> "bool":
        r"""SetEnumNitrogen(OEMolBuilderOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEMolBuilderOptions_SetEnumNitrogen(self, value)

    def SetFragBuilderOptions(self, opts: "OEFragBuilderOptions") -> "void":
        r"""SetFragBuilderOptions(OEMolBuilderOptions self, OEFragBuilderOptions opts)"""
        return _oeomega.OEMolBuilderOptions_SetFragBuilderOptions(self, opts)

    def GetFragBuilderOptions(self, *args) -> "OEConfGen::OEFragBuilderOptions const &":
        r"""
        GetFragBuilderOptions(OEMolBuilderOptions self) -> OEFragBuilderOptions
        GetFragBuilderOptions(OEMolBuilderOptions self) -> OEFragBuilderOptions
        """
        return _oeomega.OEMolBuilderOptions_GetFragBuilderOptions(self, *args)

    def CreateCopy(self) -> "OEConfGen::OEMolBuilderOptions *":
        r"""CreateCopy(OEMolBuilderOptions self) -> OEMolBuilderOptions"""
        return _oeomega.OEMolBuilderOptions_CreateCopy(self)

# Register OEMolBuilderOptions in _oeomega:
_oeomega.OEMolBuilderOptions_swigregister(OEMolBuilderOptions)

class OETorLib(object):
    r"""Proxy of C++ OEConfGen::OETorLib class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorLib self, unsigned int type=) -> OETorLib
        __init__(OETorLib self, OETorLib arg2) -> OETorLib
        """
        _oeomega.OETorLib_swiginit(self, _oeomega.new_OETorLib(*args))
    __swig_destroy__ = _oeomega.delete_OETorLib

    def GetTorRules(self) -> "OESystem::OEIterBase< OEChem::OESubSearch > *":
        r"""GetTorRules(OETorLib self) -> OESystem::OEIterBase< OEChem::OESubSearch > *"""
        return _oeomega.OETorLib_GetTorRules(self)

    def GetTorRule(self, mol: "OEMolBase", bond: "OEBondBase") -> "OEChem::OESubSearch const *":
        r"""GetTorRule(OETorLib self, OEMolBase mol, OEBondBase bond) -> OESubSearch"""
        return _oeomega.OETorLib_GetTorRule(self, mol, bond)

    def HasTorRule(self, mol: "OEMolBase", bond: "OEBondBase") -> "bool":
        r"""HasTorRule(OETorLib self, OEMolBase mol, OEBondBase bond) -> bool"""
        return _oeomega.OETorLib_HasTorRule(self, mol, bond)

    def IsValid(self):
      return _oeomega.OETorLib___nonzero__(self)



    def ClearTorsionLibrary(self) -> "void":
        r"""ClearTorsionLibrary(OETorLib self)"""
        return _oeomega.OETorLib_ClearTorsionLibrary(self)

    def ResetTorsionLibrary(self) -> "bool":
        r"""ResetTorsionLibrary(OETorLib self) -> bool"""
        return _oeomega.OETorLib_ResetTorsionLibrary(self)

    def SetTorsionLibrary(self, *args) -> "bool":
        r"""
        SetTorsionLibrary(OETorLib self, unsigned int type) -> bool
        SetTorsionLibrary(OETorLib self, std::string const & arg2) -> bool
        SetTorsionLibrary(OETorLib self, oeistream arg2) -> bool
        """
        return _oeomega.OETorLib_SetTorsionLibrary(self, *args)

    def AddTorsionLibrary(self, *args) -> "bool":
        r"""
        AddTorsionLibrary(OETorLib self, std::string const & arg2) -> bool
        AddTorsionLibrary(OETorLib self, oeistream arg2) -> bool
        """
        return _oeomega.OETorLib_AddTorsionLibrary(self, *args)

    def AddTorsionRule(self, *args) -> "bool":
        r"""
        AddTorsionRule(OETorLib self, OEQMolBase qmol, OEIntVector degrees) -> bool
        AddTorsionRule(OETorLib self, std::string const & arg2) -> bool
        """
        return _oeomega.OETorLib_AddTorsionRule(self, *args)

    def CreateCopy(self) -> "OEConfGen::OETorLib *":
        r"""CreateCopy(OETorLib self) -> OETorLib"""
        return _oeomega.OETorLib_CreateCopy(self)

# Register OETorLib in _oeomega:
_oeomega.OETorLib_swigregister(OETorLib)

class OETorLibParameter(object):
    r"""Proxy of C++ OEConfGen::OETorLibParameter class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorLibParameter self, std::string const & name) -> OETorLibParameter
        __init__(OETorLibParameter self) -> OETorLibParameter
        __init__(OETorLibParameter self, OETorLibParameter arg2) -> OETorLibParameter
        """
        _oeomega.OETorLibParameter_swiginit(self, _oeomega.new_OETorLibParameter(*args))
    __swig_destroy__ = _oeomega.delete_OETorLibParameter

    def CreateCopy(self) -> "OESystem::OEParameter *":
        r"""CreateCopy(OETorLibParameter self) -> OEParameter"""
        return _oeomega.OETorLibParameter_CreateCopy(self)

# Register OETorLibParameter in _oeomega:
_oeomega.OETorLibParameter_swigregister(OETorLibParameter)

class OESliceEnsembleOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OESliceEnsembleOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OESliceEnsembleOptions self) -> OESliceEnsembleOptions
        __init__(OESliceEnsembleOptions self, OESliceEnsembleOptions arg2) -> OESliceEnsembleOptions
        """
        _oeomega.OESliceEnsembleOptions_swiginit(self, _oeomega.new_OESliceEnsembleOptions(*args))
    __swig_destroy__ = _oeomega.delete_OESliceEnsembleOptions

    def GetRangeIncrement(self) -> "unsigned int":
        r"""GetRangeIncrement(OESliceEnsembleOptions self) -> unsigned int"""
        return _oeomega.OESliceEnsembleOptions_GetRangeIncrement(self)

    def SetRangeIncrement(self, value: "unsigned int const") -> "bool":
        r"""SetRangeIncrement(OESliceEnsembleOptions self, unsigned int const value) -> bool"""
        return _oeomega.OESliceEnsembleOptions_SetRangeIncrement(self, value)

    def SetMaxConfs(self, value: "unsigned int const") -> "bool":
        r"""SetMaxConfs(OESliceEnsembleOptions self, unsigned int const value) -> bool"""
        return _oeomega.OESliceEnsembleOptions_SetMaxConfs(self, value)

    def GetMaxTerminalHeavy(self) -> "unsigned int":
        r"""GetMaxTerminalHeavy(OESliceEnsembleOptions self) -> unsigned int"""
        return _oeomega.OESliceEnsembleOptions_GetMaxTerminalHeavy(self)

    def SetMaxTerminalHeavy(self, value: "unsigned int const") -> "bool":
        r"""SetMaxTerminalHeavy(OESliceEnsembleOptions self, unsigned int const value) -> bool"""
        return _oeomega.OESliceEnsembleOptions_SetMaxTerminalHeavy(self, value)

    def GetEnergyWindow(self) -> "double":
        r"""GetEnergyWindow(OESliceEnsembleOptions self) -> double"""
        return _oeomega.OESliceEnsembleOptions_GetEnergyWindow(self)

    def SetEnergyWindow(self, value: "double const") -> "bool":
        r"""SetEnergyWindow(OESliceEnsembleOptions self, double const value) -> bool"""
        return _oeomega.OESliceEnsembleOptions_SetEnergyWindow(self, value)

    def GetRMSThreshold(self) -> "double":
        r"""GetRMSThreshold(OESliceEnsembleOptions self) -> double"""
        return _oeomega.OESliceEnsembleOptions_GetRMSThreshold(self)

    def SetRMSThreshold(self, value: "double const") -> "bool":
        r"""SetRMSThreshold(OESliceEnsembleOptions self, double const value) -> bool"""
        return _oeomega.OESliceEnsembleOptions_SetRMSThreshold(self, value)

    def GetEnergyRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetEnergyRange(OESliceEnsembleOptions self) -> OEDoubleVector"""
        return _oeomega.OESliceEnsembleOptions_GetEnergyRange(self)

    def SetEnergyRange(self, *args) -> "bool":
        r"""
        SetEnergyRange(OESliceEnsembleOptions self, OEDoubleVector value) -> bool
        SetEnergyRange(OESliceEnsembleOptions self, std::string const & value) -> bool
        """
        return _oeomega.OESliceEnsembleOptions_SetEnergyRange(self, *args)

    def GetMaxConfRange(self) -> "std::vector< unsigned int,std::allocator< unsigned int > >":
        r"""GetMaxConfRange(OESliceEnsembleOptions self) -> OEUIntVector"""
        return _oeomega.OESliceEnsembleOptions_GetMaxConfRange(self)

    def SetMaxConfRange(self, *args) -> "bool":
        r"""
        SetMaxConfRange(OESliceEnsembleOptions self, OEUIntVector value) -> bool
        SetMaxConfRange(OESliceEnsembleOptions self, std::string const & value) -> bool
        """
        return _oeomega.OESliceEnsembleOptions_SetMaxConfRange(self, *args)

    def GetRMSRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetRMSRange(OESliceEnsembleOptions self) -> OEDoubleVector"""
        return _oeomega.OESliceEnsembleOptions_GetRMSRange(self)

    def SetRMSRange(self, *args) -> "bool":
        r"""
        SetRMSRange(OESliceEnsembleOptions self, OEDoubleVector value) -> bool
        SetRMSRange(OESliceEnsembleOptions self, std::string const & value) -> bool
        """
        return _oeomega.OESliceEnsembleOptions_SetRMSRange(self, *args)

    def GetMaxConfs(self, *args) -> "unsigned int":
        r"""
        GetMaxConfs(OESliceEnsembleOptions self) -> unsigned int
        GetMaxConfs(OESliceEnsembleOptions self, unsigned int const argNumRotors) -> unsigned int
        """
        return _oeomega.OESliceEnsembleOptions_GetMaxConfs(self, *args)

    def GetRMSCutoff(self, argNumRotors: "unsigned int const") -> "double":
        r"""GetRMSCutoff(OESliceEnsembleOptions self, unsigned int const argNumRotors) -> double"""
        return _oeomega.OESliceEnsembleOptions_GetRMSCutoff(self, argNumRotors)

    def GetEneWindow(self, argNumRotors: "unsigned int const") -> "double":
        r"""GetEneWindow(OESliceEnsembleOptions self, unsigned int const argNumRotors) -> double"""
        return _oeomega.OESliceEnsembleOptions_GetEneWindow(self, argNumRotors)

    def CreateCopy(self) -> "OEConfGen::OESliceEnsembleOptions *":
        r"""CreateCopy(OESliceEnsembleOptions self) -> OESliceEnsembleOptions"""
        return _oeomega.OESliceEnsembleOptions_CreateCopy(self)

# Register OESliceEnsembleOptions in _oeomega:
_oeomega.OESliceEnsembleOptions_swigregister(OESliceEnsembleOptions)

class OEConfFixOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEConfFixOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEConfFixOptions self) -> OEConfFixOptions
        __init__(OEConfFixOptions self, OEConfFixOptions arg2) -> OEConfFixOptions
        """
        _oeomega.OEConfFixOptions_swiginit(self, _oeomega.new_OEConfFixOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEConfFixOptions

    def Validate(self) -> "bool":
        r"""Validate(OEConfFixOptions self) -> bool"""
        return _oeomega.OEConfFixOptions_Validate(self)

    def GetFixDeleteH(self) -> "bool":
        r"""GetFixDeleteH(OEConfFixOptions self) -> bool"""
        return _oeomega.OEConfFixOptions_GetFixDeleteH(self)

    def SetFixDeleteH(self, value: "bool const") -> "bool":
        r"""SetFixDeleteH(OEConfFixOptions self, bool const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixDeleteH(self, value)

    def GetFixUniqueMatch(self) -> "bool":
        r"""GetFixUniqueMatch(OEConfFixOptions self) -> bool"""
        return _oeomega.OEConfFixOptions_GetFixUniqueMatch(self)

    def SetFixUniqueMatch(self, value: "bool const") -> "bool":
        r"""SetFixUniqueMatch(OEConfFixOptions self, bool const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixUniqueMatch(self, value)

    def GetFixRMS(self) -> "double":
        r"""GetFixRMS(OEConfFixOptions self) -> double"""
        return _oeomega.OEConfFixOptions_GetFixRMS(self)

    def SetFixRMS(self, value: "double const") -> "bool":
        r"""SetFixRMS(OEConfFixOptions self, double const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixRMS(self, value)

    def GetFixMaxMatch(self) -> "unsigned int":
        r"""GetFixMaxMatch(OEConfFixOptions self) -> unsigned int"""
        return _oeomega.OEConfFixOptions_GetFixMaxMatch(self)

    def SetFixMaxMatch(self, value: "unsigned int const") -> "bool":
        r"""SetFixMaxMatch(OEConfFixOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixMaxMatch(self, value)

    def SetFixSubSearch(self, value: "OESubSearch") -> "bool":
        r"""SetFixSubSearch(OEConfFixOptions self, OESubSearch value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixSubSearch(self, value)

    def GetFixSmarts(self) -> "std::string":
        r"""GetFixSmarts(OEConfFixOptions self) -> std::string"""
        return _oeomega.OEConfFixOptions_GetFixSmarts(self)

    def SetFixSmarts(self, value: "std::string const") -> "bool":
        r"""SetFixSmarts(OEConfFixOptions self, std::string const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixSmarts(self, value)

    def GetAtomExpr(self) -> "unsigned int":
        r"""GetAtomExpr(OEConfFixOptions self) -> unsigned int"""
        return _oeomega.OEConfFixOptions_GetAtomExpr(self)

    def SetAtomExpr(self, value: "unsigned int const") -> "bool":
        r"""SetAtomExpr(OEConfFixOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetAtomExpr(self, value)

    def GetBondExpr(self) -> "unsigned int":
        r"""GetBondExpr(OEConfFixOptions self) -> unsigned int"""
        return _oeomega.OEConfFixOptions_GetBondExpr(self)

    def SetBondExpr(self, value: "unsigned int const") -> "bool":
        r"""SetBondExpr(OEConfFixOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEConfFixOptions_SetBondExpr(self, value)

    def GetFixMol(self) -> "OEChem::OEMolBase const &":
        r"""GetFixMol(OEConfFixOptions self) -> OEMolBase"""
        return _oeomega.OEConfFixOptions_GetFixMol(self)

    def GetFixPredicate(self) -> "OESystem::OEUnaryPredicate< OEChem::OEAtomBase > const *":
        r"""GetFixPredicate(OEConfFixOptions self) -> OEUnaryAtomPred"""
        return _oeomega.OEConfFixOptions_GetFixPredicate(self)

    def SetFixPredicate(self, value: "OEUnaryAtomPred") -> "bool":
        r"""SetFixPredicate(OEConfFixOptions self, OEUnaryAtomPred value) -> bool"""
        return _oeomega.OEConfFixOptions_SetFixPredicate(self, value)

    def SetFixMol(self, *args) -> "bool":
        r"""
        SetFixMol(OEConfFixOptions self, OEMolBase value) -> bool
        SetFixMol(OEConfFixOptions self, oemolistream fstream) -> bool
        """
        return _oeomega.OEConfFixOptions_SetFixMol(self, *args)

    def HasFixPattern(self) -> "bool":
        r"""HasFixPattern(OEConfFixOptions self) -> bool"""
        return _oeomega.OEConfFixOptions_HasFixPattern(self)

    def GetFixSubSearch(self, *args) -> "OEChem::OESubSearch":
        r"""
        GetFixSubSearch(OEConfFixOptions self) -> OESubSearch
        GetFixSubSearch(OEConfFixOptions self, OEMCMolBase mol) -> OESubSearch
        """
        return _oeomega.OEConfFixOptions_GetFixSubSearch(self, *args)

    def CreateCopy(self) -> "OEConfGen::OEConfFixOptions *":
        r"""CreateCopy(OEConfFixOptions self) -> OEConfFixOptions"""
        return _oeomega.OEConfFixOptions_CreateCopy(self)

# Register OEConfFixOptions in _oeomega:
_oeomega.OEConfFixOptions_swigregister(OEConfFixOptions)

class OETorDriveOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OETorDriveOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorDriveOptions self) -> OETorDriveOptions
        __init__(OETorDriveOptions self, OETorDriveOptions arg2) -> OETorDriveOptions
        """
        _oeomega.OETorDriveOptions_swiginit(self, _oeomega.new_OETorDriveOptions(*args))
    __swig_destroy__ = _oeomega.delete_OETorDriveOptions

    def Validate(self) -> "bool":
        r"""Validate(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_Validate(self)

    def GetCommentEnergy(self) -> "bool":
        r"""GetCommentEnergy(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_GetCommentEnergy(self)

    def SetCommentEnergy(self, value: "bool const") -> "bool":
        r"""SetCommentEnergy(OETorDriveOptions self, bool const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetCommentEnergy(self, value)

    def GetSDEnergy(self) -> "bool":
        r"""GetSDEnergy(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_GetSDEnergy(self)

    def SetSDEnergy(self, value: "bool const") -> "bool":
        r"""SetSDEnergy(OETorDriveOptions self, bool const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetSDEnergy(self, value)

    def GetRotorOffset(self) -> "bool":
        r"""GetRotorOffset(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_GetRotorOffset(self)

    def SetRotorOffset(self, value: "bool const") -> "bool":
        r"""SetRotorOffset(OETorDriveOptions self, bool const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetRotorOffset(self, value)

    def GetUseGPU(self) -> "bool":
        r"""GetUseGPU(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_GetUseGPU(self)

    def SetUseGPU(self, value: "bool const") -> "bool":
        r"""SetUseGPU(OETorDriveOptions self, bool const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetUseGPU(self, value)

    def GetTimings(self) -> "bool":
        r"""GetTimings(OETorDriveOptions self) -> bool"""
        return _oeomega.OETorDriveOptions_GetTimings(self)

    def SetTimings(self, value: "bool const") -> "bool":
        r"""SetTimings(OETorDriveOptions self, bool const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetTimings(self, value)

    def GetMaxSearchTime(self) -> "double":
        r"""GetMaxSearchTime(OETorDriveOptions self) -> double"""
        return _oeomega.OETorDriveOptions_GetMaxSearchTime(self)

    def SetMaxSearchTime(self, value: "double const") -> "bool":
        r"""SetMaxSearchTime(OETorDriveOptions self, double const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetMaxSearchTime(self, value)

    def GetMaxRotors(self) -> "unsigned int":
        r"""GetMaxRotors(OETorDriveOptions self) -> unsigned int"""
        return _oeomega.OETorDriveOptions_GetMaxRotors(self)

    def SetMaxRotors(self, value: "unsigned int const") -> "bool":
        r"""SetMaxRotors(OETorDriveOptions self, unsigned int const value) -> bool"""
        return _oeomega.OETorDriveOptions_SetMaxRotors(self, value)

    def GetRotorPredicate(self) -> "OESystem::OEUnaryPredicate< OEChem::OEBondBase > const *":
        r"""GetRotorPredicate(OETorDriveOptions self) -> OEUnaryBondPred"""
        return _oeomega.OETorDriveOptions_GetRotorPredicate(self)

    def SetRotorPredicate(self, value: "OEUnaryBondPred") -> "bool":
        r"""SetRotorPredicate(OETorDriveOptions self, OEUnaryBondPred value) -> bool"""
        return _oeomega.OETorDriveOptions_SetRotorPredicate(self, value)

    def GetForceField(self) -> "OEMolPotential::OEForceField const *":
        r"""GetForceField(OETorDriveOptions self) -> OEMolPotential::OEForceField const *"""
        return _oeomega.OETorDriveOptions_GetForceField(self)

    def GetForceFieldType(self) -> "unsigned int":
        r"""GetForceFieldType(OETorDriveOptions self) -> unsigned int"""
        return _oeomega.OETorDriveOptions_GetForceFieldType(self)

    def SetForceField(self, *args) -> "bool":
        r"""
        SetForceField(OETorDriveOptions self, unsigned int const value) -> bool
        SetForceField(OETorDriveOptions self, std::string const & value) -> bool
        SetForceField(OETorDriveOptions self, OEMolPotential::OEForceField const & value) -> bool
        """
        return _oeomega.OETorDriveOptions_SetForceField(self, *args)

    def GetTorLib(self) -> "OEConfGen::OETorLib const *":
        r"""GetTorLib(OETorDriveOptions self) -> OETorLib"""
        return _oeomega.OETorDriveOptions_GetTorLib(self)

    def GetTorLibType(self) -> "unsigned int":
        r"""GetTorLibType(OETorDriveOptions self) -> unsigned int"""
        return _oeomega.OETorDriveOptions_GetTorLibType(self)

    def SetTorLib(self, *args) -> "bool":
        r"""
        SetTorLib(OETorDriveOptions self, unsigned int const value) -> bool
        SetTorLib(OETorDriveOptions self, std::string const & value) -> bool
        SetTorLib(OETorDriveOptions self, OETorLib value) -> bool
        """
        return _oeomega.OETorDriveOptions_SetTorLib(self, *args)

    def ExceedsMaxRotors(self, argMol: "OEMolBase") -> "bool":
        r"""ExceedsMaxRotors(OETorDriveOptions self, OEMolBase argMol) -> bool"""
        return _oeomega.OETorDriveOptions_ExceedsMaxRotors(self, argMol)

    def CreateCopy(self) -> "OEConfGen::OETorDriveOptions *":
        r"""CreateCopy(OETorDriveOptions self) -> OETorDriveOptions"""
        return _oeomega.OETorDriveOptions_CreateCopy(self)

# Register OETorDriveOptions in _oeomega:
_oeomega.OETorDriveOptions_swigregister(OETorDriveOptions)

class OEOmegaOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEOmegaOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEOmegaOptions self, unsigned int const type=) -> OEOmegaOptions
        __init__(OEOmegaOptions self, OEOmegaOptions arg2) -> OEOmegaOptions
        """
        _oeomega.OEOmegaOptions_swiginit(self, _oeomega.new_OEOmegaOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEOmegaOptions

    def Validate(self) -> "bool":
        r"""Validate(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_Validate(self)

    def GetWarts(self) -> "bool":
        r"""GetWarts(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetWarts(self)

    def SetWarts(self, value: "bool const") -> "bool":
        r"""SetWarts(OEOmegaOptions self, bool const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetWarts(self, value)

    def GetIncludeInput(self) -> "bool":
        r"""GetIncludeInput(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetIncludeInput(self)

    def SetIncludeInput(self, value: "bool const") -> "bool":
        r"""SetIncludeInput(OEOmegaOptions self, bool const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetIncludeInput(self, value)

    def GetStrictStereo(self) -> "bool":
        r"""GetStrictStereo(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetStrictStereo(self)

    def SetStrictStereo(self, value: "bool const") -> "bool":
        r"""SetStrictStereo(OEOmegaOptions self, bool const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetStrictStereo(self, value)

    def GetTorsionDrive(self) -> "bool":
        r"""GetTorsionDrive(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetTorsionDrive(self)

    def SetTorsionDrive(self, value: "bool const") -> "bool":
        r"""SetTorsionDrive(OEOmegaOptions self, bool const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetTorsionDrive(self, value)

    def SetTorDriveOptions(self, opts: "OETorDriveOptions") -> "void":
        r"""SetTorDriveOptions(OEOmegaOptions self, OETorDriveOptions opts)"""
        return _oeomega.OEOmegaOptions_SetTorDriveOptions(self, opts)

    def GetTorDriveOptions(self, *args) -> "OEConfGen::OETorDriveOptions const &":
        r"""
        GetTorDriveOptions(OEOmegaOptions self) -> OETorDriveOptions
        GetTorDriveOptions(OEOmegaOptions self) -> OETorDriveOptions
        """
        return _oeomega.OEOmegaOptions_GetTorDriveOptions(self, *args)

    def SetSliceEnsembleOptions(self, opts: "OESliceEnsembleOptions") -> "void":
        r"""SetSliceEnsembleOptions(OEOmegaOptions self, OESliceEnsembleOptions opts)"""
        return _oeomega.OEOmegaOptions_SetSliceEnsembleOptions(self, opts)

    def GetSliceEnsembleOptions(self, *args) -> "OEConfGen::OESliceEnsembleOptions const &":
        r"""
        GetSliceEnsembleOptions(OEOmegaOptions self) -> OESliceEnsembleOptions
        GetSliceEnsembleOptions(OEOmegaOptions self) -> OESliceEnsembleOptions
        """
        return _oeomega.OEOmegaOptions_GetSliceEnsembleOptions(self, *args)

    def SetConfFixOptions(self, opts: "OEConfFixOptions") -> "void":
        r"""SetConfFixOptions(OEOmegaOptions self, OEConfFixOptions opts)"""
        return _oeomega.OEOmegaOptions_SetConfFixOptions(self, opts)

    def GetConfFixOptions(self, *args) -> "OEConfGen::OEConfFixOptions const &":
        r"""
        GetConfFixOptions(OEOmegaOptions self) -> OEConfFixOptions
        GetConfFixOptions(OEOmegaOptions self) -> OEConfFixOptions
        """
        return _oeomega.OEOmegaOptions_GetConfFixOptions(self, *args)

    def SetMolBuilderOptions(self, opts: "OEMolBuilderOptions") -> "void":
        r"""SetMolBuilderOptions(OEOmegaOptions self, OEMolBuilderOptions opts)"""
        return _oeomega.OEOmegaOptions_SetMolBuilderOptions(self, opts)

    def GetMolBuilderOptions(self, *args) -> "OEConfGen::OEMolBuilderOptions const &":
        r"""
        GetMolBuilderOptions(OEOmegaOptions self) -> OEMolBuilderOptions
        GetMolBuilderOptions(OEOmegaOptions self) -> OEMolBuilderOptions
        """
        return _oeomega.OEOmegaOptions_GetMolBuilderOptions(self, *args)

    def CreateCopy(self) -> "OEConfGen::OEOmegaOptions *":
        r"""CreateCopy(OEOmegaOptions self) -> OEOmegaOptions"""
        return _oeomega.OEOmegaOptions_CreateCopy(self)

    def GetMaxConfs(self) -> "unsigned int":
        r"""GetMaxConfs(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetMaxConfs(self)

    def SetMaxConfs(self, value: "unsigned int const") -> "bool":
        r"""SetMaxConfs(OEOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetMaxConfs(self, value)

    def GetEnergyWindow(self) -> "double":
        r"""GetEnergyWindow(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetEnergyWindow(self)

    def SetEnergyWindow(self, value: "double const") -> "bool":
        r"""SetEnergyWindow(OEOmegaOptions self, double const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetEnergyWindow(self, value)

    def SetCommentEnergy(self, value: "bool const") -> "void":
        r"""SetCommentEnergy(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetCommentEnergy(self, value)

    def GetCommentEnergy(self) -> "bool":
        r"""GetCommentEnergy(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetCommentEnergy(self)

    def SetSDEnergy(self, value: "bool const") -> "void":
        r"""SetSDEnergy(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetSDEnergy(self, value)

    def GetSDEnergy(self) -> "bool":
        r"""GetSDEnergy(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetSDEnergy(self)

    def SetRotorOffset(self, value: "bool const") -> "void":
        r"""SetRotorOffset(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetRotorOffset(self, value)

    def GetRotorOffset(self) -> "bool":
        r"""GetRotorOffset(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetRotorOffset(self)

    def GetMaxSearchTime(self) -> "double":
        r"""GetMaxSearchTime(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetMaxSearchTime(self)

    def SetMaxSearchTime(self, value: "double const") -> "void":
        r"""SetMaxSearchTime(OEOmegaOptions self, double const value)"""
        return _oeomega.OEOmegaOptions_SetMaxSearchTime(self, value)

    def SetMaxRotors(self, value: "unsigned int const") -> "void":
        r"""SetMaxRotors(OEOmegaOptions self, unsigned int const value)"""
        return _oeomega.OEOmegaOptions_SetMaxRotors(self, value)

    def GetMaxRotors(self) -> "unsigned int":
        r"""GetMaxRotors(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetMaxRotors(self)

    def GetBuildForceField(self) -> "unsigned int":
        r"""GetBuildForceField(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetBuildForceField(self)

    def SetBuildForceField(self, value: "unsigned int const") -> "bool":
        r"""SetBuildForceField(OEOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetBuildForceField(self, value)

    def GetFromCT(self) -> "bool":
        r"""GetFromCT(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetFromCT(self)

    def SetFromCT(self, value: "bool const") -> "void":
        r"""SetFromCT(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetFromCT(self, value)

    def GetStrictAtomTypes(self) -> "bool":
        r"""GetStrictAtomTypes(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetStrictAtomTypes(self)

    def SetStrictAtomTypes(self, value: "bool const") -> "void":
        r"""SetStrictAtomTypes(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetStrictAtomTypes(self, value)

    def GetCanonOrder(self) -> "bool":
        r"""GetCanonOrder(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetCanonOrder(self)

    def SetCanonOrder(self, value: "bool const") -> "void":
        r"""SetCanonOrder(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetCanonOrder(self, value)

    def GetFixDeleteH(self) -> "bool":
        r"""GetFixDeleteH(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetFixDeleteH(self)

    def SetFixDeleteH(self, value: "bool const") -> "void":
        r"""SetFixDeleteH(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetFixDeleteH(self, value)

    def GetFixUniqueMatch(self) -> "bool":
        r"""GetFixUniqueMatch(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetFixUniqueMatch(self)

    def SetFixUniqueMatch(self, value: "bool const") -> "void":
        r"""SetFixUniqueMatch(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetFixUniqueMatch(self, value)

    def GetFixRMS(self) -> "double":
        r"""GetFixRMS(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetFixRMS(self)

    def SetFixRMS(self, value: "double const") -> "void":
        r"""SetFixRMS(OEOmegaOptions self, double const value)"""
        return _oeomega.OEOmegaOptions_SetFixRMS(self, value)

    def GetFixMaxMatch(self) -> "unsigned int":
        r"""GetFixMaxMatch(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetFixMaxMatch(self)

    def SetFixMaxMatch(self, value: "unsigned int const") -> "void":
        r"""SetFixMaxMatch(OEOmegaOptions self, unsigned int const value)"""
        return _oeomega.OEOmegaOptions_SetFixMaxMatch(self, value)

    def GetEnumNitrogen(self) -> "unsigned int":
        r"""GetEnumNitrogen(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetEnumNitrogen(self)

    def SetEnumNitrogen(self, value: "unsigned int const") -> "bool":
        r"""SetEnumNitrogen(OEOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetEnumNitrogen(self, value)

    def GetEnumRing(self) -> "bool":
        r"""GetEnumRing(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetEnumRing(self)

    def SetEnumRing(self, value: "bool const") -> "void":
        r"""SetEnumRing(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetEnumRing(self, value)

    def GetSampleHydrogens(self) -> "bool":
        r"""GetSampleHydrogens(OEOmegaOptions self) -> bool"""
        return _oeomega.OEOmegaOptions_GetSampleHydrogens(self)

    def SetSampleHydrogens(self, value: "bool const") -> "void":
        r"""SetSampleHydrogens(OEOmegaOptions self, bool const value)"""
        return _oeomega.OEOmegaOptions_SetSampleHydrogens(self, value)

    def GetSearchForceField(self) -> "unsigned int":
        r"""GetSearchForceField(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetSearchForceField(self)

    def SetSearchForceField(self, value: "unsigned int const") -> "bool":
        r"""SetSearchForceField(OEOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEOmegaOptions_SetSearchForceField(self, value)

    def GetDielectric(self) -> "double":
        r"""GetDielectric(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetDielectric(self)

    def SetDielectric(self, arg2: "double const") -> "void":
        r"""SetDielectric(OEOmegaOptions self, double const arg2)"""
        return _oeomega.OEOmegaOptions_SetDielectric(self, arg2)

    def GetExponent(self) -> "double":
        r"""GetExponent(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetExponent(self)

    def SetExponent(self, arg2: "double const") -> "void":
        r"""SetExponent(OEOmegaOptions self, double const arg2)"""
        return _oeomega.OEOmegaOptions_SetExponent(self, arg2)

    def GetRMSThreshold(self) -> "double":
        r"""GetRMSThreshold(OEOmegaOptions self) -> double"""
        return _oeomega.OEOmegaOptions_GetRMSThreshold(self)

    def SetRMSThreshold(self, value: "double const") -> "void":
        r"""SetRMSThreshold(OEOmegaOptions self, double const value)"""
        return _oeomega.OEOmegaOptions_SetRMSThreshold(self, value)

    def GetRangeIncrement(self) -> "unsigned int":
        r"""GetRangeIncrement(OEOmegaOptions self) -> unsigned int"""
        return _oeomega.OEOmegaOptions_GetRangeIncrement(self)

    def SetRangeIncrement(self, value: "unsigned int const") -> "void":
        r"""SetRangeIncrement(OEOmegaOptions self, unsigned int const value)"""
        return _oeomega.OEOmegaOptions_SetRangeIncrement(self, value)

    def GetEnergyRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetEnergyRange(OEOmegaOptions self) -> OEDoubleVector"""
        return _oeomega.OEOmegaOptions_GetEnergyRange(self)

    def GetMaxConfRange(self) -> "std::vector< unsigned int,std::allocator< unsigned int > >":
        r"""GetMaxConfRange(OEOmegaOptions self) -> OEUIntVector"""
        return _oeomega.OEOmegaOptions_GetMaxConfRange(self)

    def GetRMSRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetRMSRange(OEOmegaOptions self) -> OEDoubleVector"""
        return _oeomega.OEOmegaOptions_GetRMSRange(self)

    def SetEnergyRange(self, *args) -> "bool":
        r"""
        SetEnergyRange(OEOmegaOptions self, OEDoubleVector range)
        SetEnergyRange(OEOmegaOptions self, std::string const & range) -> bool
        """
        return _oeomega.OEOmegaOptions_SetEnergyRange(self, *args)

    def SetMaxConfRange(self, *args) -> "bool":
        r"""
        SetMaxConfRange(OEOmegaOptions self, OEUIntVector range)
        SetMaxConfRange(OEOmegaOptions self, std::string const & range) -> bool
        """
        return _oeomega.OEOmegaOptions_SetMaxConfRange(self, *args)

    def SetRMSRange(self, *args) -> "bool":
        r"""
        SetRMSRange(OEOmegaOptions self, OEDoubleVector range)
        SetRMSRange(OEOmegaOptions self, std::string const & range) -> bool
        """
        return _oeomega.OEOmegaOptions_SetRMSRange(self, *args)

    def GetFixMol(self) -> "OEChem::OEMolBase const &":
        r"""GetFixMol(OEOmegaOptions self) -> OEMolBase"""
        return _oeomega.OEOmegaOptions_GetFixMol(self)

    def GetFixSubSearch(self) -> "OEChem::OESubSearch":
        r"""GetFixSubSearch(OEOmegaOptions self) -> OESubSearch"""
        return _oeomega.OEOmegaOptions_GetFixSubSearch(self)

    def ClearFixFile(self) -> "void":
        r"""ClearFixFile(OEOmegaOptions self)"""
        return _oeomega.OEOmegaOptions_ClearFixFile(self)

    def SetFixFile(self, *args) -> "void":
        r"""SetFixFile(OEOmegaOptions self, oemolistream argStream, unsigned int argAtomOpts=, unsigned int argBondOpts=)"""
        return _oeomega.OEOmegaOptions_SetFixFile(self, *args)

    def SetFixMol(self, *args) -> "void":
        r"""SetFixMol(OEOmegaOptions self, OEMolBase argMol, unsigned int argAtomOpts=, unsigned int argBondOpts=)"""
        return _oeomega.OEOmegaOptions_SetFixMol(self, *args)

    def SetFixQuery(self, argSubSearch: "OESubSearch") -> "void":
        r"""SetFixQuery(OEOmegaOptions self, OESubSearch argSubSearch)"""
        return _oeomega.OEOmegaOptions_SetFixQuery(self, argSubSearch)

    def SetFixSmarts(self, argSmarts: "std::string const &") -> "void":
        r"""SetFixSmarts(OEOmegaOptions self, std::string const & argSmarts)"""
        return _oeomega.OEOmegaOptions_SetFixSmarts(self, argSmarts)

    def SetRotorPredicate(self, argPredicate: "OEUnaryBondPred") -> "void":
        r"""SetRotorPredicate(OEOmegaOptions self, OEUnaryBondPred argPredicate)"""
        return _oeomega.OEOmegaOptions_SetRotorPredicate(self, argPredicate)

    def SetStrictFrags(self, argStrict: "bool const") -> "void":
        r"""SetStrictFrags(OEOmegaOptions self, bool const argStrict)"""
        return _oeomega.OEOmegaOptions_SetStrictFrags(self, argStrict)

    def GetTorLib(self) -> "OEConfGen::OETorLib const &":
        r"""GetTorLib(OEOmegaOptions self) -> OETorLib"""
        return _oeomega.OEOmegaOptions_GetTorLib(self)

    def SetTorLib(self, argLib: "OETorLib") -> "void":
        r"""SetTorLib(OEOmegaOptions self, OETorLib argLib)"""
        return _oeomega.OEOmegaOptions_SetTorLib(self, argLib)

    def SetTorLibType(self, type: "std::string const &") -> "void":
        r"""SetTorLibType(OEOmegaOptions self, std::string const & type)"""
        return _oeomega.OEOmegaOptions_SetTorLibType(self, type)

# Register OEOmegaOptions in _oeomega:
_oeomega.OEOmegaOptions_swigregister(OEOmegaOptions)


def OEGetOmegaError(code: "unsigned int const") -> "std::string":
    r"""OEGetOmegaError(unsigned int const code) -> std::string"""
    return _oeomega.OEGetOmegaError(code)

def OEGetTorValues(torrule: "OESubSearch", values: "OEDoubleVector") -> "bool":
    r"""OEGetTorValues(OESubSearch torrule, OEDoubleVector values) -> bool"""
    return _oeomega.OEGetTorValues(torrule, values)
class OEOmegaBase(object):
    r"""Proxy of C++ OEConfGen::OEOmegaBase class."""

    thisown = 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

# Register OEOmegaBase in _oeomega:
_oeomega.OEOmegaBase_swigregister(OEOmegaBase)

class OEOmega(OEOmegaBase):
    r"""Proxy of C++ OEConfGen::OEOmega class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEOmega self, oeistream torlib=None) -> OEOmega
        __init__(OEOmega self, OEOmegaOptions argOpts) -> OEOmega
        __init__(OEOmega self, OEOmega arg2) -> OEOmega
        """
        _oeomega.OEOmega_swiginit(self, _oeomega.new_OEOmega(*args))
    __swig_destroy__ = _oeomega.delete_OEOmega

    def SetOptions(self, argOpts: "OEOmegaOptions") -> "void":
        r"""SetOptions(OEOmega self, OEOmegaOptions argOpts)"""
        return _oeomega.OEOmega_SetOptions(self, argOpts)

    def GetOptions(self) -> "OEConfGen::OEOmegaOptions const &":
        r"""GetOptions(OEOmega self) -> OEOmegaOptions"""
        return _oeomega.OEOmega_GetOptions(self)

    def Build(self, mol: "OEMCMolBase") -> "unsigned int":
        r"""Build(OEOmega self, OEMCMolBase mol) -> unsigned int"""
        return _oeomega.OEOmega_Build(self, mol)

    def AddFragLib(self, *args) -> "void":
        r"""
        AddFragLib(OEOmega self, std::string const & arg2)
        AddFragLib(OEOmega self, oeistream arg2)
        """
        return _oeomega.OEOmega_AddFragLib(self, *args)

    def ClearFragLibs(self) -> "void":
        r"""ClearFragLibs(OEOmega self)"""
        return _oeomega.OEOmega_ClearFragLibs(self)

    def __call__(self, mol: "OEMCMolBase", fixed: "OEUnaryAtomPred"=None) -> "bool":
        r"""__call__(OEOmega self, OEMCMolBase mol, OEUnaryAtomPred fixed=None) -> bool"""
        return _oeomega.OEOmega___call__(self, mol, fixed)

    def IsValid(self):
      return _oeomega.OEOmega___nonzero__(self)



    def GetCommentEnergy(self) -> "bool":
        r"""GetCommentEnergy(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetCommentEnergy(self)

    def GetIncludeInput(self) -> "bool":
        r"""GetIncludeInput(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetIncludeInput(self)

    def GetRotorOffset(self) -> "bool":
        r"""GetRotorOffset(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetRotorOffset(self)

    def GetSDEnergy(self) -> "bool":
        r"""GetSDEnergy(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetSDEnergy(self)

    def GetWarts(self) -> "bool":
        r"""GetWarts(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetWarts(self)

    def SetCommentEnergy(self, arg2: "bool") -> "void":
        r"""SetCommentEnergy(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetCommentEnergy(self, arg2)

    def SetIncludeInput(self, arg2: "bool") -> "void":
        r"""SetIncludeInput(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetIncludeInput(self, arg2)

    def SetRotorOffset(self, arg2: "bool") -> "void":
        r"""SetRotorOffset(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetRotorOffset(self, arg2)

    def SetSDEnergy(self, arg2: "bool") -> "void":
        r"""SetSDEnergy(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetSDEnergy(self, arg2)

    def SetWarts(self, arg2: "bool") -> "void":
        r"""SetWarts(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetWarts(self, arg2)

    def GetBuildForceField(self) -> "std::string":
        r"""GetBuildForceField(OEOmega self) -> std::string"""
        return _oeomega.OEOmega_GetBuildForceField(self)

    def GetCanonOrder(self) -> "bool":
        r"""GetCanonOrder(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetCanonOrder(self)

    def GetFromCT(self) -> "bool":
        r"""GetFromCT(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetFromCT(self)

    def GetFixRMS(self) -> "double":
        r"""GetFixRMS(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetFixRMS(self)

    def GetFixDeleteH(self) -> "bool":
        r"""GetFixDeleteH(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetFixDeleteH(self)

    def GetFixUniqueMatch(self) -> "bool":
        r"""GetFixUniqueMatch(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetFixUniqueMatch(self)

    def GetFixMaxMatch(self) -> "unsigned int":
        r"""GetFixMaxMatch(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetFixMaxMatch(self)

    def SetBuildForceField(self, arg2: "std::string const &") -> "bool":
        r"""SetBuildForceField(OEOmega self, std::string const & arg2) -> bool"""
        return _oeomega.OEOmega_SetBuildForceField(self, arg2)

    def SetCanonOrder(self, arg2: "bool") -> "void":
        r"""SetCanonOrder(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetCanonOrder(self, arg2)

    def SetFromCT(self, arg2: "bool") -> "void":
        r"""SetFromCT(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetFromCT(self, arg2)

    def SetFixRMS(self, arg2: "double") -> "void":
        r"""SetFixRMS(OEOmega self, double arg2)"""
        return _oeomega.OEOmega_SetFixRMS(self, arg2)

    def SetFixDeleteH(self, arg2: "bool") -> "void":
        r"""SetFixDeleteH(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetFixDeleteH(self, arg2)

    def SetFixUniqueMatch(self, arg2: "bool") -> "void":
        r"""SetFixUniqueMatch(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetFixUniqueMatch(self, arg2)

    def SetFixMaxMatch(self, arg2: "unsigned int") -> "void":
        r"""SetFixMaxMatch(OEOmega self, unsigned int arg2)"""
        return _oeomega.OEOmega_SetFixMaxMatch(self, arg2)

    def UseStrictAtomTypes(self, strict: "bool"=True) -> "void":
        r"""UseStrictAtomTypes(OEOmega self, bool strict=True)"""
        return _oeomega.OEOmega_UseStrictAtomTypes(self, strict)

    def SetStrictAtomTypes(self, strict: "bool"=True) -> "void":
        r"""SetStrictAtomTypes(OEOmega self, bool strict=True)"""
        return _oeomega.OEOmega_SetStrictAtomTypes(self, strict)

    def SetStrictStereo(self, strict: "bool"=True) -> "void":
        r"""SetStrictStereo(OEOmega self, bool strict=True)"""
        return _oeomega.OEOmega_SetStrictStereo(self, strict)

    def SetStrictFrags(self, strict: "bool"=True) -> "void":
        r"""SetStrictFrags(OEOmega self, bool strict=True)"""
        return _oeomega.OEOmega_SetStrictFrags(self, strict)

    def GetStrictAtomTypes(self) -> "bool":
        r"""GetStrictAtomTypes(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetStrictAtomTypes(self)

    def GetStrictStereo(self) -> "bool":
        r"""GetStrictStereo(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetStrictStereo(self)

    def GetStrictFrags(self) -> "bool":
        r"""GetStrictFrags(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetStrictFrags(self)

    def GetEnumNitrogen(self) -> "unsigned int":
        r"""GetEnumNitrogen(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetEnumNitrogen(self)

    def GetEnumRing(self) -> "bool":
        r"""GetEnumRing(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetEnumRing(self)

    def GetSampleHydrogens(self) -> "bool":
        r"""GetSampleHydrogens(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetSampleHydrogens(self)

    def SetEnumNitrogen(self, arg2: "unsigned int") -> "void":
        r"""SetEnumNitrogen(OEOmega self, unsigned int arg2)"""
        return _oeomega.OEOmega_SetEnumNitrogen(self, arg2)

    def SetEnumRing(self, arg2: "bool") -> "void":
        r"""SetEnumRing(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetEnumRing(self, arg2)

    def SetSampleHydrogens(self, arg2: "bool") -> "void":
        r"""SetSampleHydrogens(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetSampleHydrogens(self, arg2)

    def GetEnergyWindow(self) -> "double":
        r"""GetEnergyWindow(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetEnergyWindow(self)

    def GetEnergyRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetEnergyRange(OEOmega self) -> OEDoubleVector"""
        return _oeomega.OEOmega_GetEnergyRange(self)

    def GetMaxConfs(self) -> "unsigned int":
        r"""GetMaxConfs(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetMaxConfs(self)

    def GetMaxConfRange(self) -> "std::vector< unsigned int,std::allocator< unsigned int > >":
        r"""GetMaxConfRange(OEOmega self) -> OEUIntVector"""
        return _oeomega.OEOmega_GetMaxConfRange(self)

    def GetMaxRotors(self) -> "int":
        r"""GetMaxRotors(OEOmega self) -> int"""
        return _oeomega.OEOmega_GetMaxRotors(self)

    def GetMaxSearchTime(self) -> "double":
        r"""GetMaxSearchTime(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetMaxSearchTime(self)

    def GetRangeIncrement(self) -> "unsigned int":
        r"""GetRangeIncrement(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetRangeIncrement(self)

    def GetRMSRange(self) -> "std::vector< double,std::allocator< double > >":
        r"""GetRMSRange(OEOmega self) -> OEDoubleVector"""
        return _oeomega.OEOmega_GetRMSRange(self)

    def GetRMSThreshold(self) -> "double":
        r"""GetRMSThreshold(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetRMSThreshold(self)

    def GetSearchForceField(self) -> "std::string":
        r"""GetSearchForceField(OEOmega self) -> std::string"""
        return _oeomega.OEOmega_GetSearchForceField(self)

    def GetTorsionDrive(self) -> "bool":
        r"""GetTorsionDrive(OEOmega self) -> bool"""
        return _oeomega.OEOmega_GetTorsionDrive(self)

    def GetDielectric(self) -> "double":
        r"""GetDielectric(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetDielectric(self)

    def GetExponent(self) -> "double":
        r"""GetExponent(OEOmega self) -> double"""
        return _oeomega.OEOmega_GetExponent(self)

    def SetEnergyWindow(self, arg2: "double") -> "void":
        r"""SetEnergyWindow(OEOmega self, double arg2)"""
        return _oeomega.OEOmega_SetEnergyWindow(self, arg2)

    def SetEnergyRange(self, *args) -> "bool":
        r"""
        SetEnergyRange(OEOmega self, OEDoubleVector arg2)
        SetEnergyRange(OEOmega self, std::string const & rangeString) -> bool
        """
        return _oeomega.OEOmega_SetEnergyRange(self, *args)

    def SetMaxConfs(self, arg2: "unsigned int") -> "bool":
        r"""SetMaxConfs(OEOmega self, unsigned int arg2) -> bool"""
        return _oeomega.OEOmega_SetMaxConfs(self, arg2)

    def SetMaxConfRange(self, *args) -> "bool":
        r"""
        SetMaxConfRange(OEOmega self, OEUIntVector arg2)
        SetMaxConfRange(OEOmega self, std::string const & rangeString) -> bool
        """
        return _oeomega.OEOmega_SetMaxConfRange(self, *args)

    def SetMaxRotors(self, arg2: "int") -> "void":
        r"""SetMaxRotors(OEOmega self, int arg2)"""
        return _oeomega.OEOmega_SetMaxRotors(self, arg2)

    def SetMaxSearchTime(self, arg2: "double") -> "void":
        r"""SetMaxSearchTime(OEOmega self, double arg2)"""
        return _oeomega.OEOmega_SetMaxSearchTime(self, arg2)

    def SetRangeIncrement(self, arg2: "unsigned int") -> "void":
        r"""SetRangeIncrement(OEOmega self, unsigned int arg2)"""
        return _oeomega.OEOmega_SetRangeIncrement(self, arg2)

    def SetRMSRange(self, *args) -> "bool":
        r"""
        SetRMSRange(OEOmega self, OEDoubleVector arg2)
        SetRMSRange(OEOmega self, std::string const & rangeString) -> bool
        """
        return _oeomega.OEOmega_SetRMSRange(self, *args)

    def SetRMSThreshold(self, arg2: "double") -> "void":
        r"""SetRMSThreshold(OEOmega self, double arg2)"""
        return _oeomega.OEOmega_SetRMSThreshold(self, arg2)

    def SetSearchForceField(self, arg2: "std::string const &") -> "bool":
        r"""SetSearchForceField(OEOmega self, std::string const & arg2) -> bool"""
        return _oeomega.OEOmega_SetSearchForceField(self, arg2)

    def SetTorsionDrive(self, arg2: "bool") -> "void":
        r"""SetTorsionDrive(OEOmega self, bool arg2)"""
        return _oeomega.OEOmega_SetTorsionDrive(self, arg2)

    def SetDielectric(self, dielectric: "double") -> "void":
        r"""SetDielectric(OEOmega self, double dielectric)"""
        return _oeomega.OEOmega_SetDielectric(self, dielectric)

    def SetExponent(self, exponent: "double") -> "void":
        r"""SetExponent(OEOmega self, double exponent)"""
        return _oeomega.OEOmega_SetExponent(self, exponent)

    def GetFixMol(self) -> "OEChem::OEMolBase const &":
        r"""GetFixMol(OEOmega self) -> OEMolBase"""
        return _oeomega.OEOmega_GetFixMol(self)

    def GetFixSubSearch(self) -> "OEChem::OESubSearch":
        r"""GetFixSubSearch(OEOmega self) -> OESubSearch"""
        return _oeomega.OEOmega_GetFixSubSearch(self)

    def ClearFixFile(self) -> "void":
        r"""ClearFixFile(OEOmega self)"""
        return _oeomega.OEOmega_ClearFixFile(self)

    def SetFixFile(self, *args) -> "void":
        r"""SetFixFile(OEOmega self, oemolistream arg2, unsigned int aopts=, unsigned int bopts=)"""
        return _oeomega.OEOmega_SetFixFile(self, *args)

    def SetFixMol(self, *args) -> "void":
        r"""SetFixMol(OEOmega self, OEMolBase arg2, unsigned int aopts=, unsigned int bopts=)"""
        return _oeomega.OEOmega_SetFixMol(self, *args)

    def SetFixQuery(self, arg2: "OESubSearch") -> "void":
        r"""SetFixQuery(OEOmega self, OESubSearch arg2)"""
        return _oeomega.OEOmega_SetFixQuery(self, arg2)

    def SetFixSmarts(self, arg2: "std::string const &") -> "void":
        r"""SetFixSmarts(OEOmega self, std::string const & arg2)"""
        return _oeomega.OEOmega_SetFixSmarts(self, arg2)

    def SetRotorPredicate(self, pred: "OEUnaryBondPred") -> "void":
        r"""SetRotorPredicate(OEOmega self, OEUnaryBondPred pred)"""
        return _oeomega.OEOmega_SetRotorPredicate(self, pred)

    def SetTorsionLibrary(self, *args) -> "void":
        r"""
        SetTorsionLibrary(OEOmega self, std::string const & arg2)
        SetTorsionLibrary(OEOmega self, oeistream arg2)
        """
        return _oeomega.OEOmega_SetTorsionLibrary(self, *args)

    def GetTorLib(self, *args) -> "OEConfGen::OETorLib const &":
        r"""
        GetTorLib(OEOmega self) -> OETorLib
        GetTorLib(OEOmega self) -> OETorLib
        """
        return _oeomega.OEOmega_GetTorLib(self, *args)

    def SetTorLib(self, torlib: "OETorLib") -> "bool":
        r"""SetTorLib(OEOmega self, OETorLib torlib) -> bool"""
        return _oeomega.OEOmega_SetTorLib(self, torlib)

    def SetTorLibType(self, type: "std::string const &") -> "bool":
        r"""SetTorLibType(OEOmega self, std::string const & type) -> bool"""
        return _oeomega.OEOmega_SetTorLibType(self, type)

    def GetMaxConfGen(self) -> "unsigned int":
        r"""GetMaxConfGen(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetMaxConfGen(self)

    def GetMaxPoolSize(self) -> "unsigned int":
        r"""GetMaxPoolSize(OEOmega self) -> unsigned int"""
        return _oeomega.OEOmega_GetMaxPoolSize(self)

    def SetMaxConfGen(self, arg2: "unsigned int") -> "void":
        r"""SetMaxConfGen(OEOmega self, unsigned int arg2)"""
        return _oeomega.OEOmega_SetMaxConfGen(self, arg2)

    def SetMaxPoolSize(self, arg2: "unsigned int") -> "void":
        r"""SetMaxPoolSize(OEOmega self, unsigned int arg2)"""
        return _oeomega.OEOmega_SetMaxPoolSize(self, arg2)

# Register OEOmega in _oeomega:
_oeomega.OEOmega_swigregister(OEOmega)

class OEConformerBuilder(OEOmegaBase):
    r"""Proxy of C++ OEConfGen::OEConformerBuilder class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEConformerBuilder self) -> OEConformerBuilder
        __init__(OEConformerBuilder self, OEConformerBuilder arg2) -> OEConformerBuilder
        """
        _oeomega.OEConformerBuilder_swiginit(self, _oeomega.new_OEConformerBuilder(*args))
    __swig_destroy__ = _oeomega.delete_OEConformerBuilder

    def Build(self, *args) -> "unsigned int":
        r"""
        Build(OEConformerBuilder self, OEMolBase mol) -> unsigned int
        Build(OEConformerBuilder self, OEMCMolBase mol) -> unsigned int
        """
        return _oeomega.OEConformerBuilder_Build(self, *args)

# Register OEConformerBuilder in _oeomega:
_oeomega.OEConformerBuilder_swigregister(OEConformerBuilder)


def OEAddGlobalFragLib(fraglib_filename: "std::string const &", replace: "bool"=True) -> "bool":
    r"""OEAddGlobalFragLib(std::string const & fraglib_filename, bool replace=True) -> bool"""
    return _oeomega.OEAddGlobalFragLib(fraglib_filename, replace)

def OEClearGlobalFragLib() -> "void":
    r"""OEClearGlobalFragLib()"""
    return _oeomega.OEClearGlobalFragLib()

def OEOmegaGetLibraryRelease() -> "char const *":
    r"""OEOmegaGetLibraryRelease() -> char const *"""
    return _oeomega.OEOmegaGetLibraryRelease()

def OEOmegaGetLibraryVersion() -> "unsigned int":
    r"""OEOmegaGetLibraryVersion() -> unsigned int"""
    return _oeomega.OEOmegaGetLibraryVersion()

def OEOmegaSystemHasGPU() -> "bool":
    r"""OEOmegaSystemHasGPU() -> bool"""
    return _oeomega.OEOmegaSystemHasGPU()

def OEOmegaIsGPUReady() -> "bool":
    r"""OEOmegaIsGPUReady() -> bool"""
    return _oeomega.OEOmegaIsGPUReady()
class OEFlipperOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEFlipperOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFlipperOptions self) -> OEFlipperOptions
        __init__(OEFlipperOptions self, OEFlipperOptions arg2) -> OEFlipperOptions
        """
        _oeomega.OEFlipperOptions_swiginit(self, _oeomega.new_OEFlipperOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEFlipperOptions

    def GetMaxCenters(self) -> "unsigned int":
        r"""GetMaxCenters(OEFlipperOptions self) -> unsigned int"""
        return _oeomega.OEFlipperOptions_GetMaxCenters(self)

    def SetMaxCenters(self, value: "unsigned int const") -> "bool":
        r"""SetMaxCenters(OEFlipperOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetMaxCenters(self, value)

    def GetEnumSpecifiedStereo(self) -> "bool":
        r"""GetEnumSpecifiedStereo(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetEnumSpecifiedStereo(self)

    def SetEnumSpecifiedStereo(self, value: "bool const") -> "bool":
        r"""SetEnumSpecifiedStereo(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetEnumSpecifiedStereo(self, value)

    def GetEnumNitrogen(self) -> "bool":
        r"""GetEnumNitrogen(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetEnumNitrogen(self)

    def SetEnumNitrogen(self, value: "bool const") -> "bool":
        r"""SetEnumNitrogen(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetEnumNitrogen(self, value)

    def GetEnumEZ(self) -> "bool":
        r"""GetEnumEZ(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetEnumEZ(self)

    def SetEnumEZ(self, value: "bool const") -> "bool":
        r"""SetEnumEZ(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetEnumEZ(self, value)

    def GetEnumRS(self) -> "bool":
        r"""GetEnumRS(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetEnumRS(self)

    def SetEnumRS(self, value: "bool const") -> "bool":
        r"""SetEnumRS(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetEnumRS(self, value)

    def GetEnumBridgehead(self) -> "bool":
        r"""GetEnumBridgehead(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetEnumBridgehead(self)

    def SetEnumBridgehead(self, value: "bool const") -> "bool":
        r"""SetEnumBridgehead(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetEnumBridgehead(self, value)

    def GetAtomPredicate(self) -> "OESystem::OEUnaryPredicate< OEChem::OEAtomBase > const *":
        r"""GetAtomPredicate(OEFlipperOptions self) -> OEUnaryAtomPred"""
        return _oeomega.OEFlipperOptions_GetAtomPredicate(self)

    def SetAtomPredicate(self, value: "OEUnaryAtomPred") -> "bool":
        r"""SetAtomPredicate(OEFlipperOptions self, OEUnaryAtomPred value) -> bool"""
        return _oeomega.OEFlipperOptions_SetAtomPredicate(self, value)

    def GetBondPredicate(self) -> "OESystem::OEUnaryPredicate< OEChem::OEBondBase > const *":
        r"""GetBondPredicate(OEFlipperOptions self) -> OEUnaryBondPred"""
        return _oeomega.OEFlipperOptions_GetBondPredicate(self)

    def SetBondPredicate(self, value: "OEUnaryBondPred") -> "bool":
        r"""SetBondPredicate(OEFlipperOptions self, OEUnaryBondPred value) -> bool"""
        return _oeomega.OEFlipperOptions_SetBondPredicate(self, value)

    def GetWarts(self) -> "bool":
        r"""GetWarts(OEFlipperOptions self) -> bool"""
        return _oeomega.OEFlipperOptions_GetWarts(self)

    def SetWarts(self, value: "bool const") -> "bool":
        r"""SetWarts(OEFlipperOptions self, bool const value) -> bool"""
        return _oeomega.OEFlipperOptions_SetWarts(self, value)

    def CreateCopy(self) -> "OEConfGen::OEFlipperOptions *":
        r"""CreateCopy(OEFlipperOptions self) -> OEFlipperOptions"""
        return _oeomega.OEFlipperOptions_CreateCopy(self)

# Register OEFlipperOptions in _oeomega:
_oeomega.OEFlipperOptions_swigregister(OEFlipperOptions)


def OEFlipper(*args) -> "OESystem::OEIterBase< OEChem::OEMolBase > *":
    r"""
    OEFlipper(OEMolBase mol, OEFlipperOptions options) -> OESystem::OEIterBase< OEChem::OEMolBase >
    OEFlipper(OEMCMolBase mol, OEFlipperOptions options) -> OESystem::OEIterBase< OEChem::OEMolBase >
    OEFlipper(OEMolBase mol, unsigned int maxcenters=12, bool forceFlip=False, bool enumNitrogen=False, bool warts=False) -> OESystem::OEIterBase< OEChem::OEMolBase >
    OEFlipper(OEMCMolBase mol, unsigned int maxcenters=12, bool forceFlip=False, bool enumNitrogen=False, bool warts=False) -> OESystem::OEIterBase< OEChem::OEMolBase >
    """
    return _oeomega.OEFlipper(*args)

def OEFlipperStereoCenters(mol: "OEMolBase", options: "OEFlipperOptions") -> "unsigned int":
    r"""OEFlipperStereoCenters(OEMolBase mol, OEFlipperOptions options) -> unsigned int"""
    return _oeomega.OEFlipperStereoCenters(mol, options)
class OEBuilderBase(object):
    r"""Proxy of C++ OEConfGen::OEBuilderBase class."""

    thisown = 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

    def AddFragLib(self, *args) -> "bool":
        r"""
        AddFragLib(OEBuilderBase self) -> bool
        AddFragLib(OEBuilderBase self, std::string const & arg2) -> bool
        AddFragLib(OEBuilderBase self, oeistream arg2) -> bool
        """
        return _oeomega.OEBuilderBase_AddFragLib(self, *args)

    def ClearFragLibs(self) -> "void":
        r"""ClearFragLibs(OEBuilderBase self)"""
        return _oeomega.OEBuilderBase_ClearFragLibs(self)

# Register OEBuilderBase in _oeomega:
_oeomega.OEBuilderBase_swigregister(OEBuilderBase)

class OEMolBuilder(OEBuilderBase):
    r"""Proxy of C++ OEConfGen::OEMolBuilder class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMolBuilder self, OEMolBuilderOptions argOpts=OEConfGen::OEMolBuilderOptions()) -> OEMolBuilder
        __init__(OEMolBuilder self, OEMolBuilder arg2) -> OEMolBuilder
        """
        _oeomega.OEMolBuilder_swiginit(self, _oeomega.new_OEMolBuilder(*args))
    __swig_destroy__ = _oeomega.delete_OEMolBuilder

    def SetOptions(self, argOpts: "OEMolBuilderOptions") -> "void":
        r"""SetOptions(OEMolBuilder self, OEMolBuilderOptions argOpts)"""
        return _oeomega.OEMolBuilder_SetOptions(self, argOpts)

    def GetOptions(self) -> "OEConfGen::OEMolBuilderOptions const &":
        r"""GetOptions(OEMolBuilder self) -> OEMolBuilderOptions"""
        return _oeomega.OEMolBuilder_GetOptions(self)

    def Build(self, *args) -> "unsigned int":
        r"""Build(OEMolBuilder self, OEMCMolBase mol, OEConfFixOptions fixOpts=OEConfGen::OEConfFixOptions()) -> unsigned int"""
        return _oeomega.OEMolBuilder_Build(self, *args)

    def Prep(self, mol: "OEMCMolBase") -> "unsigned int":
        r"""Prep(OEMolBuilder self, OEMCMolBase mol) -> unsigned int"""
        return _oeomega.OEMolBuilder_Prep(self, mol)

# Register OEMolBuilder in _oeomega:
_oeomega.OEMolBuilder_swigregister(OEMolBuilder)

class OEMakeFragLib(OEBuilderBase):
    r"""Proxy of C++ OEConfGen::OEMakeFragLib class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMakeFragLib self, OEFragBuilderOptions argOpts=OEConfGen::OEFragBuilderOptions(OEFragBuilderMode::Strict)) -> OEMakeFragLib
        __init__(OEMakeFragLib self, OEMakeFragLib arg2) -> OEMakeFragLib
        """
        _oeomega.OEMakeFragLib_swiginit(self, _oeomega.new_OEMakeFragLib(*args))
    __swig_destroy__ = _oeomega.delete_OEMakeFragLib

    def GenerateMissingFrags(self, *args) -> "void":
        r"""
        GenerateMissingFrags(OEMakeFragLib self, oemolistream infile, oemolostream outfile)
        GenerateMissingFrags(OEMakeFragLib self, OEMolBase mol, oemolostream outfile)
        """
        return _oeomega.OEMakeFragLib_GenerateMissingFrags(self, *args)

    def GetMissingFrags(self, *args) -> "OESystem::OEIterBase< OEChem::OEMCMolBase > *":
        r"""
        GetMissingFrags(OEMakeFragLib self, oemolistream infile) -> OESystem::OEIterBase< OEChem::OEMCMolBase >
        GetMissingFrags(OEMakeFragLib self, OEMolBase mol) -> OESystem::OEIterBase< OEChem::OEMCMolBase > *
        """
        return _oeomega.OEMakeFragLib_GetMissingFrags(self, *args)

    def AddFrag(self, arg2: "OEMCMolBase") -> "void":
        r"""AddFrag(OEMakeFragLib self, OEMCMolBase arg2)"""
        return _oeomega.OEMakeFragLib_AddFrag(self, arg2)

# Register OEMakeFragLib in _oeomega:
_oeomega.OEMakeFragLib_swigregister(OEMakeFragLib)

class OEFragBuilder(object):
    r"""Proxy of C++ OEConfGen::OEFragBuilder class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEFragBuilder self, OEFragBuilderOptions argOpts=OEConfGen::OEFragBuilderOptions()) -> OEFragBuilder
        __init__(OEFragBuilder self, OEFragBuilder arg2) -> OEFragBuilder
        """
        _oeomega.OEFragBuilder_swiginit(self, _oeomega.new_OEFragBuilder(*args))
    __swig_destroy__ = _oeomega.delete_OEFragBuilder

    def SetOptions(self, argOpts: "OEFragBuilderOptions") -> "void":
        r"""SetOptions(OEFragBuilder self, OEFragBuilderOptions argOpts)"""
        return _oeomega.OEFragBuilder_SetOptions(self, argOpts)

    def GetOptions(self) -> "OEConfGen::OEFragBuilderOptions const &":
        r"""GetOptions(OEFragBuilder self) -> OEFragBuilderOptions"""
        return _oeomega.OEFragBuilder_GetOptions(self)

    def SetForceField(self, argFF: "OEMolPotential::OEForceField &") -> "void":
        r"""SetForceField(OEFragBuilder self, OEMolPotential::OEForceField & argFF)"""
        return _oeomega.OEFragBuilder_SetForceField(self, argFF)

    def GetForceField(self) -> "OEMolPotential::OEForceField const &":
        r"""GetForceField(OEFragBuilder self) -> OEMolPotential::OEForceField const &"""
        return _oeomega.OEFragBuilder_GetForceField(self)

    def Build(self, mol: "OEMCMolBase") -> "unsigned int":
        r"""Build(OEFragBuilder self, OEMCMolBase mol) -> unsigned int"""
        return _oeomega.OEFragBuilder_Build(self, mol)

# Register OEFragBuilder in _oeomega:
_oeomega.OEFragBuilder_swigregister(OEFragBuilder)


def OEIsMacrocycle(mol: "OEMolBase", minSize: "unsigned int const"=10) -> "bool":
    r"""OEIsMacrocycle(OEMolBase mol, unsigned int const minSize=10) -> bool"""
    return _oeomega.OEIsMacrocycle(mol, minSize)
class OEMacrocycleBuilderOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEMacrocycleBuilderOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMacrocycleBuilderOptions self) -> OEMacrocycleBuilderOptions
        __init__(OEMacrocycleBuilderOptions self, OEMacrocycleBuilderOptions arg2) -> OEMacrocycleBuilderOptions
        """
        _oeomega.OEMacrocycleBuilderOptions_swiginit(self, _oeomega.new_OEMacrocycleBuilderOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEMacrocycleBuilderOptions

    def GetSkipRefinement(self) -> "bool":
        r"""GetSkipRefinement(OEMacrocycleBuilderOptions self) -> bool"""
        return _oeomega.OEMacrocycleBuilderOptions_GetSkipRefinement(self)

    def SetSkipRefinement(self, value: "bool const") -> "bool":
        r"""SetSkipRefinement(OEMacrocycleBuilderOptions self, bool const value) -> bool"""
        return _oeomega.OEMacrocycleBuilderOptions_SetSkipRefinement(self, value)

    def GetRefTolerance(self) -> "double":
        r"""GetRefTolerance(OEMacrocycleBuilderOptions self) -> double"""
        return _oeomega.OEMacrocycleBuilderOptions_GetRefTolerance(self)

    def SetRefTolerance(self, value: "double const") -> "bool":
        r"""SetRefTolerance(OEMacrocycleBuilderOptions self, double const value) -> bool"""
        return _oeomega.OEMacrocycleBuilderOptions_SetRefTolerance(self, value)

    def GetDielectricConst(self) -> "double":
        r"""GetDielectricConst(OEMacrocycleBuilderOptions self) -> double"""
        return _oeomega.OEMacrocycleBuilderOptions_GetDielectricConst(self)

    def SetDielectricConst(self, value: "double const") -> "bool":
        r"""SetDielectricConst(OEMacrocycleBuilderOptions self, double const value) -> bool"""
        return _oeomega.OEMacrocycleBuilderOptions_SetDielectricConst(self, value)

    def GetRandomSeed(self) -> "unsigned int":
        r"""GetRandomSeed(OEMacrocycleBuilderOptions self) -> unsigned int"""
        return _oeomega.OEMacrocycleBuilderOptions_GetRandomSeed(self)

    def SetRandomSeed(self, value: "unsigned int const") -> "bool":
        r"""SetRandomSeed(OEMacrocycleBuilderOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEMacrocycleBuilderOptions_SetRandomSeed(self, value)

    def CreateCopy(self) -> "OEConfGen::OEMacrocycleBuilderOptions *":
        r"""CreateCopy(OEMacrocycleBuilderOptions self) -> OEMacrocycleBuilderOptions"""
        return _oeomega.OEMacrocycleBuilderOptions_CreateCopy(self)

# Register OEMacrocycleBuilderOptions in _oeomega:
_oeomega.OEMacrocycleBuilderOptions_swigregister(OEMacrocycleBuilderOptions)

class OEMacrocycleOmegaOptions(oechem.OEOptions):
    r"""Proxy of C++ OEConfGen::OEMacrocycleOmegaOptions class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMacrocycleOmegaOptions self) -> OEMacrocycleOmegaOptions
        __init__(OEMacrocycleOmegaOptions self, OEMacrocycleOmegaOptions arg2) -> OEMacrocycleOmegaOptions
        """
        _oeomega.OEMacrocycleOmegaOptions_swiginit(self, _oeomega.new_OEMacrocycleOmegaOptions(*args))
    __swig_destroy__ = _oeomega.delete_OEMacrocycleOmegaOptions

    def GetIterCycleSize(self) -> "unsigned int":
        r"""GetIterCycleSize(OEMacrocycleOmegaOptions self) -> unsigned int"""
        return _oeomega.OEMacrocycleOmegaOptions_GetIterCycleSize(self)

    def SetIterCycleSize(self, value: "unsigned int const") -> "bool":
        r"""SetIterCycleSize(OEMacrocycleOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEMacrocycleOmegaOptions_SetIterCycleSize(self, value)

    def GetMaxIter(self) -> "unsigned int":
        r"""GetMaxIter(OEMacrocycleOmegaOptions self) -> unsigned int"""
        return _oeomega.OEMacrocycleOmegaOptions_GetMaxIter(self)

    def SetMaxIter(self, value: "unsigned int const") -> "bool":
        r"""SetMaxIter(OEMacrocycleOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEMacrocycleOmegaOptions_SetMaxIter(self, value)

    def SetMacrocycleBuilderOptions(self, opts: "OEMacrocycleBuilderOptions") -> "void":
        r"""SetMacrocycleBuilderOptions(OEMacrocycleOmegaOptions self, OEMacrocycleBuilderOptions opts)"""
        return _oeomega.OEMacrocycleOmegaOptions_SetMacrocycleBuilderOptions(self, opts)

    def GetMacrocycleBuilderOptions(self, *args) -> "OEConfGen::OEMacrocycleBuilderOptions const &":
        r"""
        GetMacrocycleBuilderOptions(OEMacrocycleOmegaOptions self) -> OEMacrocycleBuilderOptions
        GetMacrocycleBuilderOptions(OEMacrocycleOmegaOptions self) -> OEMacrocycleBuilderOptions
        """
        return _oeomega.OEMacrocycleOmegaOptions_GetMacrocycleBuilderOptions(self, *args)

    def SetSliceEnsembleOptions(self, opts: "OESliceEnsembleOptions") -> "void":
        r"""SetSliceEnsembleOptions(OEMacrocycleOmegaOptions self, OESliceEnsembleOptions opts)"""
        return _oeomega.OEMacrocycleOmegaOptions_SetSliceEnsembleOptions(self, opts)

    def GetSliceEnsembleOptions(self, *args) -> "OEConfGen::OESliceEnsembleOptions const &":
        r"""
        GetSliceEnsembleOptions(OEMacrocycleOmegaOptions self) -> OESliceEnsembleOptions
        GetSliceEnsembleOptions(OEMacrocycleOmegaOptions self) -> OESliceEnsembleOptions
        """
        return _oeomega.OEMacrocycleOmegaOptions_GetSliceEnsembleOptions(self, *args)

    def CreateCopy(self) -> "OEConfGen::OEMacrocycleOmegaOptions *":
        r"""CreateCopy(OEMacrocycleOmegaOptions self) -> OEMacrocycleOmegaOptions"""
        return _oeomega.OEMacrocycleOmegaOptions_CreateCopy(self)

    def GetMaxConfs(self) -> "unsigned int":
        r"""GetMaxConfs(OEMacrocycleOmegaOptions self) -> unsigned int"""
        return _oeomega.OEMacrocycleOmegaOptions_GetMaxConfs(self)

    def SetMaxConfs(self, value: "unsigned int const") -> "bool":
        r"""SetMaxConfs(OEMacrocycleOmegaOptions self, unsigned int const value) -> bool"""
        return _oeomega.OEMacrocycleOmegaOptions_SetMaxConfs(self, value)

    def GetEnergyWindow(self) -> "double":
        r"""GetEnergyWindow(OEMacrocycleOmegaOptions self) -> double"""
        return _oeomega.OEMacrocycleOmegaOptions_GetEnergyWindow(self)

    def SetEnergyWindow(self, value: "double const") -> "bool":
        r"""SetEnergyWindow(OEMacrocycleOmegaOptions self, double const value) -> bool"""
        return _oeomega.OEMacrocycleOmegaOptions_SetEnergyWindow(self, value)

# Register OEMacrocycleOmegaOptions in _oeomega:
_oeomega.OEMacrocycleOmegaOptions_swigregister(OEMacrocycleOmegaOptions)

class OEMacrocycleBuilder(object):
    r"""Proxy of C++ OEConfGen::OEMacrocycleBuilder class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMacrocycleBuilder self, OEMacrocycleBuilderOptions argOpts=OEConfGen::OEMacrocycleBuilderOptions()) -> OEMacrocycleBuilder
        __init__(OEMacrocycleBuilder self, OEMacrocycleBuilder arg2) -> OEMacrocycleBuilder
        """
        _oeomega.OEMacrocycleBuilder_swiginit(self, _oeomega.new_OEMacrocycleBuilder(*args))
    __swig_destroy__ = _oeomega.delete_OEMacrocycleBuilder

    def SetOptions(self, argOpts: "OEMacrocycleBuilderOptions") -> "void":
        r"""SetOptions(OEMacrocycleBuilder self, OEMacrocycleBuilderOptions argOpts)"""
        return _oeomega.OEMacrocycleBuilder_SetOptions(self, argOpts)

    def GetOptions(self, *args) -> "OEConfGen::OEMacrocycleBuilderOptions &":
        r"""
        GetOptions(OEMacrocycleBuilder self) -> OEMacrocycleBuilderOptions
        GetOptions(OEMacrocycleBuilder self) -> OEMacrocycleBuilderOptions
        """
        return _oeomega.OEMacrocycleBuilder_GetOptions(self, *args)

    def Build(self, *args) -> "unsigned int":
        r"""
        Build(OEMacrocycleBuilder self, OEMolBase mol) -> unsigned int
        Build(OEMacrocycleBuilder self, OEMCMolBase mol) -> unsigned int
        """
        return _oeomega.OEMacrocycleBuilder_Build(self, *args)

    def Prep(self, mol: "OEMolBase") -> "unsigned int":
        r"""Prep(OEMacrocycleBuilder self, OEMolBase mol) -> unsigned int"""
        return _oeomega.OEMacrocycleBuilder_Prep(self, mol)

# Register OEMacrocycleBuilder in _oeomega:
_oeomega.OEMacrocycleBuilder_swigregister(OEMacrocycleBuilder)

class OEMacrocycleOmega(object):
    r"""Proxy of C++ OEConfGen::OEMacrocycleOmega class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OEMacrocycleOmega self, OEMacrocycleOmegaOptions argOpts=OEConfGen::OEMacrocycleOmegaOptions()) -> OEMacrocycleOmega
        __init__(OEMacrocycleOmega self, OEMacrocycleOmega arg2) -> OEMacrocycleOmega
        """
        _oeomega.OEMacrocycleOmega_swiginit(self, _oeomega.new_OEMacrocycleOmega(*args))
    __swig_destroy__ = _oeomega.delete_OEMacrocycleOmega

    def SetOptions(self, argOpts: "OEMacrocycleOmegaOptions") -> "void":
        r"""SetOptions(OEMacrocycleOmega self, OEMacrocycleOmegaOptions argOpts)"""
        return _oeomega.OEMacrocycleOmega_SetOptions(self, argOpts)

    def GetOptions(self) -> "OEConfGen::OEMacrocycleOmegaOptions const &":
        r"""GetOptions(OEMacrocycleOmega self) -> OEMacrocycleOmegaOptions"""
        return _oeomega.OEMacrocycleOmega_GetOptions(self)

    def Build(self, mol: "OEMCMolBase") -> "unsigned int":
        r"""Build(OEMacrocycleOmega self, OEMCMolBase mol) -> unsigned int"""
        return _oeomega.OEMacrocycleOmega_Build(self, mol)

# Register OEMacrocycleOmega in _oeomega:
_oeomega.OEMacrocycleOmega_swigregister(OEMacrocycleOmega)

class OEConfSlicer(object):
    r"""Proxy of C++ OEConfGen::OEConfSlicer class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""__init__(OEConfSlicer self, OESliceEnsembleOptions opts=OEConfGen::OESliceEnsembleOptions()) -> OEConfSlicer"""
        _oeomega.OEConfSlicer_swiginit(self, _oeomega.new_OEConfSlicer(*args))
    __swig_destroy__ = _oeomega.delete_OEConfSlicer

    def Slice(self, mol: "OEMCMolBase") -> "bool":
        r"""Slice(OEConfSlicer self, OEMCMolBase mol) -> bool"""
        return _oeomega.OEConfSlicer_Slice(self, mol)

# Register OEConfSlicer in _oeomega:
_oeomega.OEConfSlicer_swigregister(OEConfSlicer)


def OESliceEnsemble(*args) -> "bool":
    r"""
    OESliceEnsemble(OEMCMolBase argMol, double argRms=, double argEWindow=, unsigned int argMaxConfs=) -> bool
    OESliceEnsemble(OEMCMolBase argMol, OESliceEnsembleOptions argSlicerOpts) -> bool
    """
    return _oeomega.OESliceEnsemble(*args)
class OETorDriver(object):
    r"""Proxy of C++ OEConfGen::OETorDriver class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(OETorDriver self, OETorDriveOptions argTorOpts=OEConfGen::OETorDriveOptions(), OESliceEnsembleOptions argSlicerOpts=OEConfGen::OESliceEnsembleOptions()) -> OETorDriver
        __init__(OETorDriver self, OETorDriver rhs) -> OETorDriver
        """
        _oeomega.OETorDriver_swiginit(self, _oeomega.new_OETorDriver(*args))
    __swig_destroy__ = _oeomega.delete_OETorDriver

    def SetTorDriveOptions(self, argOpts: "OETorDriveOptions") -> "void":
        r"""SetTorDriveOptions(OETorDriver self, OETorDriveOptions argOpts)"""
        return _oeomega.OETorDriver_SetTorDriveOptions(self, argOpts)

    def GetTorDriveOptions(self) -> "OEConfGen::OETorDriveOptions const &":
        r"""GetTorDriveOptions(OETorDriver self) -> OETorDriveOptions"""
        return _oeomega.OETorDriver_GetTorDriveOptions(self)

    def SetSliceEnsembleOptions(self, argOpts: "OESliceEnsembleOptions") -> "void":
        r"""SetSliceEnsembleOptions(OETorDriver self, OESliceEnsembleOptions argOpts)"""
        return _oeomega.OETorDriver_SetSliceEnsembleOptions(self, argOpts)

    def GetSliceEnsembleOptions(self) -> "OEConfGen::OESliceEnsembleOptions const &":
        r"""GetSliceEnsembleOptions(OETorDriver self) -> OESliceEnsembleOptions"""
        return _oeomega.OETorDriver_GetSliceEnsembleOptions(self)

    def GenerateConfs(self, *args) -> "unsigned int":
        r"""GenerateConfs(OETorDriver self, OEMCMolBase argMol, OEConfFixOptions argOpts=OEConfGen::OEConfFixOptions()) -> unsigned int"""
        return _oeomega.OETorDriver_GenerateConfs(self, *args)

# Register OETorDriver in _oeomega:
_oeomega.OETorDriver_swigregister(OETorDriver)


def CountNumRotors(mol: "OEMolBase") -> "unsigned int":
    r"""CountNumRotors(OEMolBase mol) -> unsigned int"""
    return _oeomega.CountNumRotors(mol)
OE_OEOMEGA2_VERSION = _oeomega.OE_OEOMEGA2_VERSION


def OEOmegaGetRelease() -> "char const *":
    r"""OEOmegaGetRelease() -> char const *"""
    return _oeomega.OEOmegaGetRelease()

def OEOmegaGetVersion() -> "unsigned int":
    r"""OEOmegaGetVersion() -> unsigned int"""
    return _oeomega.OEOmegaGetVersion()

def OEOmegaGetArch() -> "char const *":
    r"""OEOmegaGetArch() -> char const *"""
    return _oeomega.OEOmegaGetArch()

def OEOmegaGetPlatform() -> "char const *":
    r"""OEOmegaGetPlatform() -> char const *"""
    return _oeomega.OEOmegaGetPlatform()

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

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

def OEOmegaGetSite(*args) -> "std::string":
    r"""
    OEOmegaGetSite(std::string & site) -> bool
    OEOmegaGetSite() -> std::string
    """
    return _oeomega.OEOmegaGetSite(*args)


