# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.4.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

"""
CDF module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_cdf.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _CDF
else:
    import _CDF

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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(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__)


class SwigPyIterator(object):
    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
    __swig_destroy__ = _CDF.delete_SwigPyIterator

    def value(self):
        return _CDF.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _CDF.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _CDF.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _CDF.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _CDF.SwigPyIterator_equal(self, x)

    def copy(self):
        return _CDF.SwigPyIterator_copy(self)

    def next(self):
        return _CDF.SwigPyIterator_next(self)

    def __next__(self):
        return _CDF.SwigPyIterator___next__(self)

    def previous(self):
        return _CDF.SwigPyIterator_previous(self)

    def advance(self, n):
        return _CDF.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _CDF.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _CDF.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _CDF.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _CDF.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _CDF.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _CDF.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _CDF:
_CDF.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _CDF.process_exception(error, method_name, class_name)

import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

class ios_base(object):
    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
    erase_event = _CDF.ios_base_erase_event
    imbue_event = _CDF.ios_base_imbue_event
    copyfmt_event = _CDF.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _CDF.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _CDF.ios_base_flags(self, *args)

    def setf(self, *args):
        return _CDF.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _CDF.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _CDF.ios_base_precision(self, *args)

    def width(self, *args):
        return _CDF.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _CDF.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _CDF.ios_base_imbue(self, __loc)

    def getloc(self):
        return _CDF.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _CDF.ios_base_xalloc()

    def iword(self, __ix):
        return _CDF.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _CDF.ios_base_pword(self, __ix)
    __swig_destroy__ = _CDF.delete_ios_base

# Register ios_base in _CDF:
_CDF.ios_base_swigregister(ios_base)
cvar = _CDF.cvar
ios_base.boolalpha = _CDF.cvar.ios_base_boolalpha
ios_base.dec = _CDF.cvar.ios_base_dec
ios_base.fixed = _CDF.cvar.ios_base_fixed
ios_base.hex = _CDF.cvar.ios_base_hex
ios_base.internal = _CDF.cvar.ios_base_internal
ios_base.left = _CDF.cvar.ios_base_left
ios_base.oct = _CDF.cvar.ios_base_oct
ios_base.right = _CDF.cvar.ios_base_right
ios_base.scientific = _CDF.cvar.ios_base_scientific
ios_base.showbase = _CDF.cvar.ios_base_showbase
ios_base.showpoint = _CDF.cvar.ios_base_showpoint
ios_base.showpos = _CDF.cvar.ios_base_showpos
ios_base.skipws = _CDF.cvar.ios_base_skipws
ios_base.unitbuf = _CDF.cvar.ios_base_unitbuf
ios_base.uppercase = _CDF.cvar.ios_base_uppercase
ios_base.adjustfield = _CDF.cvar.ios_base_adjustfield
ios_base.basefield = _CDF.cvar.ios_base_basefield
ios_base.floatfield = _CDF.cvar.ios_base_floatfield
ios_base.badbit = _CDF.cvar.ios_base_badbit
ios_base.eofbit = _CDF.cvar.ios_base_eofbit
ios_base.failbit = _CDF.cvar.ios_base_failbit
ios_base.goodbit = _CDF.cvar.ios_base_goodbit
ios_base.app = _CDF.cvar.ios_base_app
ios_base.ate = _CDF.cvar.ios_base_ate
ios_base.binary = _CDF.cvar.ios_base_binary
ios_base.ios_base_in = _CDF.cvar.ios_base_ios_base_in
ios_base.out = _CDF.cvar.ios_base_out
ios_base.trunc = _CDF.cvar.ios_base_trunc
ios_base.beg = _CDF.cvar.ios_base_beg
ios_base.cur = _CDF.cvar.ios_base_cur
ios_base.end = _CDF.cvar.ios_base_end

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

    def rdstate(self):
        return _CDF.ios_rdstate(self)

    def clear(self, *args):
        return _CDF.ios_clear(self, *args)

    def setstate(self, __state):
        return _CDF.ios_setstate(self, __state)

    def good(self):
        return _CDF.ios_good(self)

    def eof(self):
        return _CDF.ios_eof(self)

    def fail(self):
        return _CDF.ios_fail(self)

    def bad(self):
        return _CDF.ios_bad(self)

    def exceptions(self, *args):
        return _CDF.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _CDF.ios_swiginit(self, _CDF.new_ios(__sb))
    __swig_destroy__ = _CDF.delete_ios

    def tie(self, *args):
        return _CDF.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _CDF.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _CDF.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _CDF.ios_fill(self, *args)

    def imbue(self, __loc):
        return _CDF.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _CDF.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _CDF.ios_widen(self, __c)

# Register ios in _CDF:
_CDF.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _CDF.ostream_swiginit(self, _CDF.new_ostream(__sb))
    __swig_destroy__ = _CDF.delete_ostream

    def __lshift__(self, *args):
        return _CDF.ostream___lshift__(self, *args)

    def put(self, __c):
        return _CDF.ostream_put(self, __c)

    def write(self, __s, __n):
        return _CDF.ostream_write(self, __s, __n)

    def flush(self):
        return _CDF.ostream_flush(self)

    def tellp(self):
        return _CDF.ostream_tellp(self)

    def seekp(self, *args):
        return _CDF.ostream_seekp(self, *args)

# Register ostream in _CDF:
_CDF.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _CDF.istream_swiginit(self, _CDF.new_istream(__sb))
    __swig_destroy__ = _CDF.delete_istream

    def __rshift__(self, *args):
        return _CDF.istream___rshift__(self, *args)

    def gcount(self):
        return _CDF.istream_gcount(self)

    def get(self, *args):
        return _CDF.istream_get(self, *args)

    def getline(self, *args):
        return _CDF.istream_getline(self, *args)

    def ignore(self, *args):
        return _CDF.istream_ignore(self, *args)

    def peek(self):
        return _CDF.istream_peek(self)

    def read(self, __s, __n):
        return _CDF.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _CDF.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _CDF.istream_putback(self, __c)

    def unget(self):
        return _CDF.istream_unget(self)

    def sync(self):
        return _CDF.istream_sync(self)

    def tellg(self):
        return _CDF.istream_tellg(self)

    def seekg(self, *args):
        return _CDF.istream_seekg(self, *args)

# Register istream in _CDF:
_CDF.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _CDF.iostream_swiginit(self, _CDF.new_iostream(__sb))
    __swig_destroy__ = _CDF.delete_iostream

# Register iostream in _CDF:
_CDF.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _CDF.endl_cb_ptr
endl = _CDF.endl
ends_cb_ptr = _CDF.ends_cb_ptr
ends = _CDF.ends
flush_cb_ptr = _CDF.flush_cb_ptr
flush = _CDF.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.CDM
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.Resource
import OCC.Core.PCDM
import OCC.Core.Storage

from enum import IntEnum
from OCC.Core.Exception import *

CDF_SSNS_OK = _CDF.CDF_SSNS_OK
CDF_SSNS_ReplacingAnExistentDocument = _CDF.CDF_SSNS_ReplacingAnExistentDocument
CDF_SSNS_OpenDocument = _CDF.CDF_SSNS_OpenDocument
CDF_SCS_Consistent = _CDF.CDF_SCS_Consistent
CDF_SCS_Unconsistent = _CDF.CDF_SCS_Unconsistent
CDF_SCS_Stored = _CDF.CDF_SCS_Stored
CDF_SCS_Modified = _CDF.CDF_SCS_Modified
CDF_TS_OK = _CDF.CDF_TS_OK
CDF_TS_NoCurrentDocument = _CDF.CDF_TS_NoCurrentDocument
CDF_TS_NoDriver = _CDF.CDF_TS_NoDriver
CDF_TS_NoSubComponentDriver = _CDF.CDF_TS_NoSubComponentDriver
CDF_TOA_New = _CDF.CDF_TOA_New
CDF_TOA_Modified = _CDF.CDF_TOA_Modified
CDF_TOA_Unchanged = _CDF.CDF_TOA_Unchanged


class CDF_StoreSetNameStatus(IntEnum):
	CDF_SSNS_OK = 0
	CDF_SSNS_ReplacingAnExistentDocument = 1
	CDF_SSNS_OpenDocument = 2
CDF_SSNS_OK = CDF_StoreSetNameStatus.CDF_SSNS_OK
CDF_SSNS_ReplacingAnExistentDocument = CDF_StoreSetNameStatus.CDF_SSNS_ReplacingAnExistentDocument
CDF_SSNS_OpenDocument = CDF_StoreSetNameStatus.CDF_SSNS_OpenDocument

class CDF_SubComponentStatus(IntEnum):
	CDF_SCS_Consistent = 0
	CDF_SCS_Unconsistent = 1
	CDF_SCS_Stored = 2
	CDF_SCS_Modified = 3
CDF_SCS_Consistent = CDF_SubComponentStatus.CDF_SCS_Consistent
CDF_SCS_Unconsistent = CDF_SubComponentStatus.CDF_SCS_Unconsistent
CDF_SCS_Stored = CDF_SubComponentStatus.CDF_SCS_Stored
CDF_SCS_Modified = CDF_SubComponentStatus.CDF_SCS_Modified

class CDF_TryStoreStatus(IntEnum):
	CDF_TS_OK = 0
	CDF_TS_NoCurrentDocument = 1
	CDF_TS_NoDriver = 2
	CDF_TS_NoSubComponentDriver = 3
CDF_TS_OK = CDF_TryStoreStatus.CDF_TS_OK
CDF_TS_NoCurrentDocument = CDF_TryStoreStatus.CDF_TS_NoCurrentDocument
CDF_TS_NoDriver = CDF_TryStoreStatus.CDF_TS_NoDriver
CDF_TS_NoSubComponentDriver = CDF_TryStoreStatus.CDF_TS_NoSubComponentDriver

class CDF_TypeOfActivation(IntEnum):
	CDF_TOA_New = 0
	CDF_TOA_Modified = 1
	CDF_TOA_Unchanged = 2
CDF_TOA_New = CDF_TypeOfActivation.CDF_TOA_New
CDF_TOA_Modified = CDF_TypeOfActivation.CDF_TOA_Modified
CDF_TOA_Unchanged = CDF_TypeOfActivation.CDF_TOA_Unchanged


def Handle_CDF_Application_Create():
    return _CDF.Handle_CDF_Application_Create()

def Handle_CDF_Application_DownCast(t):
    return _CDF.Handle_CDF_Application_DownCast(t)

def Handle_CDF_Application_IsNull(t):
    return _CDF.Handle_CDF_Application_IsNull(t)

def Handle_CDF_Directory_Create():
    return _CDF.Handle_CDF_Directory_Create()

def Handle_CDF_Directory_DownCast(t):
    return _CDF.Handle_CDF_Directory_DownCast(t)

def Handle_CDF_Directory_IsNull(t):
    return _CDF.Handle_CDF_Directory_IsNull(t)

def Handle_CDF_MetaDataDriver_Create():
    return _CDF.Handle_CDF_MetaDataDriver_Create()

def Handle_CDF_MetaDataDriver_DownCast(t):
    return _CDF.Handle_CDF_MetaDataDriver_DownCast(t)

def Handle_CDF_MetaDataDriver_IsNull(t):
    return _CDF.Handle_CDF_MetaDataDriver_IsNull(t)

def Handle_CDF_MetaDataDriverFactory_Create():
    return _CDF.Handle_CDF_MetaDataDriverFactory_Create()

def Handle_CDF_MetaDataDriverFactory_DownCast(t):
    return _CDF.Handle_CDF_MetaDataDriverFactory_DownCast(t)

def Handle_CDF_MetaDataDriverFactory_IsNull(t):
    return _CDF.Handle_CDF_MetaDataDriverFactory_IsNull(t)

def Handle_CDF_StoreList_Create():
    return _CDF.Handle_CDF_StoreList_Create()

def Handle_CDF_StoreList_DownCast(t):
    return _CDF.Handle_CDF_StoreList_DownCast(t)

def Handle_CDF_StoreList_IsNull(t):
    return _CDF.Handle_CDF_StoreList_IsNull(t)

def Handle_CDF_FWOSDriver_Create():
    return _CDF.Handle_CDF_FWOSDriver_Create()

def Handle_CDF_FWOSDriver_DownCast(t):
    return _CDF.Handle_CDF_FWOSDriver_DownCast(t)

def Handle_CDF_FWOSDriver_IsNull(t):
    return _CDF.Handle_CDF_FWOSDriver_IsNull(t)
class CDF_Application(OCC.Core.CDM.CDM_Application):
    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 CanClose(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        CDM_CanCloseStatus

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Application_CanClose(self, *args)

    def CanRetrieve(self, *args):
        r"""

        Parameters
        ----------
        theFolder: str
        theName: str
        theAppendMode: bool

        Return
        -------
        PCDM_ReaderStatus

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        theFolder: str
        theName: str
        theVersion: str
        theAppendMode: bool

        Return
        -------
        PCDM_ReaderStatus

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Application_CanRetrieve(self, *args)

    def Close(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        removes the document of the current session directory and closes the document;.

        """
        return _CDF.CDF_Application_Close(self, *args)

    def DefaultFolder(self, *args):
        r"""
        Return
        -------
        Standard_ExtString

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Application_DefaultFolder(self, *args)

    def Format(self, *args):
        r"""

        Parameters
        ----------
        aFileName: str
        theFormat: str

        Return
        -------
        bool

        Description
        -----------
        try to retrieve a Format directly in the file or in application resource by using extension. returns True if found;.

        """
        return _CDF.CDF_Application_Format(self, *args)

    def GetRetrieveStatus(self, *args):
        r"""
        Return
        -------
        PCDM_ReaderStatus

        Description
        -----------
        Checks status after Retrieve.

        """
        return _CDF.CDF_Application_GetRetrieveStatus(self, *args)

    def InitDocument(self, *args):
        r"""

        Parameters
        ----------
        theDoc: CDM_Document

        Return
        -------
        None

        Description
        -----------
        Initialize a document for the applicative session. This virtual function is called by NewDocument and should be redefined for each specific application.

        """
        return _CDF.CDF_Application_InitDocument(self, *args)

    @staticmethod
    def Load(*args):
        r"""

        Parameters
        ----------
        aGUID: Standard_GUID

        Return
        -------
        opencascade::handle<CDF_Application>

        Description
        -----------
        plugs an application. //! Open is used - for opening a Document that has been created in an application - for opening a Document from the database - for opening a Document from a file. The Open methods always add the document in the session directory and calls the virtual Activate method. The document is considered to be opened until Close is used. To be storable, a document must be opened by an application since the application resources are needed to store it.

        """
        return _CDF.CDF_Application_Load(*args)

    def MetaDataDriver(self, *args):
        r"""
        Return
        -------
        opencascade::handle<CDF_MetaDataDriver>

        Description
        -----------
        returns MetaDatdDriver of this application.

        """
        return _CDF.CDF_Application_MetaDataDriver(self, *args)

    def NewDocument(self, *args):
        r"""

        Parameters
        ----------
        theFormat: str
        theDoc: CDM_Document

        Return
        -------
        None

        Description
        -----------
        Constructs an new empty document. This document will have the specified format. If InitDocument() is redefined for a specific application, the new document is handled by the applicative session.

        """
        return _CDF.CDF_Application_NewDocument(self, *args)

    def Open(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        puts the document in the current session directory and calls the virtual method Activate on it.

        """
        return _CDF.CDF_Application_Open(self, *args)

    def Read(self, *args):
        r"""

        Parameters
        ----------
        theIStream: str
        theDocument: CDM_Document
        theFilter: PCDM_ReaderFilter (optional, default to opencascade::handle<PCDM_ReaderFilter>())
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads theDocument from standard SEEKABLE stream theIStream, the stream should support SEEK functionality.

        """
        return _CDF.CDF_Application_Read(self, *args)

    def ReaderFromFormat(self, *args):
        r"""

        Parameters
        ----------
        aFormat: str

        Return
        -------
        opencascade::handle<PCDM_Reader>

        Description
        -----------
        Returns instance of read driver for specified format. //! Default implementation uses plugin mechanism to load reader dynamically. For this to work, application resources should define GUID of the plugin as value of [Format].RetrievalPlugin, and 'Plugin' resource should define name of plugin library to be loaded as value of [GUID].Location. Plugin library should provide method PLUGINFACTORY returning instance of the reader for the same GUID (see Plugin_Macro.hxx). //! In case if reader is not available, will raise Standard_NoSuchObject or other exception if raised by plugin loader.

        """
        return _CDF.CDF_Application_ReaderFromFormat(self, *args)

    def Retrieve(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str
        aName: str
        UseStorageConfiguration: bool (optional, default to Standard_True)
        theFilter: PCDM_ReaderFilter (optional, default to opencascade::handle<PCDM_ReaderFilter>())
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<CDM_Document>

        Description
        -----------
        This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is Standard_True. The content of {aFolder}, {aName} and {aVersion} depends on the Database Manager system. If the DBMS is only based on the OS, {aFolder} is a directory and {aName} is the name of a file. In this case the use of the syntax with {aVersion} has no sense. For example: //! opencascade::handle<CDM_Document> theDocument=myApplication->Retrieve('/home/cascade','box.dsg'); If the DBMS is EUCLID/Design Manager, {aFolder}, {aName} have the form they have in EUCLID/Design Manager. For example: //! opencascade::handle<CDM_Document> theDocument=myApplication->Retrieve('|user|cascade','box'); //! Since the version is not specified in this syntax, the latest will be used. A link is kept with the database through an instance of CDM_MetaData.

        Parameters
        ----------
        aFolder: str
        aName: str
        aVersion: str
        UseStorageConfiguration: bool (optional, default to Standard_True)
        theFilter: PCDM_ReaderFilter (optional, default to opencascade::handle<PCDM_ReaderFilter>())
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<CDM_Document>

        Description
        -----------
        This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is Standard_True. -- If the DBMS is only based on the OS, this syntax should not be used. //! If the DBMS is EUCLID/Design Manager, {aFolder}, {aName} and {aVersion} have the form they have in EUCLID/Design Manager. For example: //! opencascade::handle<CDM_Document> theDocument=myApplication->Retrieve('|user|cascade','box','2'); A link is kept with the database through an instance of CDM_MetaData.

        """
        return _CDF.CDF_Application_Retrieve(self, *args)

    def SetDefaultFolder(self, *args):
        r"""

        Parameters
        ----------
        aFolder: Standard_ExtString

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Application_SetDefaultFolder(self, *args)

    def WriterFromFormat(self, *args):
        r"""

        Parameters
        ----------
        aFormat: str

        Return
        -------
        opencascade::handle<PCDM_StorageDriver>

        Description
        -----------
        Returns instance of storage driver for specified format. //! Default implementation uses plugin mechanism to load driver dynamically. For this to work, application resources should define GUID of the plugin as value of [Format].StoragePlugin, and 'Plugin' resource should define name of plugin library to be loaded as value of [GUID].Location. Plugin library should provide method PLUGINFACTORY returning instance of the reader for the same GUID (see Plugin_Macro.hxx). //! In case if driver is not available, will raise Standard_NoSuchObject or other exception if raised by plugin loader.

        """
        return _CDF.CDF_Application_WriterFromFormat(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_CDF_Application_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_Application

# Register CDF_Application in _CDF:
_CDF.CDF_Application_swigregister(CDF_Application)
class CDF_Directory(OCC.Core.Standard.Standard_Transient):
    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"""
        Return
        -------
        None

        Description
        -----------
        Creates an empty directory.

        """
        _CDF.CDF_Directory_swiginit(self, _CDF.new_CDF_Directory(*args))

    def Add(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        adds a document into the directory.

        """
        return _CDF.CDF_Directory_Add(self, *args)

    def Contains(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        bool

        Description
        -----------
        Returns true if the document aDocument is in the directory.

        """
        return _CDF.CDF_Directory_Contains(self, *args)

    def IsEmpty(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        returns true if the directory is empty.

        """
        return _CDF.CDF_Directory_IsEmpty(self, *args)

    def Last(self, *args):
        r"""
        Return
        -------
        opencascade::handle<CDM_Document>

        Description
        -----------
        returns the last document (if any) which has been added in the directory.

        """
        return _CDF.CDF_Directory_Last(self, *args)

    def Length(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        returns the number of documents of the directory.

        """
        return _CDF.CDF_Directory_Length(self, *args)

    def Remove(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        removes the document.

        """
        return _CDF.CDF_Directory_Remove(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_CDF_Directory_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_Directory

# Register CDF_Directory in _CDF:
_CDF.CDF_Directory_swigregister(CDF_Directory)
class CDF_MetaDataDriver(OCC.Core.Standard.Standard_Transient):
    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 BuildFileName(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        TCollection_ExtendedString

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_BuildFileName(self, *args)

    def CreateDependsOn(self, *args):
        r"""

        Parameters
        ----------
        aFirstData: CDM_MetaData
        aSecondData: CDM_MetaData

        Return
        -------
        None

        Description
        -----------
        Creates a 'Depends On' relation between two Datas. By default does nothing.

        """
        return _CDF.CDF_MetaDataDriver_CreateDependsOn(self, *args)

    def CreateMetaData(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document
        aFileName: str

        Return
        -------
        opencascade::handle<CDM_MetaData>

        Description
        -----------
        should create meta-data corresponding to aData and maintaining a meta-link between these meta-data and aFileName CreateMetaData is called by CreateData If the metadata-driver has version capabilities, version must be set in the returned Data.

        """
        return _CDF.CDF_MetaDataDriver_CreateMetaData(self, *args)

    def CreateReference(self, *args):
        r"""

        Parameters
        ----------
        aFrom: CDM_MetaData
        aTo: CDM_MetaData
        aReferenceIdentifier: int
        aToDocumentVersion: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_CreateReference(self, *args)

    def DefaultFolder(self, *args):
        r"""
        Return
        -------
        TCollection_ExtendedString

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_DefaultFolder(self, *args)

    def Find(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str
        aName: str
        aVersion: str

        Return
        -------
        bool

        Description
        -----------
        should indicate whether meta-data exist in the DBMS corresponding to the Data. aVersion may be NULL;.

        Parameters
        ----------
        aFolder: str
        aName: str

        Return
        -------
        bool

        Description
        -----------
        calls Find with an empty version.

        """
        return _CDF.CDF_MetaDataDriver_Find(self, *args)

    def FindFolder(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_FindFolder(self, *args)

    def HasReadPermission(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str
        aName: str
        aVersion: str

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_HasReadPermission(self, *args)

    def HasVersion(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str
        aName: str

        Return
        -------
        bool

        Description
        -----------
        by default return Standard_True.

        """
        return _CDF.CDF_MetaDataDriver_HasVersion(self, *args)

    def HasVersionCapability(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        returns true if the MetaDataDriver can manage different versions of a Data. By default, returns Standard_False.

        """
        return _CDF.CDF_MetaDataDriver_HasVersionCapability(self, *args)

    def LastVersion(self, *args):
        r"""

        Parameters
        ----------
        aMetaData: CDM_MetaData

        Return
        -------
        opencascade::handle<CDM_MetaData>

        Description
        -----------
        by default returns aMetaDATA should return the MetaData stored in the DBMS with the meta-data corresponding to the path. If the MetaDataDriver has version management capabilities the version has to be set in the returned MetaData. MetaData is called by GetMetaData If the version is not included in the path , MetaData should return the last version of the metadata is deferred;.

        """
        return _CDF.CDF_MetaDataDriver_LastVersion(self, *args)

    def MetaData(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str
        aName: str
        aVersion: str

        Return
        -------
        opencascade::handle<CDM_MetaData>

        Description
        -----------
        should return the MetaData stored in the DBMS with the meta-data corresponding to the Data. If the MetaDataDriver has version management capabilities the version has to be set in the returned MetaData. aVersion may be NULL MetaData is called by GetMetaData If the version is set to NULL, MetaData should return the last version of the metadata.

        Parameters
        ----------
        aFolder: str
        aName: str

        Return
        -------
        opencascade::handle<CDM_MetaData>

        Description
        -----------
        calls MetaData with an empty version.

        """
        return _CDF.CDF_MetaDataDriver_MetaData(self, *args)

    def ReferenceIterator(self, *args):
        r"""

        Parameters
        ----------
        theMessageDriver: Message_Messenger

        Return
        -------
        opencascade::handle<PCDM_ReferenceIterator>

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriver_ReferenceIterator(self, *args)

    def SetName(self, *args):
        r"""

        Parameters
        ----------
        aDocument: CDM_Document
        aName: str

        Return
        -------
        TCollection_ExtendedString

        Description
        -----------
        this method is useful if the name of an object -- depends on the metadatadriver. For example a Driver -- based on the operating system can choose to add the extension of file to create to the object.

        """
        return _CDF.CDF_MetaDataDriver_SetName(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_CDF_MetaDataDriver_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_MetaDataDriver

# Register CDF_MetaDataDriver in _CDF:
_CDF.CDF_MetaDataDriver_swigregister(CDF_MetaDataDriver)
class CDF_MetaDataDriverFactory(OCC.Core.Standard.Standard_Transient):
    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 Build(self, *args):
        r"""
        Return
        -------
        opencascade::handle<CDF_MetaDataDriver>

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_MetaDataDriverFactory_Build(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_CDF_MetaDataDriverFactory_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_MetaDataDriverFactory

# Register CDF_MetaDataDriverFactory in _CDF:
_CDF.CDF_MetaDataDriverFactory_swigregister(CDF_MetaDataDriverFactory)
class CDF_Store(object):
    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"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        creates a store list from the document of the current selection.

        """
        _CDF.CDF_Store_swiginit(self, _CDF.new_CDF_Store(*args))

    def AssociatedStatusText(self, *args):
        r"""
        Return
        -------
        Standard_ExtString

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_AssociatedStatusText(self, *args)

    def Comment(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_Comment(self, *args)

    def CurrentIsConsistent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_CurrentIsConsistent(self, *args)

    def Description(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        returns the description of the format of the main object.

        """
        return _CDF.CDF_Store_Description(self, *args)

    def Folder(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        returns the folder in which the current document will be stored.

        """
        return _CDF.CDF_Store_Folder(self, *args)

    def HasAPreviousVersion(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_HasAPreviousVersion(self, *args)

    def IsConsistent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_IsConsistent(self, *args)

    def IsMainDocument(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        returns true if the currentdocument is the main one, ie the document of the current selection.

        """
        return _CDF.CDF_Store_IsMainDocument(self, *args)

    def IsModified(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_IsModified(self, *args)

    def IsStored(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        returns true if the current document is already stored.

        """
        return _CDF.CDF_Store_IsStored(self, *args)

    def MetaDataPath(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        returns the path of the previous store is the object is already stored, otherwise an empty string;.

        """
        return _CDF.CDF_Store_MetaDataPath(self, *args)

    def Name(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        returns the name under which the current document will be stored.

        """
        return _CDF.CDF_Store_Name(self, *args)

    def Path(self, *args):
        r"""
        Return
        -------
        Standard_ExtString

        Description
        -----------
        returns the complete path of the created meta-data.

        """
        return _CDF.CDF_Store_Path(self, *args)

    def PreviousVersion(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TCollection_HExtendedString>

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_PreviousVersion(self, *args)

    def Realize(self, *args):
        r"""

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_Realize(self, *args)

    def RecheckName(self, *args):
        r"""
        Return
        -------
        CDF_StoreSetNameStatus

        Description
        -----------
        defines the name under which the document should be stored. uses for example after modification of the folder.

        """
        return _CDF.CDF_Store_RecheckName(self, *args)

    def SetComment(self, *args):
        r"""

        Parameters
        ----------
        aComment: Standard_ExtString

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_SetComment(self, *args)

    def SetCurrent(self, *args):
        r"""

        Parameters
        ----------
        aPresentation: Standard_ExtString

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_SetCurrent(self, *args)

    def SetFolder(self, *args):
        r"""

        Parameters
        ----------
        aFolder: str

        Return
        -------
        bool

        Description
        -----------
        defines the folder in which the document should be stored. returns Standard_True if the Folder exists, Standard_False otherwise.

        Parameters
        ----------
        aFolder: Standard_ExtString

        Return
        -------
        bool

        Description
        -----------
        defines the folder in which the document should be stored. returns Standard_True if the Folder exists, Standard_False otherwise.

        """
        return _CDF.CDF_Store_SetFolder(self, *args)

    def SetMain(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        the two following methods can be used just after Realize or Import -- method to know if thes methods worked correctly, and if not why.

        """
        return _CDF.CDF_Store_SetMain(self, *args)

    def SetName(self, *args):
        r"""

        Parameters
        ----------
        aName: Standard_ExtString

        Return
        -------
        CDF_StoreSetNameStatus

        Description
        -----------
        defines the name under which the document should be stored.

        Parameters
        ----------
        aName: str

        Return
        -------
        CDF_StoreSetNameStatus

        Description
        -----------
        defines the name under which the document should be stored.

        """
        return _CDF.CDF_Store_SetName(self, *args)

    def SetPreviousVersion(self, *args):
        r"""

        Parameters
        ----------
        aPreviousVersion: Standard_ExtString

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_SetPreviousVersion(self, *args)

    def StoreStatus(self, *args):
        r"""
        Return
        -------
        PCDM_StoreStatus

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_Store_StoreStatus(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_Store

# Register CDF_Store in _CDF:
_CDF.CDF_Store_swigregister(CDF_Store)
class CDF_StoreList(OCC.Core.Standard.Standard_Transient):
    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"""

        Parameters
        ----------
        aDocument: CDM_Document

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _CDF.CDF_StoreList_swiginit(self, _CDF.new_CDF_StoreList(*args))

    def Init(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_StoreList_Init(self, *args)

    def IsConsistent(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_StoreList_IsConsistent(self, *args)

    def More(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_StoreList_More(self, *args)

    def Next(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_StoreList_Next(self, *args)

    def Store(self, *args):
        r"""

        Parameters
        ----------
        aMetaData: CDM_MetaData
        aStatusAssociatedText: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        PCDM_StoreStatus

        Description
        -----------
        stores each object of the storelist in the reverse order of which they had been added.

        """
        return _CDF.CDF_StoreList_Store(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        opencascade::handle<CDM_Document>

        Description
        -----------
        No available documentation.

        """
        return _CDF.CDF_StoreList_Value(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_CDF_StoreList_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_StoreList

# Register CDF_StoreList in _CDF:
_CDF.CDF_StoreList_swigregister(CDF_StoreList)
class CDF_FWOSDriver(CDF_MetaDataDriver):
    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"""

        Parameters
        ----------
        theLookUpTable: CDM_MetaDataLookUpTable

        Return
        -------
        None

        Description
        -----------
        Initializes the MetaDatadriver connected to specified look-up table. Note that the created driver will keep reference to the table, thus it must have life time longer than this object.

        """
        _CDF.CDF_FWOSDriver_swiginit(self, _CDF.new_CDF_FWOSDriver(*args))


    @staticmethod
    def DownCast(t):
      return Handle_CDF_FWOSDriver_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _CDF.delete_CDF_FWOSDriver

# Register CDF_FWOSDriver in _CDF:
_CDF.CDF_FWOSDriver_swigregister(CDF_FWOSDriver)

@classnotwrapped
class CDF_DirectoryIterator:
	pass





@deprecated
def CDF_Application_Load(*args):
	return CDF_Application.Load(*args)



