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

"""
TDF module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_tdf.html
"""

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

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _TDF
else:
    import _TDF

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


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__ = _TDF.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _TDF.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _TDF.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _TDF.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _TDF.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _TDF.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _TDF.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _TDF.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _TDF.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _TDF.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _TDF.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _TDF.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _TDF.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _TDF.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _TDF.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _TDF.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _TDF.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _TDF:
_TDF.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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _TDF.process_exception(error, method_name, class_name)

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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.TCollection
import OCC.Core.TColStd

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

TDF_LabelNodeImportMsk = _TDF.TDF_LabelNodeImportMsk
TDF_LabelNodeAttModMsk = _TDF.TDF_LabelNodeAttModMsk
TDF_LabelNodeMayModMsk = _TDF.TDF_LabelNodeMayModMsk
TDF_LabelNodeFlagsMsk = _TDF.TDF_LabelNodeFlagsMsk



def Handle_TDF_Attribute_Create() -> "opencascade::handle< TDF_Attribute >":
    return _TDF.Handle_TDF_Attribute_Create()

def Handle_TDF_Attribute_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_Attribute >":
    return _TDF.Handle_TDF_Attribute_DownCast(t)

def Handle_TDF_Attribute_IsNull(t: "opencascade::handle< TDF_Attribute > const &") -> "bool":
    return _TDF.Handle_TDF_Attribute_IsNull(t)

def Handle_TDF_AttributeDelta_Create() -> "opencascade::handle< TDF_AttributeDelta >":
    return _TDF.Handle_TDF_AttributeDelta_Create()

def Handle_TDF_AttributeDelta_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_AttributeDelta >":
    return _TDF.Handle_TDF_AttributeDelta_DownCast(t)

def Handle_TDF_AttributeDelta_IsNull(t: "opencascade::handle< TDF_AttributeDelta > const &") -> "bool":
    return _TDF.Handle_TDF_AttributeDelta_IsNull(t)

def Handle_TDF_Data_Create() -> "opencascade::handle< TDF_Data >":
    return _TDF.Handle_TDF_Data_Create()

def Handle_TDF_Data_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_Data >":
    return _TDF.Handle_TDF_Data_DownCast(t)

def Handle_TDF_Data_IsNull(t: "opencascade::handle< TDF_Data > const &") -> "bool":
    return _TDF.Handle_TDF_Data_IsNull(t)

def Handle_TDF_DataSet_Create() -> "opencascade::handle< TDF_DataSet >":
    return _TDF.Handle_TDF_DataSet_Create()

def Handle_TDF_DataSet_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DataSet >":
    return _TDF.Handle_TDF_DataSet_DownCast(t)

def Handle_TDF_DataSet_IsNull(t: "opencascade::handle< TDF_DataSet > const &") -> "bool":
    return _TDF.Handle_TDF_DataSet_IsNull(t)

def Handle_TDF_Delta_Create() -> "opencascade::handle< TDF_Delta >":
    return _TDF.Handle_TDF_Delta_Create()

def Handle_TDF_Delta_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_Delta >":
    return _TDF.Handle_TDF_Delta_DownCast(t)

def Handle_TDF_Delta_IsNull(t: "opencascade::handle< TDF_Delta > const &") -> "bool":
    return _TDF.Handle_TDF_Delta_IsNull(t)

def Handle_TDF_RelocationTable_Create() -> "opencascade::handle< TDF_RelocationTable >":
    return _TDF.Handle_TDF_RelocationTable_Create()

def Handle_TDF_RelocationTable_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_RelocationTable >":
    return _TDF.Handle_TDF_RelocationTable_DownCast(t)

def Handle_TDF_RelocationTable_IsNull(t: "opencascade::handle< TDF_RelocationTable > const &") -> "bool":
    return _TDF.Handle_TDF_RelocationTable_IsNull(t)

def Handle_TDF_DeltaOnAddition_Create() -> "opencascade::handle< TDF_DeltaOnAddition >":
    return _TDF.Handle_TDF_DeltaOnAddition_Create()

def Handle_TDF_DeltaOnAddition_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DeltaOnAddition >":
    return _TDF.Handle_TDF_DeltaOnAddition_DownCast(t)

def Handle_TDF_DeltaOnAddition_IsNull(t: "opencascade::handle< TDF_DeltaOnAddition > const &") -> "bool":
    return _TDF.Handle_TDF_DeltaOnAddition_IsNull(t)

def Handle_TDF_DeltaOnForget_Create() -> "opencascade::handle< TDF_DeltaOnForget >":
    return _TDF.Handle_TDF_DeltaOnForget_Create()

def Handle_TDF_DeltaOnForget_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DeltaOnForget >":
    return _TDF.Handle_TDF_DeltaOnForget_DownCast(t)

def Handle_TDF_DeltaOnForget_IsNull(t: "opencascade::handle< TDF_DeltaOnForget > const &") -> "bool":
    return _TDF.Handle_TDF_DeltaOnForget_IsNull(t)

def Handle_TDF_DeltaOnModification_Create() -> "opencascade::handle< TDF_DeltaOnModification >":
    return _TDF.Handle_TDF_DeltaOnModification_Create()

def Handle_TDF_DeltaOnModification_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DeltaOnModification >":
    return _TDF.Handle_TDF_DeltaOnModification_DownCast(t)

def Handle_TDF_DeltaOnModification_IsNull(t: "opencascade::handle< TDF_DeltaOnModification > const &") -> "bool":
    return _TDF.Handle_TDF_DeltaOnModification_IsNull(t)

def Handle_TDF_DeltaOnRemoval_Create() -> "opencascade::handle< TDF_DeltaOnRemoval >":
    return _TDF.Handle_TDF_DeltaOnRemoval_Create()

def Handle_TDF_DeltaOnRemoval_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DeltaOnRemoval >":
    return _TDF.Handle_TDF_DeltaOnRemoval_DownCast(t)

def Handle_TDF_DeltaOnRemoval_IsNull(t: "opencascade::handle< TDF_DeltaOnRemoval > const &") -> "bool":
    return _TDF.Handle_TDF_DeltaOnRemoval_IsNull(t)

def Handle_TDF_DeltaOnResume_Create() -> "opencascade::handle< TDF_DeltaOnResume >":
    return _TDF.Handle_TDF_DeltaOnResume_Create()

def Handle_TDF_DeltaOnResume_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DeltaOnResume >":
    return _TDF.Handle_TDF_DeltaOnResume_DownCast(t)

def Handle_TDF_DeltaOnResume_IsNull(t: "opencascade::handle< TDF_DeltaOnResume > const &") -> "bool":
    return _TDF.Handle_TDF_DeltaOnResume_IsNull(t)

def Handle_TDF_Reference_Create() -> "opencascade::handle< TDF_Reference >":
    return _TDF.Handle_TDF_Reference_Create()

def Handle_TDF_Reference_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_Reference >":
    return _TDF.Handle_TDF_Reference_DownCast(t)

def Handle_TDF_Reference_IsNull(t: "opencascade::handle< TDF_Reference > const &") -> "bool":
    return _TDF.Handle_TDF_Reference_IsNull(t)

def Handle_TDF_TagSource_Create() -> "opencascade::handle< TDF_TagSource >":
    return _TDF.Handle_TDF_TagSource_Create()

def Handle_TDF_TagSource_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_TagSource >":
    return _TDF.Handle_TDF_TagSource_DownCast(t)

def Handle_TDF_TagSource_IsNull(t: "opencascade::handle< TDF_TagSource > const &") -> "bool":
    return _TDF.Handle_TDF_TagSource_IsNull(t)

def Handle_TDF_DefaultDeltaOnModification_Create() -> "opencascade::handle< TDF_DefaultDeltaOnModification >":
    return _TDF.Handle_TDF_DefaultDeltaOnModification_Create()

def Handle_TDF_DefaultDeltaOnModification_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DefaultDeltaOnModification >":
    return _TDF.Handle_TDF_DefaultDeltaOnModification_DownCast(t)

def Handle_TDF_DefaultDeltaOnModification_IsNull(t: "opencascade::handle< TDF_DefaultDeltaOnModification > const &") -> "bool":
    return _TDF.Handle_TDF_DefaultDeltaOnModification_IsNull(t)

def Handle_TDF_DefaultDeltaOnRemoval_Create() -> "opencascade::handle< TDF_DefaultDeltaOnRemoval >":
    return _TDF.Handle_TDF_DefaultDeltaOnRemoval_Create()

def Handle_TDF_DefaultDeltaOnRemoval_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_DefaultDeltaOnRemoval >":
    return _TDF.Handle_TDF_DefaultDeltaOnRemoval_DownCast(t)

def Handle_TDF_DefaultDeltaOnRemoval_IsNull(t: "opencascade::handle< TDF_DefaultDeltaOnRemoval > const &") -> "bool":
    return _TDF.Handle_TDF_DefaultDeltaOnRemoval_IsNull(t)

def Handle_TDF_HAttributeArray1_Create() -> "opencascade::handle< TDF_HAttributeArray1 >":
    return _TDF.Handle_TDF_HAttributeArray1_Create()

def Handle_TDF_HAttributeArray1_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< TDF_HAttributeArray1 >":
    return _TDF.Handle_TDF_HAttributeArray1_DownCast(t)

def Handle_TDF_HAttributeArray1_IsNull(t: "opencascade::handle< TDF_HAttributeArray1 > const &") -> "bool":
    return _TDF.Handle_TDF_HAttributeArray1_IsNull(t)
class TDF_AttributeArray1(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Array1< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeArray1_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeArray1_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeArray1_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeArray1_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeArray1_swiginit(self, _TDF.new_TDF_AttributeArray1(*args))

    def Init(self, theValue: "opencascade::handle< TDF_Attribute > const &") -> "void":
        return _TDF.TDF_AttributeArray1_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeArray1_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeArray1_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TDF.TDF_AttributeArray1_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeArray1_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeArray1_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _TDF.TDF_AttributeArray1_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _TDF.TDF_AttributeArray1_IsAllocated(self)

    def Assign(self, theOther: "TDF_AttributeArray1") -> "NCollection_Array1< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeArray1_Assign(self, theOther)

    def Move(self, theOther: "TDF_AttributeArray1") -> "NCollection_Array1< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeArray1_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeArray1_Set(self, *args)

    def First(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeArray1_First(self)

    def ChangeFirst(self) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeArray1_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeArray1_Last(self)

    def ChangeLast(self) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeArray1_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeArray1_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeArray1_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeArray1___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< TDF_Attribute > const &") -> "void":
        return _TDF.TDF_AttributeArray1_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        return _TDF.TDF_AttributeArray1_Resize(self, theLower, theUpper, theToCopyData)
    __swig_destroy__ = _TDF.delete_TDF_AttributeArray1

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register TDF_AttributeArray1 in _TDF:
_TDF.TDF_AttributeArray1_swigregister(TDF_AttributeArray1)

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

    def begin(self) -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::iterator":
        return _TDF.TDF_AttributeDataMap_begin(self)

    def end(self) -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::iterator":
        return _TDF.TDF_AttributeDataMap_end(self)

    def cbegin(self) -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeDataMap_cbegin(self)

    def cend(self) -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeDataMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeDataMap_swiginit(self, _TDF.new_TDF_AttributeDataMap(*args))

    def Exchange(self, theOther: "TDF_AttributeDataMap") -> "void":
        return _TDF.TDF_AttributeDataMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_AttributeDataMap") -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeDataMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeDataMap") -> "NCollection_DataMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeDataMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeDataMap_ReSize(self, N)

    def Bind(self, theKey: "opencascade::handle< TDF_Attribute > const &", theItem: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDataMap_Bind(self, theKey, theItem)

    def Bound(self, theKey: "opencascade::handle< TDF_Attribute > const &", theItem: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > *":
        return _TDF.TDF_AttributeDataMap_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDataMap_IsBound(self, theKey)

    def UnBind(self, theKey: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDataMap_UnBind(self, theKey)

    def Seek(self, theKey: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > const *":
        return _TDF.TDF_AttributeDataMap_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_AttributeDataMap_Find(self, *args)

    def ChangeSeek(self, theKey: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > *":
        return _TDF.TDF_AttributeDataMap_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeDataMap_ChangeFind(self, theKey)

    def __call__(self, *args) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeDataMap___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_AttributeDataMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_AttributeDataMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeDataMap_Size(self)

# Register TDF_AttributeDataMap in _TDF:
_TDF.TDF_AttributeDataMap_swigregister(TDF_AttributeDataMap)

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

    def begin(self) -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > >::iterator":
        return _TDF.TDF_AttributeDeltaList_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > >::iterator":
        return _TDF.TDF_AttributeDeltaList_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > >::const_iterator":
        return _TDF.TDF_AttributeDeltaList_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > >::const_iterator":
        return _TDF.TDF_AttributeDeltaList_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeDeltaList_swiginit(self, _TDF.new_TDF_AttributeDeltaList(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeDeltaList_Size(self)

    def Assign(self, theOther: "TDF_AttributeDeltaList") -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > > &":
        return _TDF.TDF_AttributeDeltaList_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeDeltaList") -> "NCollection_List< opencascade::handle< TDF_AttributeDelta > > &":
        return _TDF.TDF_AttributeDeltaList_Set(self, theOther)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_AttributeDeltaList_Clear(self, theAllocator)

    def First(self) -> "opencascade::handle< TDF_AttributeDelta > const &":
        return _TDF.TDF_AttributeDeltaList_First(self)

    def Last(self) -> "opencascade::handle< TDF_AttributeDelta > const &":
        return _TDF.TDF_AttributeDeltaList_Last(self)

    def Append(self, *args) -> "void":
        return _TDF.TDF_AttributeDeltaList_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_AttributeDeltaList_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TDF.TDF_AttributeDeltaList_RemoveFirst(self)

    def Remove(self, theIter: "TDF_ListIteratorOfAttributeDeltaList") -> "void":
        return _TDF.TDF_AttributeDeltaList_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_AttributeDeltaList_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_AttributeDeltaList_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TDF.TDF_AttributeDeltaList_Reverse(self)
    __swig_destroy__ = _TDF.delete_TDF_AttributeDeltaList

    def __len__(self):
        return self.Size()


# Register TDF_AttributeDeltaList in _TDF:
_TDF.TDF_AttributeDeltaList_swigregister(TDF_AttributeDeltaList)

class TDF_AttributeDoubleMap(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):
        _TDF.TDF_AttributeDoubleMap_swiginit(self, _TDF.new_TDF_AttributeDoubleMap(*args))

    def Exchange(self, theOther: "TDF_AttributeDoubleMap") -> "void":
        return _TDF.TDF_AttributeDoubleMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_AttributeDoubleMap") -> "NCollection_DoubleMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeDoubleMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeDoubleMap") -> "NCollection_DoubleMap< opencascade::handle< TDF_Attribute >,opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeDoubleMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeDoubleMap_ReSize(self, N)

    def Bind(self, theKey1: "opencascade::handle< TDF_Attribute > const &", theKey2: "opencascade::handle< TDF_Attribute > const &") -> "void":
        return _TDF.TDF_AttributeDoubleMap_Bind(self, theKey1, theKey2)

    def AreBound(self, theKey1: "opencascade::handle< TDF_Attribute > const &", theKey2: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_AreBound(self, theKey1, theKey2)

    def IsBound1(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_IsBound1(self, theKey1)

    def IsBound2(self, theKey2: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_IsBound2(self, theKey2)

    def UnBind1(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_UnBind1(self, theKey1)

    def UnBind2(self, theKey2: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_UnBind2(self, theKey2)

    def Find1(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_Find1(self, *args)

    def Seek1(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > const *":
        return _TDF.TDF_AttributeDoubleMap_Seek1(self, theKey1)

    def Find2(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_AttributeDoubleMap_Find2(self, *args)

    def Seek2(self, theKey2: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > const *":
        return _TDF.TDF_AttributeDoubleMap_Seek2(self, theKey2)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_AttributeDoubleMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_AttributeDoubleMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeDoubleMap_Size(self)

# Register TDF_AttributeDoubleMap in _TDF:
_TDF.TDF_AttributeDoubleMap_swigregister(TDF_AttributeDoubleMap)

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

    def cbegin(self) -> "NCollection_IndexedMap< opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeIndexedMap_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeIndexedMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeIndexedMap_swiginit(self, _TDF.new_TDF_AttributeIndexedMap(*args))

    def Exchange(self, theOther: "TDF_AttributeIndexedMap") -> "void":
        return _TDF.TDF_AttributeIndexedMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_AttributeIndexedMap") -> "NCollection_IndexedMap< opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeIndexedMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeIndexedMap") -> "NCollection_IndexedMap< opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeIndexedMap_Set(self, theOther)

    def ReSize(self, theExtent: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeIndexedMap_ReSize(self, theExtent)

    def Add(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Integer":
        return _TDF.TDF_AttributeIndexedMap_Add(self, theKey1)

    def Contains(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeIndexedMap_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "opencascade::handle< TDF_Attribute > const &") -> "void":
        return _TDF.TDF_AttributeIndexedMap_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeIndexedMap_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TDF.TDF_AttributeIndexedMap_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeIndexedMap_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeIndexedMap_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeIndexedMap_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeIndexedMap___call__(self, theIndex)

    def FindIndex(self, theKey1: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Integer":
        return _TDF.TDF_AttributeIndexedMap_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_AttributeIndexedMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_AttributeIndexedMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeIndexedMap_Size(self)

# Register TDF_AttributeIndexedMap in _TDF:
_TDF.TDF_AttributeIndexedMap_swigregister(TDF_AttributeIndexedMap)

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

    def begin(self) -> "NCollection_List< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeList_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeList_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeList_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeList_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeList_swiginit(self, _TDF.new_TDF_AttributeList(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeList_Size(self)

    def Assign(self, theOther: "TDF_AttributeList") -> "NCollection_List< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeList_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeList") -> "NCollection_List< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeList_Set(self, theOther)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_AttributeList_Clear(self, theAllocator)

    def First(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeList_First(self)

    def Last(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeList_Last(self)

    def Append(self, *args) -> "void":
        return _TDF.TDF_AttributeList_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_AttributeList_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TDF.TDF_AttributeList_RemoveFirst(self)

    def Remove(self, theIter: "TDF_ListIteratorOfAttributeList") -> "void":
        return _TDF.TDF_AttributeList_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_AttributeList_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_AttributeList_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TDF.TDF_AttributeList_Reverse(self)
    __swig_destroy__ = _TDF.delete_TDF_AttributeList

    def __len__(self):
        return self.Size()


# Register TDF_AttributeList in _TDF:
_TDF.TDF_AttributeList_swigregister(TDF_AttributeList)

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

    def cbegin(self) -> "NCollection_Map< opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeMap_cbegin(self)

    def cend(self) -> "NCollection_Map< opencascade::handle< TDF_Attribute >,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _TDF.TDF_AttributeMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeMap_swiginit(self, _TDF.new_TDF_AttributeMap(*args))

    def Exchange(self, theOther: "TDF_AttributeMap") -> "void":
        return _TDF.TDF_AttributeMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_AttributeMap") -> "NCollection_Map< opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeMap") -> "NCollection_Map< opencascade::handle< TDF_Attribute >,TColStd_MapTransientHasher > &":
        return _TDF.TDF_AttributeMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeMap_ReSize(self, N)

    def Add(self, K: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Add(self, K)

    def Added(self, K: "opencascade::handle< TDF_Attribute > const &") -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeMap_Added(self, K)

    def Remove(self, K: "opencascade::handle< TDF_Attribute > const &") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Remove(self, K)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_AttributeMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_AttributeMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeMap_Size(self)

    def IsEqual(self, theOther: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_IsEqual(self, theOther)

    def Contains(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Contains(self, *args)

    def Union(self, theLeft: "TDF_AttributeMap", theRight: "TDF_AttributeMap") -> "void":
        return _TDF.TDF_AttributeMap_Union(self, theLeft, theRight)

    def Unite(self, theOther: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Unite(self, theOther)

    def HasIntersection(self, theMap: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_HasIntersection(self, theMap)

    def Intersection(self, theLeft: "TDF_AttributeMap", theRight: "TDF_AttributeMap") -> "void":
        return _TDF.TDF_AttributeMap_Intersection(self, theLeft, theRight)

    def Intersect(self, theOther: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Intersect(self, theOther)

    def Subtraction(self, theLeft: "TDF_AttributeMap", theRight: "TDF_AttributeMap") -> "void":
        return _TDF.TDF_AttributeMap_Subtraction(self, theLeft, theRight)

    def Subtract(self, theOther: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Subtract(self, theOther)

    def Difference(self, theLeft: "TDF_AttributeMap", theRight: "TDF_AttributeMap") -> "void":
        return _TDF.TDF_AttributeMap_Difference(self, theLeft, theRight)

    def Differ(self, theOther: "TDF_AttributeMap") -> "Standard_Boolean":
        return _TDF.TDF_AttributeMap_Differ(self, theOther)

# Register TDF_AttributeMap in _TDF:
_TDF.TDF_AttributeMap_swigregister(TDF_AttributeMap)

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

    def begin(self) -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeSequence_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > >::iterator":
        return _TDF.TDF_AttributeSequence_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeSequence_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > >::const_iterator":
        return _TDF.TDF_AttributeSequence_cend(self)

    def __init__(self, *args):
        _TDF.TDF_AttributeSequence_swiginit(self, _TDF.new_TDF_AttributeSequence(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeSequence_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeSequence_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeSequence_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TDF.TDF_AttributeSequence_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TDF.TDF_AttributeSequence_IsEmpty(self)

    def Reverse(self) -> "void":
        return _TDF.TDF_AttributeSequence_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _TDF.TDF_AttributeSequence_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "TDF_HAllocator") -> "void":
        return _TDF.TDF_AttributeSequence_delNode(theNode, theAl)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_AttributeSequence_Clear(self, theAllocator)

    def Assign(self, theOther: "TDF_AttributeSequence") -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeSequence_Assign(self, theOther)

    def Set(self, theOther: "TDF_AttributeSequence") -> "NCollection_Sequence< opencascade::handle< TDF_Attribute > > &":
        return _TDF.TDF_AttributeSequence_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _TDF.TDF_AttributeSequence_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _TDF.TDF_AttributeSequence_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_AttributeSequence_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_AttributeSequence_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_AttributeSequence_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "TDF_AttributeSequence") -> "void":
        return _TDF.TDF_AttributeSequence_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeSequence_First(self)

    def ChangeFirst(self) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeSequence_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeSequence_Last(self)

    def ChangeLast(self) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeSequence_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_AttributeSequence_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeSequence_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_AttributeSequence___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< TDF_Attribute > const &") -> "void":
        return _TDF.TDF_AttributeSequence_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _TDF.delete_TDF_AttributeSequence

    def __len__(self):
        return self.Size()


# Register TDF_AttributeSequence in _TDF:
_TDF.TDF_AttributeSequence_swigregister(TDF_AttributeSequence)

def TDF_AttributeSequence_delNode(theNode: "NCollection_SeqNode *", theAl: "TDF_HAllocator") -> "void":
    return _TDF.TDF_AttributeSequence_delNode(theNode, theAl)

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

    def begin(self) -> "NCollection_List< opencascade::handle< TDF_Delta > >::iterator":
        return _TDF.TDF_DeltaList_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< TDF_Delta > >::iterator":
        return _TDF.TDF_DeltaList_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< TDF_Delta > >::const_iterator":
        return _TDF.TDF_DeltaList_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< TDF_Delta > >::const_iterator":
        return _TDF.TDF_DeltaList_cend(self)

    def __init__(self, *args):
        _TDF.TDF_DeltaList_swiginit(self, _TDF.new_TDF_DeltaList(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_DeltaList_Size(self)

    def Assign(self, theOther: "TDF_DeltaList") -> "NCollection_List< opencascade::handle< TDF_Delta > > &":
        return _TDF.TDF_DeltaList_Assign(self, theOther)

    def Set(self, theOther: "TDF_DeltaList") -> "NCollection_List< opencascade::handle< TDF_Delta > > &":
        return _TDF.TDF_DeltaList_Set(self, theOther)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_DeltaList_Clear(self, theAllocator)

    def First(self) -> "opencascade::handle< TDF_Delta > const &":
        return _TDF.TDF_DeltaList_First(self)

    def Last(self) -> "opencascade::handle< TDF_Delta > const &":
        return _TDF.TDF_DeltaList_Last(self)

    def Append(self, *args) -> "void":
        return _TDF.TDF_DeltaList_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_DeltaList_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TDF.TDF_DeltaList_RemoveFirst(self)

    def Remove(self, theIter: "TDF_ListIteratorOfDeltaList") -> "void":
        return _TDF.TDF_DeltaList_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_DeltaList_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_DeltaList_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TDF.TDF_DeltaList_Reverse(self)
    __swig_destroy__ = _TDF.delete_TDF_DeltaList

    def __len__(self):
        return self.Size()


# Register TDF_DeltaList in _TDF:
_TDF.TDF_DeltaList_swigregister(TDF_DeltaList)

class TDF_GUIDProgIDMap(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):
        _TDF.TDF_GUIDProgIDMap_swiginit(self, _TDF.new_TDF_GUIDProgIDMap(*args))

    def Exchange(self, theOther: "TDF_GUIDProgIDMap") -> "void":
        return _TDF.TDF_GUIDProgIDMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_GUIDProgIDMap") -> "NCollection_DoubleMap< Standard_GUID,TCollection_ExtendedString,Standard_GUID,TCollection_ExtendedString > &":
        return _TDF.TDF_GUIDProgIDMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_GUIDProgIDMap") -> "NCollection_DoubleMap< Standard_GUID,TCollection_ExtendedString,Standard_GUID,TCollection_ExtendedString > &":
        return _TDF.TDF_GUIDProgIDMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_GUIDProgIDMap_ReSize(self, N)

    def Bind(self, theKey1: "Standard_GUID", theKey2: "TCollection_ExtendedString") -> "void":
        return _TDF.TDF_GUIDProgIDMap_Bind(self, theKey1, theKey2)

    def AreBound(self, theKey1: "Standard_GUID", theKey2: "TCollection_ExtendedString") -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_AreBound(self, theKey1, theKey2)

    def IsBound1(self, theKey1: "Standard_GUID") -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_IsBound1(self, theKey1)

    def IsBound2(self, theKey2: "TCollection_ExtendedString") -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_IsBound2(self, theKey2)

    def UnBind1(self, theKey1: "Standard_GUID") -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_UnBind1(self, theKey1)

    def UnBind2(self, theKey2: "TCollection_ExtendedString") -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_UnBind2(self, theKey2)

    def Find1(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_Find1(self, *args)

    def Seek1(self, theKey1: "Standard_GUID") -> "TCollection_ExtendedString const *":
        return _TDF.TDF_GUIDProgIDMap_Seek1(self, theKey1)

    def Find2(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_GUIDProgIDMap_Find2(self, *args)

    def Seek2(self, theKey2: "TCollection_ExtendedString") -> "Standard_GUID const *":
        return _TDF.TDF_GUIDProgIDMap_Seek2(self, theKey2)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_GUIDProgIDMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_GUIDProgIDMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_GUIDProgIDMap_Size(self)

# Register TDF_GUIDProgIDMap in _TDF:
_TDF.TDF_GUIDProgIDMap_swigregister(TDF_GUIDProgIDMap)

class TDF_HAllocator(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):
        _TDF.TDF_HAllocator_swiginit(self, _TDF.new_TDF_HAllocator())
    __swig_destroy__ = _TDF.delete_TDF_HAllocator

# Register TDF_HAllocator in _TDF:
_TDF.TDF_HAllocator_swigregister(TDF_HAllocator)

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

    def begin(self) -> "NCollection_List< Standard_GUID >::iterator":
        return _TDF.TDF_IDList_begin(self)

    def end(self) -> "NCollection_List< Standard_GUID >::iterator":
        return _TDF.TDF_IDList_end(self)

    def cbegin(self) -> "NCollection_List< Standard_GUID >::const_iterator":
        return _TDF.TDF_IDList_cbegin(self)

    def cend(self) -> "NCollection_List< Standard_GUID >::const_iterator":
        return _TDF.TDF_IDList_cend(self)

    def __init__(self, *args):
        _TDF.TDF_IDList_swiginit(self, _TDF.new_TDF_IDList(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_IDList_Size(self)

    def Assign(self, theOther: "TDF_IDList") -> "NCollection_List< Standard_GUID > &":
        return _TDF.TDF_IDList_Assign(self, theOther)

    def Set(self, theOther: "TDF_IDList") -> "NCollection_List< Standard_GUID > &":
        return _TDF.TDF_IDList_Set(self, theOther)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_IDList_Clear(self, theAllocator)

    def First(self) -> "Standard_GUID const &":
        return _TDF.TDF_IDList_First(self)

    def Last(self) -> "Standard_GUID const &":
        return _TDF.TDF_IDList_Last(self)

    def Append(self, *args) -> "void":
        return _TDF.TDF_IDList_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_IDList_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TDF.TDF_IDList_RemoveFirst(self)

    def Remove(self, theIter: "TDF_ListIteratorOfIDList") -> "void":
        return _TDF.TDF_IDList_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_IDList_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_IDList_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TDF.TDF_IDList_Reverse(self)
    __swig_destroy__ = _TDF.delete_TDF_IDList

    def __len__(self):
        return self.Size()


# Register TDF_IDList in _TDF:
_TDF.TDF_IDList_swigregister(TDF_IDList)

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

    def cbegin(self) -> "NCollection_Map< Standard_GUID,Standard_GUID >::const_iterator":
        return _TDF.TDF_IDMap_cbegin(self)

    def cend(self) -> "NCollection_Map< Standard_GUID,Standard_GUID >::const_iterator":
        return _TDF.TDF_IDMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_IDMap_swiginit(self, _TDF.new_TDF_IDMap(*args))

    def Exchange(self, theOther: "TDF_IDMap") -> "void":
        return _TDF.TDF_IDMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_IDMap") -> "NCollection_Map< Standard_GUID,Standard_GUID > &":
        return _TDF.TDF_IDMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_IDMap") -> "NCollection_Map< Standard_GUID,Standard_GUID > &":
        return _TDF.TDF_IDMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_IDMap_ReSize(self, N)

    def Add(self, K: "Standard_GUID") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Add(self, K)

    def Added(self, K: "Standard_GUID") -> "Standard_GUID const &":
        return _TDF.TDF_IDMap_Added(self, K)

    def Remove(self, K: "Standard_GUID") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Remove(self, K)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_IDMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_IDMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_IDMap_Size(self)

    def IsEqual(self, theOther: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_IsEqual(self, theOther)

    def Contains(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Contains(self, *args)

    def Union(self, theLeft: "TDF_IDMap", theRight: "TDF_IDMap") -> "void":
        return _TDF.TDF_IDMap_Union(self, theLeft, theRight)

    def Unite(self, theOther: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Unite(self, theOther)

    def HasIntersection(self, theMap: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_HasIntersection(self, theMap)

    def Intersection(self, theLeft: "TDF_IDMap", theRight: "TDF_IDMap") -> "void":
        return _TDF.TDF_IDMap_Intersection(self, theLeft, theRight)

    def Intersect(self, theOther: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Intersect(self, theOther)

    def Subtraction(self, theLeft: "TDF_IDMap", theRight: "TDF_IDMap") -> "void":
        return _TDF.TDF_IDMap_Subtraction(self, theLeft, theRight)

    def Subtract(self, theOther: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Subtract(self, theOther)

    def Difference(self, theLeft: "TDF_IDMap", theRight: "TDF_IDMap") -> "void":
        return _TDF.TDF_IDMap_Difference(self, theLeft, theRight)

    def Differ(self, theOther: "TDF_IDMap") -> "Standard_Boolean":
        return _TDF.TDF_IDMap_Differ(self, theOther)

# Register TDF_IDMap in _TDF:
_TDF.TDF_IDMap_swigregister(TDF_IDMap)

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

    def begin(self) -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher >::iterator":
        return _TDF.TDF_LabelDataMap_begin(self)

    def end(self) -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher >::iterator":
        return _TDF.TDF_LabelDataMap_end(self)

    def cbegin(self) -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelDataMap_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelDataMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelDataMap_swiginit(self, _TDF.new_TDF_LabelDataMap(*args))

    def Exchange(self, theOther: "TDF_LabelDataMap") -> "void":
        return _TDF.TDF_LabelDataMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_LabelDataMap") -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelDataMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelDataMap") -> "NCollection_DataMap< TDF_Label,TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelDataMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelDataMap_ReSize(self, N)

    def Bind(self, theKey: "TDF_Label", theItem: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDataMap_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TDF_Label", theItem: "TDF_Label") -> "TDF_Label *":
        return _TDF.TDF_LabelDataMap_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDataMap_IsBound(self, theKey)

    def UnBind(self, theKey: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDataMap_UnBind(self, theKey)

    def Seek(self, theKey: "TDF_Label") -> "TDF_Label const *":
        return _TDF.TDF_LabelDataMap_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_LabelDataMap_Find(self, *args)

    def ChangeSeek(self, theKey: "TDF_Label") -> "TDF_Label *":
        return _TDF.TDF_LabelDataMap_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TDF_Label") -> "TDF_Label &":
        return _TDF.TDF_LabelDataMap_ChangeFind(self, theKey)

    def __call__(self, *args) -> "TDF_Label &":
        return _TDF.TDF_LabelDataMap___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_LabelDataMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_LabelDataMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelDataMap_Size(self)

# Register TDF_LabelDataMap in _TDF:
_TDF.TDF_LabelDataMap_swigregister(TDF_LabelDataMap)

class TDF_LabelDoubleMap(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):
        _TDF.TDF_LabelDoubleMap_swiginit(self, _TDF.new_TDF_LabelDoubleMap(*args))

    def Exchange(self, theOther: "TDF_LabelDoubleMap") -> "void":
        return _TDF.TDF_LabelDoubleMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_LabelDoubleMap") -> "NCollection_DoubleMap< TDF_Label,TDF_Label,TDF_LabelMapHasher,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelDoubleMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelDoubleMap") -> "NCollection_DoubleMap< TDF_Label,TDF_Label,TDF_LabelMapHasher,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelDoubleMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelDoubleMap_ReSize(self, N)

    def Bind(self, theKey1: "TDF_Label", theKey2: "TDF_Label") -> "void":
        return _TDF.TDF_LabelDoubleMap_Bind(self, theKey1, theKey2)

    def AreBound(self, theKey1: "TDF_Label", theKey2: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_AreBound(self, theKey1, theKey2)

    def IsBound1(self, theKey1: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_IsBound1(self, theKey1)

    def IsBound2(self, theKey2: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_IsBound2(self, theKey2)

    def UnBind1(self, theKey1: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_UnBind1(self, theKey1)

    def UnBind2(self, theKey2: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_UnBind2(self, theKey2)

    def Find1(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_Find1(self, *args)

    def Seek1(self, theKey1: "TDF_Label") -> "TDF_Label const *":
        return _TDF.TDF_LabelDoubleMap_Seek1(self, theKey1)

    def Find2(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_LabelDoubleMap_Find2(self, *args)

    def Seek2(self, theKey2: "TDF_Label") -> "TDF_Label const *":
        return _TDF.TDF_LabelDoubleMap_Seek2(self, theKey2)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_LabelDoubleMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_LabelDoubleMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelDoubleMap_Size(self)

# Register TDF_LabelDoubleMap in _TDF:
_TDF.TDF_LabelDoubleMap_swigregister(TDF_LabelDoubleMap)

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

    def cbegin(self) -> "NCollection_IndexedMap< TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelIndexedMap_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelIndexedMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelIndexedMap_swiginit(self, _TDF.new_TDF_LabelIndexedMap(*args))

    def Exchange(self, theOther: "TDF_LabelIndexedMap") -> "void":
        return _TDF.TDF_LabelIndexedMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_LabelIndexedMap") -> "NCollection_IndexedMap< TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelIndexedMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelIndexedMap") -> "NCollection_IndexedMap< TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelIndexedMap_Set(self, theOther)

    def ReSize(self, theExtent: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelIndexedMap_ReSize(self, theExtent)

    def Add(self, theKey1: "TDF_Label") -> "Standard_Integer":
        return _TDF.TDF_LabelIndexedMap_Add(self, theKey1)

    def Contains(self, theKey1: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelIndexedMap_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "TDF_Label") -> "void":
        return _TDF.TDF_LabelIndexedMap_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelIndexedMap_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _TDF.TDF_LabelIndexedMap_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelIndexedMap_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelIndexedMap_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "TDF_Label const &":
        return _TDF.TDF_LabelIndexedMap_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "TDF_Label const &":
        return _TDF.TDF_LabelIndexedMap___call__(self, theIndex)

    def FindIndex(self, theKey1: "TDF_Label") -> "Standard_Integer":
        return _TDF.TDF_LabelIndexedMap_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_LabelIndexedMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_LabelIndexedMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelIndexedMap_Size(self)

# Register TDF_LabelIndexedMap in _TDF:
_TDF.TDF_LabelIndexedMap_swigregister(TDF_LabelIndexedMap)

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

    def begin(self) -> "NCollection_DataMap< TDF_Label,int,TDF_LabelMapHasher >::iterator":
        return _TDF.TDF_LabelIntegerMap_begin(self)

    def end(self) -> "NCollection_DataMap< TDF_Label,int,TDF_LabelMapHasher >::iterator":
        return _TDF.TDF_LabelIntegerMap_end(self)

    def cbegin(self) -> "NCollection_DataMap< TDF_Label,int,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelIntegerMap_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TDF_Label,int,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelIntegerMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelIntegerMap_swiginit(self, _TDF.new_TDF_LabelIntegerMap(*args))

    def Exchange(self, theOther: "TDF_LabelIntegerMap") -> "void":
        return _TDF.TDF_LabelIntegerMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_LabelIntegerMap") -> "NCollection_DataMap< TDF_Label,Standard_Integer,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelIntegerMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelIntegerMap") -> "NCollection_DataMap< TDF_Label,Standard_Integer,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelIntegerMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelIntegerMap_ReSize(self, N)

    def Bind(self, theKey: "TDF_Label", theItem: "int const &") -> "Standard_Boolean":
        return _TDF.TDF_LabelIntegerMap_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TDF_Label", theItem: "int const &") -> "int *":
        return _TDF.TDF_LabelIntegerMap_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelIntegerMap_IsBound(self, theKey)

    def UnBind(self, theKey: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelIntegerMap_UnBind(self, theKey)

    def Seek(self, theKey: "TDF_Label") -> "int const *":
        return _TDF.TDF_LabelIntegerMap_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_LabelIntegerMap_Find(self, *args)

    def ChangeSeek(self, theKey: "TDF_Label") -> "int *":
        return _TDF.TDF_LabelIntegerMap_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TDF_Label") -> "int &":
        return _TDF.TDF_LabelIntegerMap_ChangeFind(self, theKey)

    def __call__(self, *args) -> "int &":
        return _TDF.TDF_LabelIntegerMap___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_LabelIntegerMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_LabelIntegerMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelIntegerMap_Size(self)

# Register TDF_LabelIntegerMap in _TDF:
_TDF.TDF_LabelIntegerMap_swigregister(TDF_LabelIntegerMap)

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

    def begin(self) -> "NCollection_List< TDF_Label >::iterator":
        return _TDF.TDF_LabelList_begin(self)

    def end(self) -> "NCollection_List< TDF_Label >::iterator":
        return _TDF.TDF_LabelList_end(self)

    def cbegin(self) -> "NCollection_List< TDF_Label >::const_iterator":
        return _TDF.TDF_LabelList_cbegin(self)

    def cend(self) -> "NCollection_List< TDF_Label >::const_iterator":
        return _TDF.TDF_LabelList_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelList_swiginit(self, _TDF.new_TDF_LabelList(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelList_Size(self)

    def Assign(self, theOther: "TDF_LabelList") -> "NCollection_List< TDF_Label > &":
        return _TDF.TDF_LabelList_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelList") -> "NCollection_List< TDF_Label > &":
        return _TDF.TDF_LabelList_Set(self, theOther)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_LabelList_Clear(self, theAllocator)

    def First(self) -> "TDF_Label const &":
        return _TDF.TDF_LabelList_First(self)

    def Last(self) -> "TDF_Label const &":
        return _TDF.TDF_LabelList_Last(self)

    def Append(self, *args) -> "void":
        return _TDF.TDF_LabelList_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_LabelList_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _TDF.TDF_LabelList_RemoveFirst(self)

    def Remove(self, theIter: "TDF_ListIteratorOfLabelList") -> "void":
        return _TDF.TDF_LabelList_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_LabelList_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_LabelList_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _TDF.TDF_LabelList_Reverse(self)
    __swig_destroy__ = _TDF.delete_TDF_LabelList

    def __len__(self):
        return self.Size()


# Register TDF_LabelList in _TDF:
_TDF.TDF_LabelList_swigregister(TDF_LabelList)

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

    def cbegin(self) -> "NCollection_Map< TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelMap_cbegin(self)

    def cend(self) -> "NCollection_Map< TDF_Label,TDF_LabelMapHasher >::const_iterator":
        return _TDF.TDF_LabelMap_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelMap_swiginit(self, _TDF.new_TDF_LabelMap(*args))

    def Exchange(self, theOther: "TDF_LabelMap") -> "void":
        return _TDF.TDF_LabelMap_Exchange(self, theOther)

    def Assign(self, theOther: "TDF_LabelMap") -> "NCollection_Map< TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelMap_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelMap") -> "NCollection_Map< TDF_Label,TDF_LabelMapHasher > &":
        return _TDF.TDF_LabelMap_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelMap_ReSize(self, N)

    def Add(self, K: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Add(self, K)

    def Added(self, K: "TDF_Label") -> "TDF_Label const &":
        return _TDF.TDF_LabelMap_Added(self, K)

    def Remove(self, K: "TDF_Label") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Remove(self, K)

    def Clear(self, *args) -> "void":
        return _TDF.TDF_LabelMap_Clear(self, *args)
    __swig_destroy__ = _TDF.delete_TDF_LabelMap

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelMap_Size(self)

    def IsEqual(self, theOther: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_IsEqual(self, theOther)

    def Contains(self, *args) -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Contains(self, *args)

    def Union(self, theLeft: "TDF_LabelMap", theRight: "TDF_LabelMap") -> "void":
        return _TDF.TDF_LabelMap_Union(self, theLeft, theRight)

    def Unite(self, theOther: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Unite(self, theOther)

    def HasIntersection(self, theMap: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_HasIntersection(self, theMap)

    def Intersection(self, theLeft: "TDF_LabelMap", theRight: "TDF_LabelMap") -> "void":
        return _TDF.TDF_LabelMap_Intersection(self, theLeft, theRight)

    def Intersect(self, theOther: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Intersect(self, theOther)

    def Subtraction(self, theLeft: "TDF_LabelMap", theRight: "TDF_LabelMap") -> "void":
        return _TDF.TDF_LabelMap_Subtraction(self, theLeft, theRight)

    def Subtract(self, theOther: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Subtract(self, theOther)

    def Difference(self, theLeft: "TDF_LabelMap", theRight: "TDF_LabelMap") -> "void":
        return _TDF.TDF_LabelMap_Difference(self, theLeft, theRight)

    def Differ(self, theOther: "TDF_LabelMap") -> "Standard_Boolean":
        return _TDF.TDF_LabelMap_Differ(self, theOther)

# Register TDF_LabelMap in _TDF:
_TDF.TDF_LabelMap_swigregister(TDF_LabelMap)

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

    def begin(self) -> "NCollection_Sequence< TDF_Label >::iterator":
        return _TDF.TDF_LabelSequence_begin(self)

    def end(self) -> "NCollection_Sequence< TDF_Label >::iterator":
        return _TDF.TDF_LabelSequence_end(self)

    def cbegin(self) -> "NCollection_Sequence< TDF_Label >::const_iterator":
        return _TDF.TDF_LabelSequence_cbegin(self)

    def cend(self) -> "NCollection_Sequence< TDF_Label >::const_iterator":
        return _TDF.TDF_LabelSequence_cend(self)

    def __init__(self, *args):
        _TDF.TDF_LabelSequence_swiginit(self, _TDF.new_TDF_LabelSequence(*args))

    def Size(self) -> "Standard_Integer":
        return _TDF.TDF_LabelSequence_Size(self)

    def Length(self) -> "Standard_Integer":
        return _TDF.TDF_LabelSequence_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _TDF.TDF_LabelSequence_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _TDF.TDF_LabelSequence_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _TDF.TDF_LabelSequence_IsEmpty(self)

    def Reverse(self) -> "void":
        return _TDF.TDF_LabelSequence_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _TDF.TDF_LabelSequence_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "TDF_HAllocator") -> "void":
        return _TDF.TDF_LabelSequence_delNode(theNode, theAl)

    def Clear(self, theAllocator: "TDF_HAllocator"=0) -> "void":
        return _TDF.TDF_LabelSequence_Clear(self, theAllocator)

    def Assign(self, theOther: "TDF_LabelSequence") -> "NCollection_Sequence< TDF_Label > &":
        return _TDF.TDF_LabelSequence_Assign(self, theOther)

    def Set(self, theOther: "TDF_LabelSequence") -> "NCollection_Sequence< TDF_Label > &":
        return _TDF.TDF_LabelSequence_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _TDF.TDF_LabelSequence_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _TDF.TDF_LabelSequence_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _TDF.TDF_LabelSequence_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _TDF.TDF_LabelSequence_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _TDF.TDF_LabelSequence_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "TDF_LabelSequence") -> "void":
        return _TDF.TDF_LabelSequence_Split(self, theIndex, theSeq)

    def First(self) -> "TDF_Label const &":
        return _TDF.TDF_LabelSequence_First(self)

    def ChangeFirst(self) -> "TDF_Label &":
        return _TDF.TDF_LabelSequence_ChangeFirst(self)

    def Last(self) -> "TDF_Label const &":
        return _TDF.TDF_LabelSequence_Last(self)

    def ChangeLast(self) -> "TDF_Label &":
        return _TDF.TDF_LabelSequence_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "TDF_Label const &":
        return _TDF.TDF_LabelSequence_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "TDF_Label &":
        return _TDF.TDF_LabelSequence_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "TDF_Label &":
        return _TDF.TDF_LabelSequence___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "TDF_Label") -> "void":
        return _TDF.TDF_LabelSequence_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _TDF.delete_TDF_LabelSequence

    def __len__(self):
        return self.Size()


# Register TDF_LabelSequence in _TDF:
_TDF.TDF_LabelSequence_swigregister(TDF_LabelSequence)

def TDF_LabelSequence_delNode(theNode: "NCollection_SeqNode *", theAl: "TDF_HAllocator") -> "void":
    return _TDF.TDF_LabelSequence_delNode(theNode, theAl)

class TDF_ListIteratorOfAttributeDeltaList(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):
        _TDF.TDF_ListIteratorOfAttributeDeltaList_swiginit(self, _TDF.new_TDF_ListIteratorOfAttributeDeltaList(*args))

    def More(self) -> "Standard_Boolean":
        return _TDF.TDF_ListIteratorOfAttributeDeltaList_More(self)

    def Next(self) -> "void":
        return _TDF.TDF_ListIteratorOfAttributeDeltaList_Next(self)

    def Value(self) -> "opencascade::handle< TDF_AttributeDelta > const &":
        return _TDF.TDF_ListIteratorOfAttributeDeltaList_Value(self)

    def ChangeValue(self) -> "opencascade::handle< TDF_AttributeDelta > &":
        return _TDF.TDF_ListIteratorOfAttributeDeltaList_ChangeValue(self)
    __swig_destroy__ = _TDF.delete_TDF_ListIteratorOfAttributeDeltaList

# Register TDF_ListIteratorOfAttributeDeltaList in _TDF:
_TDF.TDF_ListIteratorOfAttributeDeltaList_swigregister(TDF_ListIteratorOfAttributeDeltaList)

class TDF_ListIteratorOfAttributeList(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):
        _TDF.TDF_ListIteratorOfAttributeList_swiginit(self, _TDF.new_TDF_ListIteratorOfAttributeList(*args))

    def More(self) -> "Standard_Boolean":
        return _TDF.TDF_ListIteratorOfAttributeList_More(self)

    def Next(self) -> "void":
        return _TDF.TDF_ListIteratorOfAttributeList_Next(self)

    def Value(self) -> "opencascade::handle< TDF_Attribute > const &":
        return _TDF.TDF_ListIteratorOfAttributeList_Value(self)

    def ChangeValue(self) -> "opencascade::handle< TDF_Attribute > &":
        return _TDF.TDF_ListIteratorOfAttributeList_ChangeValue(self)
    __swig_destroy__ = _TDF.delete_TDF_ListIteratorOfAttributeList

# Register TDF_ListIteratorOfAttributeList in _TDF:
_TDF.TDF_ListIteratorOfAttributeList_swigregister(TDF_ListIteratorOfAttributeList)

class TDF_ListIteratorOfDeltaList(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):
        _TDF.TDF_ListIteratorOfDeltaList_swiginit(self, _TDF.new_TDF_ListIteratorOfDeltaList(*args))

    def More(self) -> "Standard_Boolean":
        return _TDF.TDF_ListIteratorOfDeltaList_More(self)

    def Next(self) -> "void":
        return _TDF.TDF_ListIteratorOfDeltaList_Next(self)

    def Value(self) -> "opencascade::handle< TDF_Delta > const &":
        return _TDF.TDF_ListIteratorOfDeltaList_Value(self)

    def ChangeValue(self) -> "opencascade::handle< TDF_Delta > &":
        return _TDF.TDF_ListIteratorOfDeltaList_ChangeValue(self)
    __swig_destroy__ = _TDF.delete_TDF_ListIteratorOfDeltaList

# Register TDF_ListIteratorOfDeltaList in _TDF:
_TDF.TDF_ListIteratorOfDeltaList_swigregister(TDF_ListIteratorOfDeltaList)

class TDF_ListIteratorOfIDList(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):
        _TDF.TDF_ListIteratorOfIDList_swiginit(self, _TDF.new_TDF_ListIteratorOfIDList(*args))

    def More(self) -> "Standard_Boolean":
        return _TDF.TDF_ListIteratorOfIDList_More(self)

    def Next(self) -> "void":
        return _TDF.TDF_ListIteratorOfIDList_Next(self)

    def Value(self) -> "Standard_GUID const &":
        return _TDF.TDF_ListIteratorOfIDList_Value(self)

    def ChangeValue(self) -> "Standard_GUID &":
        return _TDF.TDF_ListIteratorOfIDList_ChangeValue(self)
    __swig_destroy__ = _TDF.delete_TDF_ListIteratorOfIDList

# Register TDF_ListIteratorOfIDList in _TDF:
_TDF.TDF_ListIteratorOfIDList_swigregister(TDF_ListIteratorOfIDList)

class TDF_ListIteratorOfLabelList(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):
        _TDF.TDF_ListIteratorOfLabelList_swiginit(self, _TDF.new_TDF_ListIteratorOfLabelList(*args))

    def More(self) -> "Standard_Boolean":
        return _TDF.TDF_ListIteratorOfLabelList_More(self)

    def Next(self) -> "void":
        return _TDF.TDF_ListIteratorOfLabelList_Next(self)

    def Value(self) -> "TDF_Label const &":
        return _TDF.TDF_ListIteratorOfLabelList_Value(self)

    def ChangeValue(self) -> "TDF_Label &":
        return _TDF.TDF_ListIteratorOfLabelList_ChangeValue(self)
    __swig_destroy__ = _TDF.delete_TDF_ListIteratorOfLabelList

# Register TDF_ListIteratorOfLabelList in _TDF:
_TDF.TDF_ListIteratorOfLabelList_swigregister(TDF_ListIteratorOfLabelList)

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

    @staticmethod
    def AddLinkGUIDToProgID(*args) -> "void":
        r"""
        Sets link between guid and progid in hidden datamap.

        Parameters
        ----------
        ID: Standard_GUID
        ProgID: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _TDF.tdf_AddLinkGUIDToProgID(*args)

    @staticmethod
    def GUIDFromProgID(*args) -> "Standard_Boolean":
        r"""
        Returns true if there is guid for given <progid> then guid is returned in <id>.

        Parameters
        ----------
        ProgID: TCollection_ExtendedString
        ID: Standard_GUID

        Returns
        -------
        bool

        """
        return _TDF.tdf_GUIDFromProgID(*args)

    @staticmethod
    def LowestID(*args) -> "Standard_GUID const &":
        r"""
        Returns id '00000000-0000-0000-0000-000000000000', sometimes used as null id.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.tdf_LowestID(*args)

    @staticmethod
    def ProgIDFromGUID(*args) -> "Standard_Boolean":
        r"""
        Returns true if there is progid for given <id> then progid is returned in <progid>.

        Parameters
        ----------
        ID: Standard_GUID
        ProgID: TCollection_ExtendedString

        Returns
        -------
        bool

        """
        return _TDF.tdf_ProgIDFromGUID(*args)

    @staticmethod
    def UppestID(*args) -> "Standard_GUID const &":
        r"""
        Returns id 'ffffffff-ffff-ffff-ffff-ffffffffffff'.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.tdf_UppestID(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.tdf_swiginit(self, _TDF.new_tdf())
    __swig_destroy__ = _TDF.delete_tdf

# Register tdf in _TDF:
_TDF.tdf_swigregister(tdf)

def tdf_AddLinkGUIDToProgID(*args) -> "void":
    r"""
    Sets link between guid and progid in hidden datamap.

    Parameters
    ----------
    ID: Standard_GUID
    ProgID: TCollection_ExtendedString

    Returns
    -------
    None

    """
    return _TDF.tdf_AddLinkGUIDToProgID(*args)

def tdf_GUIDFromProgID(*args) -> "Standard_Boolean":
    r"""
    Returns true if there is guid for given <progid> then guid is returned in <id>.

    Parameters
    ----------
    ProgID: TCollection_ExtendedString
    ID: Standard_GUID

    Returns
    -------
    bool

    """
    return _TDF.tdf_GUIDFromProgID(*args)

def tdf_LowestID(*args) -> "Standard_GUID const &":
    r"""
    Returns id '00000000-0000-0000-0000-000000000000', sometimes used as null id.

    Returns
    -------
    Standard_GUID

    """
    return _TDF.tdf_LowestID(*args)

def tdf_ProgIDFromGUID(*args) -> "Standard_Boolean":
    r"""
    Returns true if there is progid for given <id> then progid is returned in <progid>.

    Parameters
    ----------
    ID: Standard_GUID
    ProgID: TCollection_ExtendedString

    Returns
    -------
    bool

    """
    return _TDF.tdf_ProgIDFromGUID(*args)

def tdf_UppestID(*args) -> "Standard_GUID const &":
    r"""
    Returns id 'ffffffff-ffff-ffff-ffff-ffffffffffff'.

    Returns
    -------
    Standard_GUID

    """
    return _TDF.tdf_UppestID(*args)

class TDF_Attribute(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 AddAttribute(self, *args) -> "void":
        r"""
        Adds an attribute <other> to the label of <self>.raises if there is already one of the same guid fhan <other>.

        Parameters
        ----------
        other: TDF_Attribute

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_AddAttribute(self, *args)

    def AfterAddition(self, *args) -> "void":
        r"""
        Something to do after adding an attribute to a label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_AfterAddition(self, *args)

    def AfterResume(self, *args) -> "void":
        r"""
        Something to do after resuming an attribute from a label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_AfterResume(self, *args)

    def AfterRetrieval(self, *args) -> "Standard_Boolean":
        r"""
        Something to do after creation of an attribute by persistent-transient translation. the returned status says if afterundo has been performed (true) or if this callback must be called once again further (false). if <forceit> is set to true, the method must perform and return true. does nothing by default and returns true.

        Parameters
        ----------
        forceIt: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_AfterRetrieval(self, *args)

    def AfterUndo(self, *args) -> "Standard_Boolean":
        r"""
        Something to do after applying <anattdelta>. the returned status says if afterundo has been performed (true) or if this callback must be called once again further (false). if <forceit> is set to true, the method must perform and return true. does nothing by default and returns true.

        Parameters
        ----------
        anAttDelta: TDF_AttributeDelta
        forceIt: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_AfterUndo(self, *args)

    def Backup(self, *args) -> "void":
        r"""
        Backups the attribute. the backuped attribute is flagged 'backuped' and not 'valid'. //! the method does nothing: //! 1) if the attribute transaction number is equal to the current transaction number (the attribute has already been backuped). //! 2) if the attribute is not attached to a label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_Backup(self, *args)

    def BackupCopy(self, *args) -> "opencascade::handle< TDF_Attribute >":
        r"""
        Copies the attribute contents into a new other attribute. it is used by backup().

        Returns
        -------
        opencascade::handle<TDF_Attribute>

        """
        return _TDF.TDF_Attribute_BackupCopy(self, *args)

    def BeforeCommitTransaction(self, *args) -> "void":
        r"""
        A callback. by default does nothing. it is called by tdf_data::committransaction() method.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_BeforeCommitTransaction(self, *args)

    def BeforeForget(self, *args) -> "void":
        r"""
        Something to do before forgetting an attribute to a label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_BeforeForget(self, *args)

    def BeforeRemoval(self, *args) -> "void":
        r"""
        Something to do before removing an attribute from a label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_BeforeRemoval(self, *args)

    def BeforeUndo(self, *args) -> "Standard_Boolean":
        r"""
        Something to do before applying <anattdelta>. the returned status says if afterundo has been performed (true) or if this callback must be called once again further (false). if <forceit> is set to true, the method must perform and return true. does nothing by default and returns true.

        Parameters
        ----------
        anAttDelta: TDF_AttributeDelta
        forceIt: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_BeforeUndo(self, *args)

    def DeltaOnAddition(self, *args) -> "opencascade::handle< TDF_DeltaOnAddition >":
        r"""
        Makes an attributedelta because <self> appeared. the only known use of a redefinition of this method is to return a null handle (no delta).

        Returns
        -------
        opencascade::handle<TDF_DeltaOnAddition>

        """
        return _TDF.TDF_Attribute_DeltaOnAddition(self, *args)

    def DeltaOnForget(self, *args) -> "opencascade::handle< TDF_DeltaOnForget >":
        r"""
        Makes an attributedelta because <self> has been forgotten.

        Returns
        -------
        opencascade::handle<TDF_DeltaOnForget>

        """
        return _TDF.TDF_Attribute_DeltaOnForget(self, *args)

    def DeltaOnModification(self, *args) -> "void":
        r"""
        Makes a deltaonmodification between <self> and <anoldattribute.

        Parameters
        ----------
        anOldAttribute: TDF_Attribute

        Returns
        -------
        opencascade::handle<TDF_DeltaOnModification>
        Applies a deltaonmodification to <self>.

        Parameters
        ----------
        aDelta: TDF_DeltaOnModification

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_DeltaOnModification(self, *args)

    def DeltaOnRemoval(self, *args) -> "opencascade::handle< TDF_DeltaOnRemoval >":
        r"""
        Makes a deltaonremoval on <self> because <self> has disappeared from the ds.

        Returns
        -------
        opencascade::handle<TDF_DeltaOnRemoval>

        """
        return _TDF.TDF_Attribute_DeltaOnRemoval(self, *args)

    def DeltaOnResume(self, *args) -> "opencascade::handle< TDF_DeltaOnResume >":
        r"""
        Makes an attributedelta because <self> has been resumed.

        Returns
        -------
        opencascade::handle<TDF_DeltaOnResume>

        """
        return _TDF.TDF_Attribute_DeltaOnResume(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_Attribute self) -> std::string"""
        return _TDF.TDF_Attribute_DumpToString(self)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_Attribute self, int depth=-1) -> std::string"""
        return _TDF.TDF_Attribute_DumpJsonToString(self, depth)

    def FindAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Finds an associated attribute of <self>, according to <anid>. the returned <anattribute> is a valid one. the method returns true if found, false otherwise. a removed attribute cannot be found using this method.

        Parameters
        ----------
        anID: Standard_GUID
        anAttribute: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_FindAttribute(self, *args)

    def Forget(self, *args) -> "void":
        r"""
        Forgets the attribute. <atransaction> is the current transaction in which the forget is done. a forgotten attribute is also flagged not 'valid'. //! a forgotten attribute is invisible. set also the 'valid' status to false. obvioulsy, df cannot empty an attribute (this has a semantic signification), but can remove it from the structure. so, a forgotten attribute is not an empty one, but a soon dead one. //! should be private.

        Parameters
        ----------
        aTransaction: int

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_Forget(self, *args)

    def ForgetAllAttributes(self, *args) -> "void":
        r"""
        Forgets all the attributes attached to the label of <self>. does it on the sub-labels if <clearchildren> is set to true. of course, this method is compatible with transaction & delta mecanisms. be carefull that if <self> will have a null label after this call.

        Parameters
        ----------
        clearChildren: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_ForgetAllAttributes(self, *args)

    def ForgetAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Forgets the attribute of guid <aguid> associated to the label of <self>. be carefull that if <self> is the attribute of <guid>, <self> will have a null label after this call. if the attribute doesn't exist returns false. otherwise returns true.

        Parameters
        ----------
        aguid: Standard_GUID

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_ForgetAttribute(self, *args)

    def ID(self, *args) -> "Standard_GUID const &":
        r"""
        Returns the id of the attribute.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.TDF_Attribute_ID(self, *args)

    def IsAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if it exists an associated attribute of <self> with <anid> as id.

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_IsAttribute(self, *args)

    def IsBackuped(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the attribute backup status is set. this status is set/unset by the backup() method.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_IsBackuped(self, *args)

    def IsForgotten(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the attribute forgotten status is set. //! shortcut methods concerning associated attributes =================================================.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_IsForgotten(self, *args)

    def IsNew(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the attribute has no backup.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_IsNew(self, *args)

    def IsValid(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the attribute is valid; i.e. not a backuped or removed one.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Attribute_IsValid(self, *args)

    def Label(self, *args) -> "TDF_Label const":
        r"""
        Returns the label to which the attribute is attached. if the label is not included in a df, the label is null. see label. warning if the label is not included in a data framework, it is null. this function should not be redefined inline.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Attribute_Label(self, *args)

    def NewEmpty(self, *args) -> "opencascade::handle< TDF_Attribute >":
        r"""
        Returns an new empty attribute from the good end type. it is used by the copy algorithm.

        Returns
        -------
        opencascade::handle<TDF_Attribute>

        """
        return _TDF.TDF_Attribute_NewEmpty(self, *args)

    def Paste(self, *args) -> "void":
        r"""
        This method is different from the 'copy' one, because it is used when copying an attribute from a source structure into a target structure. this method may paste the contents of <self> into <intoattribute>. //! the given pasted attribute can be full or empty of its contents. but don't make a new! just set the contents! //! it is possible to use <arelocationtable> to get/set the relocation value of a source attribute.

        Parameters
        ----------
        intoAttribute: TDF_Attribute
        aRelocationTable: TDF_RelocationTable

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_Paste(self, *args)

    def References(self, *args) -> "void":
        r"""
        Adds the first level referenced attributes and labels to <adataset>. //! for this, use the addlabel or addattribute of dataset. //! if there is none, do not implement the method.

        Parameters
        ----------
        aDataSet: TDF_DataSet

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_References(self, *args)

    def Restore(self, *args) -> "void":
        r"""
        Restores the backuped contents from <anattribute> into this one. it is used when aborting a transaction.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_Restore(self, *args)

    def SetID(self, *args) -> "void":
        r"""
        Sets specific id of the attribute (supports several attributes of one type at the same label feature).

        Parameters
        ----------
        &: Standard_GUID

        Returns
        -------
        None
        Sets default id defined in nested class (to be used for attributes having user id feature).

        Returns
        -------
        None

        """
        return _TDF.TDF_Attribute_SetID(self, *args)

    def Transaction(self, *args) -> "Standard_Integer":
        r"""
        Returns the transaction index in which the attribute has been created or modified.

        Returns
        -------
        int

        """
        return _TDF.TDF_Attribute_Transaction(self, *args)

    def UntilTransaction(self, *args) -> "Standard_Integer":
        r"""
        Returns the upper transaction index until which the attribute is/was valid. this number may vary. a removed attribute validity range is reduced to its transaction index.

        Returns
        -------
        int

        """
        return _TDF.TDF_Attribute_UntilTransaction(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Attribute

# Register TDF_Attribute in _TDF:
_TDF.TDF_Attribute_swigregister(TDF_Attribute)

class TDF_AttributeDelta(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 Apply(self, *args) -> "void":
        r"""
        Applies the delta to the attribute.

        Returns
        -------
        None

        """
        return _TDF.TDF_AttributeDelta_Apply(self, *args)

    def Attribute(self, *args) -> "opencascade::handle< TDF_Attribute >":
        r"""
        Returns the reference attribute.

        Returns
        -------
        opencascade::handle<TDF_Attribute>

        """
        return _TDF.TDF_AttributeDelta_Attribute(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_AttributeDelta self) -> std::string"""
        return _TDF.TDF_AttributeDelta_DumpToString(self)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_AttributeDelta self, int depth=-1) -> std::string"""
        return _TDF.TDF_AttributeDelta_DumpJsonToString(self, depth)

    def ID(self, *args) -> "Standard_GUID":
        r"""
        Returns the id of the attribute concerned by <self>.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.TDF_AttributeDelta_ID(self, *args)

    def Label(self, *args) -> "TDF_Label":
        r"""
        Returns the label concerned by <self>.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_AttributeDelta_Label(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_AttributeDelta

# Register TDF_AttributeDelta in _TDF:
_TDF.TDF_AttributeDelta_swigregister(TDF_AttributeDelta)

class TDF_AttributeIterator(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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        aLabel: TDF_Label
        withoutForgotten: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        aLabelNode: TDF_LabelNodePtr
        withoutForgotten: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        _TDF.TDF_AttributeIterator_swiginit(self, _TDF.new_TDF_AttributeIterator(*args))

    def Initialize(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aLabel: TDF_Label
        withoutForgotten: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _TDF.TDF_AttributeIterator_Initialize(self, *args)

    def More(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

        """
        return _TDF.TDF_AttributeIterator_More(self, *args)

    def Next(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        return _TDF.TDF_AttributeIterator_Next(self, *args)

    def PtrValue(self, *args) -> "TDF_Attribute const *":
        r"""
        Provides an access to the internal pointer of the current attribute. the method has better performance as not-creating handle.

        Returns
        -------
        TDF_Attribute *

        """
        return _TDF.TDF_AttributeIterator_PtrValue(self, *args)

    def Value(self, *args) -> "opencascade::handle< TDF_Attribute >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<TDF_Attribute>

        """
        return _TDF.TDF_AttributeIterator_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_AttributeIterator

# Register TDF_AttributeIterator in _TDF:
_TDF.TDF_AttributeIterator_swigregister(TDF_AttributeIterator)

class TDF_ChildIDIterator(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"""
        Creates an empty iterator.

        Returns
        -------
        None
        Iterates on the children of the given label. if <alllevels> option is set to true, it explores not only the first, but all the sub label levels.

        Parameters
        ----------
        aLabel: TDF_Label
        anID: Standard_GUID
        allLevels: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _TDF.TDF_ChildIDIterator_swiginit(self, _TDF.new_TDF_ChildIDIterator(*args))

    def Initialize(self, *args) -> "void":
        r"""
        Initializes the iteration on the children of the given label. if <alllevels> option is set to true, it explores not only the first, but all the sub label levels.

        Parameters
        ----------
        aLabel: TDF_Label
        anID: Standard_GUID
        allLevels: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIDIterator_Initialize(self, *args)

    def More(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a current item in the iteration.

        Returns
        -------
        bool

        """
        return _TDF.TDF_ChildIDIterator_More(self, *args)

    def Next(self, *args) -> "void":
        r"""
        Move to the next item.

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIDIterator_Next(self, *args)

    def NextBrother(self, *args) -> "void":
        r"""
        Move to the next brother. if there is none, go up etc. this method is interesting only with 'alllevels' behavior, because it avoids to explore the current label children.

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIDIterator_NextBrother(self, *args)

    def Value(self, *args) -> "opencascade::handle< TDF_Attribute >":
        r"""
        Returns the current item; a null handle if there is none.

        Returns
        -------
        opencascade::handle<TDF_Attribute>

        """
        return _TDF.TDF_ChildIDIterator_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_ChildIDIterator

# Register TDF_ChildIDIterator in _TDF:
_TDF.TDF_ChildIDIterator_swigregister(TDF_ChildIDIterator)

class TDF_ChildIterator(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"""
        Creates an empty iterator object to explore the children of a label.

        Returns
        -------
        None
        Constructs the iterator object defined by the label alabel. iterates on the children of the given label. if <alllevels> option is set to true, it explores not only the first, but all the sub label levels.

        Parameters
        ----------
        aLabel: TDF_Label
        allLevels: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _TDF.TDF_ChildIterator_swiginit(self, _TDF.new_TDF_ChildIterator(*args))

    def Initialize(self, *args) -> "void":
        r"""
        Initializes the iteration on the children of the given label. if <alllevels> option is set to true, it explores not only the first, but all the sub label levels. if alllevels is false, only the first level of child labels is explored. in the example below, the label is iterated using initialize, more and next and its child labels dumped using tdf_tool::entry. example void dumpchildren(const tdf_label& alabel) { tdf_childiterator it; tcollection_asciistring es; for (it.initialize(alabel,standard_true); it.more(); it.next()){ tdf_tool::entry(it.value(),es); std::cout << as.tocstring() << std::endl; } }.

        Parameters
        ----------
        aLabel: TDF_Label
        allLevels: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIterator_Initialize(self, *args)

    def More(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if a current label is found in the iteration process.

        Returns
        -------
        bool

        """
        return _TDF.TDF_ChildIterator_More(self, *args)

    def Next(self, *args) -> "void":
        r"""
        Move the current iteration to the next item.

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIterator_Next(self, *args)

    def NextBrother(self, *args) -> "void":
        r"""
        Moves this iteration to the next brother label. a brother label is one with the same father as an initial label. use this function when the non-empty constructor or initialize has alllevels set to true. the result is that the iteration does not explore the children of the current label. this method is interesting only with 'alllevels' behavior, because it avoids to explore the current label children.

        Returns
        -------
        None

        """
        return _TDF.TDF_ChildIterator_NextBrother(self, *args)

    def Value(self, *args) -> "TDF_Label const":
        r"""
        Returns the current label; or, if there is none, a null label.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_ChildIterator_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_ChildIterator

# Register TDF_ChildIterator in _TDF:
_TDF.TDF_ChildIterator_swigregister(TDF_ChildIterator)

class TDF_ClosureMode(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"""
        Creates an objet with all modes set to <amode>.

        Parameters
        ----------
        aMode: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        _TDF.TDF_ClosureMode_swiginit(self, _TDF.new_TDF_ClosureMode(*args))

    def Descendants(self, *args) -> "Standard_Boolean":
        r"""
        Sets the mode 'descendants' to <astatus>. //! 'descendants' mode means we add to the data set the children labels of each user given label. we do not do that with the labels found applying uptofirstlevel option.

        Parameters
        ----------
        aStatus: bool

        Returns
        -------
        None
        Returns true if the mode 'descendants' is set.

        Returns
        -------
        bool

        """
        return _TDF.TDF_ClosureMode_Descendants(self, *args)

    def References(self, *args) -> "Standard_Boolean":
        r"""
        Sets the mode 'references' to <astatus>. //! 'references' mode means we add to the data set the descendants of an attribute, by calling the attribute method descendants().

        Parameters
        ----------
        aStatus: bool

        Returns
        -------
        None
        Returns true if the mode 'references' is set.

        Returns
        -------
        bool

        """
        return _TDF.TDF_ClosureMode_References(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_ClosureMode

# Register TDF_ClosureMode in _TDF:
_TDF.TDF_ClosureMode_swigregister(TDF_ClosureMode)

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

    @staticmethod
    def Closure(*args) -> "void":
        r"""
        Builds the transitive closure of label and attribute sets into <adataset>.

        Parameters
        ----------
        aDataSet: TDF_DataSet

        Returns
        -------
        None
        Builds the transitive closure of label and attribute sets into <adataset>. uses <afilter> to determine if an attribute has to be taken in account or not. uses <amode> for various way of closing.

        Parameters
        ----------
        aDataSet: TDF_DataSet
        aFilter: TDF_IDFilter
        aMode: TDF_ClosureMode

        Returns
        -------
        None
        Builds the transitive closure of <alabel>.

        Parameters
        ----------
        aLabel: TDF_Label
        aLabMap: TDF_LabelMap
        anAttMap: TDF_AttributeMap
        aFilter: TDF_IDFilter
        aMode: TDF_ClosureMode

        Returns
        -------
        None

        """
        return _TDF.TDF_ClosureTool_Closure(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.TDF_ClosureTool_swiginit(self, _TDF.new_TDF_ClosureTool())
    __swig_destroy__ = _TDF.delete_TDF_ClosureTool

# Register TDF_ClosureTool in _TDF:
_TDF.TDF_ClosureTool_swigregister(TDF_ClosureTool)

def TDF_ClosureTool_Closure(*args) -> "void":
    r"""
    Builds the transitive closure of label and attribute sets into <adataset>.

    Parameters
    ----------
    aDataSet: TDF_DataSet

    Returns
    -------
    None
    Builds the transitive closure of label and attribute sets into <adataset>. uses <afilter> to determine if an attribute has to be taken in account or not. uses <amode> for various way of closing.

    Parameters
    ----------
    aDataSet: TDF_DataSet
    aFilter: TDF_IDFilter
    aMode: TDF_ClosureMode

    Returns
    -------
    None
    Builds the transitive closure of <alabel>.

    Parameters
    ----------
    aLabel: TDF_Label
    aLabMap: TDF_LabelMap
    anAttMap: TDF_AttributeMap
    aFilter: TDF_IDFilter
    aMode: TDF_ClosureMode

    Returns
    -------
    None

    """
    return _TDF.TDF_ClosureTool_Closure(*args)

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

    @staticmethod
    def Compare(*args) -> "void":
        r"""
        Compares <asourcedataset> with <atargetdataset>, updating <arelocationtable> with labels and attributes found in both sets.

        Parameters
        ----------
        aSourceDataSet: TDF_DataSet
        aTargetDataSet: TDF_DataSet
        aFilter: TDF_IDFilter
        aRelocationTable: TDF_RelocationTable

        Returns
        -------
        None

        """
        return _TDF.TDF_ComparisonTool_Compare(*args)

    @staticmethod
    def Cut(*args) -> "void":
        r"""
        Removes attributes from <adataset>.

        Parameters
        ----------
        aDataSet: TDF_DataSet

        Returns
        -------
        None

        """
        return _TDF.TDF_ComparisonTool_Cut(*args)

    @staticmethod
    def IsSelfContained(*args) -> "Standard_Boolean":
        r"""
        Returns true if all the labels of <adataset> are descendant of <alabel>.

        Parameters
        ----------
        aLabel: TDF_Label
        aDataSet: TDF_DataSet

        Returns
        -------
        bool

        """
        return _TDF.TDF_ComparisonTool_IsSelfContained(*args)

    @staticmethod
    def SourceUnbound(*args) -> "Standard_Boolean":
        r"""
        Finds from <arefdataset> all the keys not bound into <arelocationtable> and put them into <adiffdataset>. returns true if the difference contains at least one key. (a key is a source object). //! <anoption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only (default value); 3 : both labels & attributes treatment.

        Parameters
        ----------
        aRefDataSet: TDF_DataSet
        aRelocationTable: TDF_RelocationTable
        aFilter: TDF_IDFilter
        aDiffDataSet: TDF_DataSet
        anOption: int,optional
        	default value is 2

        Returns
        -------
        bool

        """
        return _TDF.TDF_ComparisonTool_SourceUnbound(*args)

    @staticmethod
    def TargetUnbound(*args) -> "Standard_Boolean":
        r"""
        Substracts from <arefdataset> all the items bound into <arelocationtable>. the result is put into <adiffdataset>. returns true if the difference contains at least one item. (an item is a target object). //! <anoption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only(default value); 3 : both labels & attributes treatment.

        Parameters
        ----------
        aRefDataSet: TDF_DataSet
        aRelocationTable: TDF_RelocationTable
        aFilter: TDF_IDFilter
        aDiffDataSet: TDF_DataSet
        anOption: int,optional
        	default value is 2

        Returns
        -------
        bool

        """
        return _TDF.TDF_ComparisonTool_TargetUnbound(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.TDF_ComparisonTool_swiginit(self, _TDF.new_TDF_ComparisonTool())
    __swig_destroy__ = _TDF.delete_TDF_ComparisonTool

# Register TDF_ComparisonTool in _TDF:
_TDF.TDF_ComparisonTool_swigregister(TDF_ComparisonTool)

def TDF_ComparisonTool_Compare(*args) -> "void":
    r"""
    Compares <asourcedataset> with <atargetdataset>, updating <arelocationtable> with labels and attributes found in both sets.

    Parameters
    ----------
    aSourceDataSet: TDF_DataSet
    aTargetDataSet: TDF_DataSet
    aFilter: TDF_IDFilter
    aRelocationTable: TDF_RelocationTable

    Returns
    -------
    None

    """
    return _TDF.TDF_ComparisonTool_Compare(*args)

def TDF_ComparisonTool_Cut(*args) -> "void":
    r"""
    Removes attributes from <adataset>.

    Parameters
    ----------
    aDataSet: TDF_DataSet

    Returns
    -------
    None

    """
    return _TDF.TDF_ComparisonTool_Cut(*args)

def TDF_ComparisonTool_IsSelfContained(*args) -> "Standard_Boolean":
    r"""
    Returns true if all the labels of <adataset> are descendant of <alabel>.

    Parameters
    ----------
    aLabel: TDF_Label
    aDataSet: TDF_DataSet

    Returns
    -------
    bool

    """
    return _TDF.TDF_ComparisonTool_IsSelfContained(*args)

def TDF_ComparisonTool_SourceUnbound(*args) -> "Standard_Boolean":
    r"""
    Finds from <arefdataset> all the keys not bound into <arelocationtable> and put them into <adiffdataset>. returns true if the difference contains at least one key. (a key is a source object). //! <anoption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only (default value); 3 : both labels & attributes treatment.

    Parameters
    ----------
    aRefDataSet: TDF_DataSet
    aRelocationTable: TDF_RelocationTable
    aFilter: TDF_IDFilter
    aDiffDataSet: TDF_DataSet
    anOption: int,optional
    	default value is 2

    Returns
    -------
    bool

    """
    return _TDF.TDF_ComparisonTool_SourceUnbound(*args)

def TDF_ComparisonTool_TargetUnbound(*args) -> "Standard_Boolean":
    r"""
    Substracts from <arefdataset> all the items bound into <arelocationtable>. the result is put into <adiffdataset>. returns true if the difference contains at least one item. (an item is a target object). //! <anoption> may take the following values: 1 : labels treatment only; 2 : attributes treatment only(default value); 3 : both labels & attributes treatment.

    Parameters
    ----------
    aRefDataSet: TDF_DataSet
    aRelocationTable: TDF_RelocationTable
    aFilter: TDF_IDFilter
    aDiffDataSet: TDF_DataSet
    anOption: int,optional
    	default value is 2

    Returns
    -------
    bool

    """
    return _TDF.TDF_ComparisonTool_TargetUnbound(*args)

class TDF_CopyLabel(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"""
        Empty constructor.

        Returns
        -------
        None
        Copytool.

        Parameters
        ----------
        aSource: TDF_Label
        aTarget: TDF_Label

        Returns
        -------
        None

        """
        _TDF.TDF_CopyLabel_swiginit(self, _TDF.new_TDF_CopyLabel(*args))

    @staticmethod
    def ExternalReferences(*args) -> "void":
        r"""
        Check external references and if exist fills the aexternals map.

        Parameters
        ----------
        Lab: TDF_Label
        aExternals: TDF_AttributeMap
        aFilter: TDF_IDFilter

        Returns
        -------
        bool
        Check external references and if exist fills the aexternals map.

        Parameters
        ----------
        aRefLab: TDF_Label
        Lab: TDF_Label
        aExternals: TDF_AttributeMap
        aFilter: TDF_IDFilter
        aDataSet: TDF_DataSet

        Returns
        -------
        None

        """
        return _TDF.TDF_CopyLabel_ExternalReferences(*args)

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

        """
        return _TDF.TDF_CopyLabel_IsDone(self, *args)

    def Load(self, *args) -> "void":
        r"""
        Loads src and tgt labels.

        Parameters
        ----------
        aSource: TDF_Label
        aTarget: TDF_Label

        Returns
        -------
        None

        """
        return _TDF.TDF_CopyLabel_Load(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        Performs algorithm of selfcontained copy.

        Returns
        -------
        None

        """
        return _TDF.TDF_CopyLabel_Perform(self, *args)

    def RelocationTable(self, *args) -> "opencascade::handle< TDF_RelocationTable > const &":
        r"""
        Returns relocation table.

        Returns
        -------
        opencascade::handle<TDF_RelocationTable>

        """
        return _TDF.TDF_CopyLabel_RelocationTable(self, *args)

    def UseFilter(self, *args) -> "void":
        r"""
        Sets filter.

        Parameters
        ----------
        aFilter: TDF_IDFilter

        Returns
        -------
        None

        """
        return _TDF.TDF_CopyLabel_UseFilter(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_CopyLabel

# Register TDF_CopyLabel in _TDF:
_TDF.TDF_CopyLabel_swigregister(TDF_CopyLabel)

def TDF_CopyLabel_ExternalReferences(*args) -> "void":
    r"""
    Check external references and if exist fills the aexternals map.

    Parameters
    ----------
    Lab: TDF_Label
    aExternals: TDF_AttributeMap
    aFilter: TDF_IDFilter

    Returns
    -------
    bool
    Check external references and if exist fills the aexternals map.

    Parameters
    ----------
    aRefLab: TDF_Label
    Lab: TDF_Label
    aExternals: TDF_AttributeMap
    aFilter: TDF_IDFilter
    aDataSet: TDF_DataSet

    Returns
    -------
    None

    """
    return _TDF.TDF_CopyLabel_ExternalReferences(*args)

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

    @staticmethod
    def Copy(*args) -> "void":
        r"""
        Copy <asourcedataset> with using and updating <arelocationtable>. this method ignores target attributes privilege over source ones.

        Parameters
        ----------
        aSourceDataSet: TDF_DataSet
        aRelocationTable: TDF_RelocationTable

        Returns
        -------
        None
        Copy <asourcedataset> using and updating <arelocationtable>. use <aprivilegefilter> to give a list of ids for which the target attribute prevails over the source one.

        Parameters
        ----------
        aSourceDataSet: TDF_DataSet
        aRelocationTable: TDF_RelocationTable
        aPrivilegeFilter: TDF_IDFilter

        Returns
        -------
        None
        Copy <asourcedataset> using and updating <arelocationtable>. use <aprivilegefilter> to give a list of ids for which the target attribute prevails over the source one. if <setselfcontained> is set to true, every tdf_reference will be replaced by the referenced structure according to <areffilter>. //! nb: <areffilter> is used only if <setselfcontained> is true. internal root label copy recursive method.

        Parameters
        ----------
        aSourceDataSet: TDF_DataSet
        aRelocationTable: TDF_RelocationTable
        aPrivilegeFilter: TDF_IDFilter
        aRefFilter: TDF_IDFilter
        setSelfContained: bool

        Returns
        -------
        None

        """
        return _TDF.TDF_CopyTool_Copy(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.TDF_CopyTool_swiginit(self, _TDF.new_TDF_CopyTool())
    __swig_destroy__ = _TDF.delete_TDF_CopyTool

# Register TDF_CopyTool in _TDF:
_TDF.TDF_CopyTool_swigregister(TDF_CopyTool)

def TDF_CopyTool_Copy(*args) -> "void":
    r"""
    Copy <asourcedataset> with using and updating <arelocationtable>. this method ignores target attributes privilege over source ones.

    Parameters
    ----------
    aSourceDataSet: TDF_DataSet
    aRelocationTable: TDF_RelocationTable

    Returns
    -------
    None
    Copy <asourcedataset> using and updating <arelocationtable>. use <aprivilegefilter> to give a list of ids for which the target attribute prevails over the source one.

    Parameters
    ----------
    aSourceDataSet: TDF_DataSet
    aRelocationTable: TDF_RelocationTable
    aPrivilegeFilter: TDF_IDFilter

    Returns
    -------
    None
    Copy <asourcedataset> using and updating <arelocationtable>. use <aprivilegefilter> to give a list of ids for which the target attribute prevails over the source one. if <setselfcontained> is set to true, every tdf_reference will be replaced by the referenced structure according to <areffilter>. //! nb: <areffilter> is used only if <setselfcontained> is true. internal root label copy recursive method.

    Parameters
    ----------
    aSourceDataSet: TDF_DataSet
    aRelocationTable: TDF_RelocationTable
    aPrivilegeFilter: TDF_IDFilter
    aRefFilter: TDF_IDFilter
    setSelfContained: bool

    Returns
    -------
    None

    """
    return _TDF.TDF_CopyTool_Copy(*args)

class TDF_Data(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"""
        A new and empty data structure.

        Returns
        -------
        None

        """
        _TDF.TDF_Data_swiginit(self, _TDF.new_TDF_Data(*args))

    def AllowModification(self, *args) -> "void":
        r"""
        Sets modification mode.

        Parameters
        ----------
        isAllowed: bool

        Returns
        -------
        None

        """
        return _TDF.TDF_Data_AllowModification(self, *args)

    def Destroy(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        return _TDF.TDF_Data_Destroy(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_Data self) -> std::string"""
        return _TDF.TDF_Data_DumpToString(self)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_Data self, int depth=-1) -> std::string"""
        return _TDF.TDF_Data_DumpJsonToString(self, depth)

    def IsApplicable(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <adelta> is applicable here and now.

        Parameters
        ----------
        aDelta: TDF_Delta

        Returns
        -------
        bool

        """
        return _TDF.TDF_Data_IsApplicable(self, *args)

    def IsModificationAllowed(self, *args) -> "Standard_Boolean":
        r"""
        Returns modification mode.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Data_IsModificationAllowed(self, *args)

    def LabelNodeAllocator(self, *args) -> "TDF_HAllocator const &":
        r"""
        Returns tdf_hallocator, which is an incremental allocator used by tdf_labelnode. this allocator is used to manage tdf_labelnode objects, but it can also be used for allocating memory to application-specific data (be careful because this allocator does not release the memory). the benefits of this allocation scheme are noticeable when dealing with large ocaf documents, due to: 1. very quick allocation of objects (memory heap is not used, the algorithm that replaces it is very simple). 2. very quick destruction of objects (memory is released not by destructors of tdf_labelnode, but rather by the destructor of tdf_data). 3. tdf_labelnode objects do not fragmentize the memory; they are kept compactly in a number of arrays of 16k each. 4. swapping is reduced on large data, because each document now occupies a smaller number of memory pages.

        Returns
        -------
        TDF_HAllocator

        """
        return _TDF.TDF_Data_LabelNodeAllocator(self, *args)

    def NotUndoMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns the undo mode status.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Data_NotUndoMode(self, *args)

    def Root(self, *args) -> "TDF_Label const":
        r"""
        Returns the root label of the data structure.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Data_Root(self, *args)

    def Time(self, *args) -> "Standard_Integer":
        r"""
        Returns the current tick. it is incremented each commit.

        Returns
        -------
        int

        """
        return _TDF.TDF_Data_Time(self, *args)

    def Transaction(self, *args) -> "Standard_Integer":
        r"""
        Returns the current transaction number.

        Returns
        -------
        int

        """
        return _TDF.TDF_Data_Transaction(self, *args)

    def Undo(self, *args) -> "opencascade::handle< TDF_Delta >":
        r"""
        Apply <adelta> to undo a set of attribute modifications. //! optionnal <withdelta> set to true indiquates a delta set must be generated. (see above).

        Parameters
        ----------
        aDelta: TDF_Delta
        withDelta: bool,optional
        	default value is Standard_False

        Returns
        -------
        opencascade::handle<TDF_Delta>

        """
        return _TDF.TDF_Data_Undo(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Data

# Register TDF_Data in _TDF:
_TDF.TDF_Data_swigregister(TDF_Data)

class TDF_DataSet(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"""
        Creates an empty dataset object.

        Returns
        -------
        None

        """
        _TDF.TDF_DataSet_swiginit(self, _TDF.new_TDF_DataSet(*args))

    def AddAttribute(self, *args) -> "void":
        r"""
        Adds <anattribute> into the current data set.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        return _TDF.TDF_DataSet_AddAttribute(self, *args)

    def AddLabel(self, *args) -> "void":
        r"""
        Adds <alabel> in the current data set.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        None

        """
        return _TDF.TDF_DataSet_AddLabel(self, *args)

    def AddRoot(self, *args) -> "void":
        r"""
        Adds a root label to <myrootlabels>.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        None

        """
        return _TDF.TDF_DataSet_AddRoot(self, *args)

    def Attributes(self, *args) -> "TDF_AttributeMap &":
        r"""
        Returns the map of attributes in the current data set. this map can be used directly, or updated.

        Returns
        -------
        TDF_AttributeMap

        """
        return _TDF.TDF_DataSet_Attributes(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears all information.

        Returns
        -------
        None

        """
        return _TDF.TDF_DataSet_Clear(self, *args)

    def ContainsAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <anattribute> is in the data set.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_DataSet_ContainsAttribute(self, *args)

    def ContainsLabel(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the label <alabel> is in the data set.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_DataSet_ContainsLabel(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_DataSet self) -> std::string"""
        return _TDF.TDF_DataSet_DumpToString(self)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is at least one label or one attribute.

        Returns
        -------
        bool

        """
        return _TDF.TDF_DataSet_IsEmpty(self, *args)

    def Labels(self, *args) -> "TDF_LabelMap &":
        r"""
        Returns the map of labels in this data set. this map can be used directly, or updated.

        Returns
        -------
        TDF_LabelMap

        """
        return _TDF.TDF_DataSet_Labels(self, *args)

    def Roots(self, *args) -> "TDF_LabelList &":
        r"""
        Returns <myrootlabels> to be used or updated.

        Returns
        -------
        TDF_LabelList

        """
        return _TDF.TDF_DataSet_Roots(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DataSet

# Register TDF_DataSet in _TDF:
_TDF.TDF_DataSet_swigregister(TDF_DataSet)

class TDF_Delta(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"""
        Creates a delta.

        Returns
        -------
        None

        """
        _TDF.TDF_Delta_swiginit(self, _TDF.new_TDF_Delta(*args))

    def AttributeDeltas(self, *args) -> "TDF_AttributeDeltaList const &":
        r"""
        Returns the field <myattdeltalist>.

        Returns
        -------
        TDF_AttributeDeltaList

        """
        return _TDF.TDF_Delta_AttributeDeltas(self, *args)

    def BeginTime(self, *args) -> "Standard_Integer":
        r"""
        Returns the field <mybegintime>.

        Returns
        -------
        int

        """
        return _TDF.TDF_Delta_BeginTime(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_Delta self) -> std::string"""
        return _TDF.TDF_Delta_DumpToString(self)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_Delta self, int depth=-1) -> std::string"""
        return _TDF.TDF_Delta_DumpJsonToString(self, depth)

    def EndTime(self, *args) -> "Standard_Integer":
        r"""
        Returns the field <myendtime>.

        Returns
        -------
        int

        """
        return _TDF.TDF_Delta_EndTime(self, *args)

    def IsApplicable(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the undo action of <self> is applicable at <acurrenttime>.

        Parameters
        ----------
        aCurrentTime: int

        Returns
        -------
        bool

        """
        return _TDF.TDF_Delta_IsApplicable(self, *args)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is nothing to undo.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Delta_IsEmpty(self, *args)

    def Labels(self, *args) -> "void":
        r"""
        Adds in <alabellist> the labels of the attribute deltas. caution: <alabellist> is not cleared before use.

        Parameters
        ----------
        aLabelList: TDF_LabelList

        Returns
        -------
        None

        """
        return _TDF.TDF_Delta_Labels(self, *args)

    def Name(self, *args) -> "TCollection_ExtendedString":
        r"""
        Returns a name associated with this delta.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _TDF.TDF_Delta_Name(self, *args)

    def SetName(self, *args) -> "void":
        r"""
        Associates a name <thename> with this delta.

        Parameters
        ----------
        theName: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _TDF.TDF_Delta_SetName(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Delta

# Register TDF_Delta in _TDF:
_TDF.TDF_Delta_swigregister(TDF_Delta)

class TDF_IDFilter(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"""
        Creates an id/attribute filter based on an id list. the default mode is 'ignore all but...'. //! this filter has 2 working mode: keep and ignore. //! ignore/exclusive mode: all ids are ignored except these set to be kept, using keep(). of course, it is possible set an kept id to be ignored using ignore(). //! keep/inclusive mode: all ids are kept except these set to be ignored, using ignore(). of course, it is possible set an ignored id to be kept using keep().

        Parameters
        ----------
        ignoreMode: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        _TDF.TDF_IDFilter_swiginit(self, _TDF.new_TDF_IDFilter(*args))

    def Assign(self, *args) -> "void":
        r"""
        Assignment.

        Parameters
        ----------
        theFilter: TDF_IDFilter

        Returns
        -------
        None

        """
        return _TDF.TDF_IDFilter_Assign(self, *args)

    def Copy(self, *args) -> "void":
        r"""
        Copies into <self> the contents of <fromfilter>. <self> is cleared before copy.

        Parameters
        ----------
        fromFilter: TDF_IDFilter

        Returns
        -------
        None

        """
        return _TDF.TDF_IDFilter_Copy(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_IDFilter self) -> std::string"""
        return _TDF.TDF_IDFilter_DumpToString(self)

    def IDList(self, *args) -> "void":
        r"""
        Copies the list of id to be kept or ignored in <anidlist>. <anidlist> is cleared before use.

        Parameters
        ----------
        anIDList: TDF_IDList

        Returns
        -------
        None

        """
        return _TDF.TDF_IDFilter_IDList(self, *args)

    def Ignore(self, *args) -> "void":
        r"""
        An attribute with <anid> as id is to be ignored and the filter will answer false to the question iskept(<anid>).

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        None
        Attributes with id owned by <anidlist> are to be ignored and the filter will answer false to the question iskept(<anid>) with id from <anidlist>.

        Parameters
        ----------
        anIDList: TDF_IDList

        Returns
        -------
        None

        """
        return _TDF.TDF_IDFilter_Ignore(self, *args)

    def IgnoreAll(self, *args) -> "Standard_Boolean":
        r"""
        The list of id is cleared and the filter mode is set to ignore mode if <keep> is true; false otherwise.

        Parameters
        ----------
        ignore: bool

        Returns
        -------
        None
        Returns true is the mode is set to 'ignore all but...'.

        Returns
        -------
        bool

        """
        return _TDF.TDF_IDFilter_IgnoreAll(self, *args)

    def IsIgnored(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the id is to be ignored.

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        bool
        Returns true if the attribute is to be ignored.

        Parameters
        ----------
        anAtt: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_IDFilter_IsIgnored(self, *args)

    def IsKept(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the id is to be kept.

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        bool
        Returns true if the attribute is to be kept.

        Parameters
        ----------
        anAtt: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_IDFilter_IsKept(self, *args)

    def Keep(self, *args) -> "void":
        r"""
        An attribute with <anid> as id is to be kept and the filter will answer true to the question iskept(<anid>).

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        None
        Attributes with id owned by <anidlist> are to be kept and the filter will answer true to the question iskept(<anid>) with id from <anidlist>.

        Parameters
        ----------
        anIDList: TDF_IDList

        Returns
        -------
        None

        """
        return _TDF.TDF_IDFilter_Keep(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_IDFilter

# Register TDF_IDFilter in _TDF:
_TDF.TDF_IDFilter_swigregister(TDF_IDFilter)

class TDF_Label(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"""
        Constructs an empty label object.

        Returns
        -------
        None

        """
        _TDF.TDF_Label_swiginit(self, _TDF.new_TDF_Label(*args))

    def AddAttribute(self, *args) -> "void":
        r"""
        Adds an attribute to the current label. raises if there is already one.

        Parameters
        ----------
        anAttribute: TDF_Attribute
        append: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _TDF.TDF_Label_AddAttribute(self, *args)

    def AttributesModified(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <self> owns attributes not yet available in transaction 0. it means at least one attribute is new, modified or deleted.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_AttributesModified(self, *args)

    def Data(self, *args) -> "opencascade::handle< TDF_Data >":
        r"""
        Returns the data owning <self>.

        Returns
        -------
        opencascade::handle<TDF_Data>

        """
        return _TDF.TDF_Label_Data(self, *args)

    def Depth(self, *args) -> "Standard_Integer":
        r"""
        Returns the depth of the label in the data framework. this corresponds to the number of fathers which this label has, and is used in determining whether a label is root, null or equivalent to another label. exceptions: standard_nullobject if this label is null. this is because a null object can have no depth.

        Returns
        -------
        int

        """
        return _TDF.TDF_Label_Depth(self, *args)

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_Label self) -> std::string"""
        return _TDF.TDF_Label_DumpToString(self)

    def EntryDumpToString(self) -> "std::string":
        r"""EntryDumpToString(TDF_Label self) -> std::string"""
        return _TDF.TDF_Label_EntryDumpToString(self)

    def Father(self, *args) -> "TDF_Label const":
        r"""
        Returns the label father. this label may be null if the label is root.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Label_Father(self, *args)

    def FindAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Finds an attribute of the current label, according to <anid>. if anattribute is not a valid one, false is returned. //! the method returns true if found, false otherwise. //! a removed attribute cannot be found.

        Parameters
        ----------
        anID: Standard_GUID
        anAttribute: TDF_Attribute

        Returns
        -------
        bool
        Finds an attribute of the current label, according to <anid> and <atransaction>. this attribute has/had to be a valid one for the given transaction index . so, this attribute is not necessary a valid one. //! the method returns true if found, false otherwise. //! a removed attribute cannot be found nor a backuped attribute of a removed one.

        Parameters
        ----------
        anID: Standard_GUID
        aTransaction: int
        anAttribute: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_FindAttribute(self, *args)

    def FindChild(self, *args) -> "TDF_Label":
        r"""
        Finds a child label having <atag> as tag. creates the tag atag identifies the label which will be the parent. if create is true and no child label is found, a new one is created. example: //creating a label with tag 10 at root tdf_label lab1 = adf->root().findchild(10); //creating labels 7 and 2 on label 10 tdf_label lab2 = lab1.findchild(7); tdf_label lab3 = lab1.findchild(2);.

        Parameters
        ----------
        aTag: int
        create: bool,optional
        	default value is Standard_True

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Label_FindChild(self, *args)

    def ForgetAllAttributes(self, *args) -> "void":
        r"""
        Forgets all the attributes. does it on also on the sub-labels if <clearchildren> is set to true. of course, this method is compatible with transaction & delta mecanisms.

        Parameters
        ----------
        clearChildren: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _TDF.TDF_Label_ForgetAllAttributes(self, *args)

    def ForgetAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Forgets an attribute from the current label, setting its forgotten status true and its valid status false. raises if the attribute is not in the structure.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None
        Forgets the attribute of guid <aguid> from the current label . if the attribute doesn't exist returns false. otherwise returns true.

        Parameters
        ----------
        aguid: Standard_GUID

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_ForgetAttribute(self, *args)

    def HasAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this label has at least one attribute.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_HasAttribute(self, *args)

    def HasChild(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this label has at least one child.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_HasChild(self, *args)

    def HasGreaterNode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if node address of <self> is greater than <otherlabel> one. used to quickly sort labels (not on entry criterion). //! -c++: inline.

        Parameters
        ----------
        otherLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_HasGreaterNode(self, *args)

    def HasLowerNode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if node address of <self> is lower than <otherlabel> one. used to quickly sort labels (not on entry criterion). //! -c++: inline.

        Parameters
        ----------
        otherLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_HasLowerNode(self, *args)

    def Imported(self, *args) -> "void":
        r"""
        Sets or unsets <self> and all its descendants as imported label, according to <astatus>.

        Parameters
        ----------
        aStatus: bool

        Returns
        -------
        None

        """
        return _TDF.TDF_Label_Imported(self, *args)

    def IsAttribute(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <self> owns an attribute with <anid> as id.

        Parameters
        ----------
        anID: Standard_GUID

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsAttribute(self, *args)

    def IsDescendant(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <self> is a descendant of <alabel>. attention: every label is its own descendant.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsDescendant(self, *args)

    def IsDifferent(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsDifferent(self, *args)

    def IsEqual(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the <alabel> is equal to me (same labelnode*).

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsEqual(self, *args)

    def IsImported(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the <alabel> is imported.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsImported(self, *args)

    def IsNull(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the <alabel> is null, i.e. it has not been included in the data framework.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsNull(self, *args)

    def IsRoot(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_IsRoot(self, *args)

    def MayBeModified(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if <self> or a descendant of <self> owns attributes not yet available in transaction 0. it means at least one of their attributes is new, modified or deleted.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Label_MayBeModified(self, *args)

    def NbAttributes(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of attributes.

        Returns
        -------
        int

        """
        return _TDF.TDF_Label_NbAttributes(self, *args)

    def NbChildren(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of children.

        Returns
        -------
        int

        """
        return _TDF.TDF_Label_NbChildren(self, *args)

    def NewChild(self, *args) -> "TDF_Label":
        r"""
        Create a new child label of me using autoamtic delivery tags provided by tagsource.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Label_NewChild(self, *args)

    def Nullify(self, *args) -> "void":
        r"""
        Nullifies the label.

        Returns
        -------
        None

        """
        return _TDF.TDF_Label_Nullify(self, *args)

    def ResumeAttribute(self, *args) -> "void":
        r"""
        Undo forget action, setting its forgotten status false and its valid status true. raises if the attribute is not in the structure.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        return _TDF.TDF_Label_ResumeAttribute(self, *args)

    def Root(self, *args) -> "TDF_Label const":
        r"""
        Returns the root label root of the data structure. this has a depth of 0. exceptions: standard_nullobject if this label is null. this is because a null object can have no depth.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Label_Root(self, *args)

    def Tag(self, *args) -> "Standard_Integer":
        r"""
        Returns the tag of the label. this is the integer assigned randomly to a label in a data framework. this integer is used to identify this label in an entry.

        Returns
        -------
        int

        """
        return _TDF.TDF_Label_Tag(self, *args)

    def Transaction(self, *args) -> "Standard_Integer":
        r"""
        Returns the current transaction index.

        Returns
        -------
        int

        """
        return _TDF.TDF_Label_Transaction(self, *args)

    def __ne_wrapper__(self, other: "TDF_Label") -> "bool":
        r"""__ne_wrapper__(TDF_Label self, TDF_Label other) -> bool"""
        return _TDF.TDF_Label___ne_wrapper__(self, other)

    def __ne__(self, right):
        try:
            return self.__ne_wrapper__(right)
        except:
            return True


    def __eq_wrapper__(self, other: "TDF_Label") -> "bool":
        r"""__eq_wrapper__(TDF_Label self, TDF_Label other) -> bool"""
        return _TDF.TDF_Label___eq_wrapper__(self, other)

    def __eq__(self, right):
        try:
            return self.__eq_wrapper__(right)
        except:
            return False


    def GetLabelName(self) -> "std::string":
        r"""Returns the label name"""
        return _TDF.TDF_Label_GetLabelName(self)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Label

# Register TDF_Label in _TDF:
_TDF.TDF_Label_swigregister(TDF_Label)

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

    @staticmethod
    def HashCode(*args) -> "Standard_Integer":
        r"""
        Computes a hash code for the given label, in the range [1, theupperbound] @param thelabel the label which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

        Parameters
        ----------
        theLabel: TDF_Label
        theUpperBound: int

        Returns
        -------
        int

        """
        return _TDF.TDF_LabelMapHasher_HashCode(*args)

    @staticmethod
    def IsEqual(*args) -> "Standard_Boolean":
        r"""
        Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

        Parameters
        ----------
        aLab1: TDF_Label
        aLab2: TDF_Label

        Returns
        -------
        bool

        """
        return _TDF.TDF_LabelMapHasher_IsEqual(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.TDF_LabelMapHasher_swiginit(self, _TDF.new_TDF_LabelMapHasher())
    __swig_destroy__ = _TDF.delete_TDF_LabelMapHasher

# Register TDF_LabelMapHasher in _TDF:
_TDF.TDF_LabelMapHasher_swigregister(TDF_LabelMapHasher)

def TDF_LabelMapHasher_HashCode(*args) -> "Standard_Integer":
    r"""
    Computes a hash code for the given label, in the range [1, theupperbound] @param thelabel the label which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within returns a computed hash code, in the range [1, theupperbound].

    Parameters
    ----------
    theLabel: TDF_Label
    theUpperBound: int

    Returns
    -------
    int

    """
    return _TDF.TDF_LabelMapHasher_HashCode(*args)

def TDF_LabelMapHasher_IsEqual(*args) -> "Standard_Boolean":
    r"""
    Returns true when the two keys are the same. two same keys must have the same hashcode, the contrary is not necessary.

    Parameters
    ----------
    aLab1: TDF_Label
    aLab2: TDF_Label

    Returns
    -------
    bool

    """
    return _TDF.TDF_LabelMapHasher_IsEqual(*args)

class TDF_RelocationTable(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"""
        Creates an relocation table. <selfrelocate> says if a value without explicit relocation is its own relocation.

        Parameters
        ----------
        selfRelocate: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _TDF.TDF_RelocationTable_swiginit(self, _TDF.new_TDF_RelocationTable(*args))

    def AfterRelocate(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Parameters
        ----------
        afterRelocate: bool

        Returns
        -------
        None
        Returns <myafterrelocate>.

        Returns
        -------
        bool

        """
        return _TDF.TDF_RelocationTable_AfterRelocate(self, *args)

    def AttributeTable(self, *args) -> "TDF_AttributeDataMap &":
        r"""
        Returns <myattributetable> to be used or updated.

        Returns
        -------
        TDF_AttributeDataMap

        """
        return _TDF.TDF_RelocationTable_AttributeTable(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the relocation dictionnary, but lets the self relocation flag to its current value.

        Returns
        -------
        None

        """
        return _TDF.TDF_RelocationTable_Clear(self, *args)

    def HasRelocation(self, *args) -> "Standard_Boolean":
        r"""
        Finds the relocation value of <asourcelabel> and returns it into <atargetlabel>. //! (see above selfrelocate method for more explanation about the method behavior).

        Parameters
        ----------
        aSourceLabel: TDF_Label
        aTargetLabel: TDF_Label

        Returns
        -------
        bool
        Finds the relocation value of <asourceattribute> and returns it into <atargetattribute>. //! (see above selfrelocate method for more explanation about the method behavior).

        Parameters
        ----------
        aSourceAttribute: TDF_Attribute
        aTargetAttribute: TDF_Attribute

        Returns
        -------
        bool

        """
        return _TDF.TDF_RelocationTable_HasRelocation(self, *args)

    def HasTransientRelocation(self, *args) -> "Standard_Boolean":
        r"""
        Finds the relocation value of <asourcetransient> and returns it into <atargettransient>. //! (see above selfrelocate method for more explanation about the method behavior).

        Parameters
        ----------
        aSourceTransient: Standard_Transient
        aTargetTransient: Standard_Transient

        Returns
        -------
        bool

        """
        return _TDF.TDF_RelocationTable_HasTransientRelocation(self, *args)

    def LabelTable(self, *args) -> "TDF_LabelDataMap &":
        r"""
        Returns <mylabeltable> to be used or updated.

        Returns
        -------
        TDF_LabelDataMap

        """
        return _TDF.TDF_RelocationTable_LabelTable(self, *args)

    def SelfRelocate(self, *args) -> "Standard_Boolean":
        r"""
        Sets <myselfrelocate> to <selfrelocate>. //! this flag affects the hasrelocation method behavior like this: //! <myselfrelocate> == false: //! if no relocation object is found in the map, a null object is returned //! <myselfrelocate> == true: //! if no relocation object is found in the map, the method assumes the source object is relocation value; so the source object is returned as target object.

        Parameters
        ----------
        selfRelocate: bool

        Returns
        -------
        None
        Returns <myselfrelocate>.

        Returns
        -------
        bool

        """
        return _TDF.TDF_RelocationTable_SelfRelocate(self, *args)

    def SetRelocation(self, *args) -> "void":
        r"""
        Sets the relocation value of <asourcelabel> to <atargetlabel>.

        Parameters
        ----------
        aSourceLabel: TDF_Label
        aTargetLabel: TDF_Label

        Returns
        -------
        None
        Sets the relocation value of <asourceattribute> to <atargetattribute>.

        Parameters
        ----------
        aSourceAttribute: TDF_Attribute
        aTargetAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        return _TDF.TDF_RelocationTable_SetRelocation(self, *args)

    def SetTransientRelocation(self, *args) -> "void":
        r"""
        Sets the relocation value of <asourcetransient> to <atargettransient>.

        Parameters
        ----------
        aSourceTransient: Standard_Transient
        aTargetTransient: Standard_Transient

        Returns
        -------
        None

        """
        return _TDF.TDF_RelocationTable_SetTransientRelocation(self, *args)

    def TargetAttributeMap(self, *args) -> "void":
        r"""
        Fills <anattributemap> with target relocation attributes. <anattributemap> is not cleared before use.

        Parameters
        ----------
        anAttributeMap: TDF_AttributeMap

        Returns
        -------
        None

        """
        return _TDF.TDF_RelocationTable_TargetAttributeMap(self, *args)

    def TargetLabelMap(self, *args) -> "void":
        r"""
        Fills <alabelmap> with target relocation labels. <alabelmap> is not cleared before use.

        Parameters
        ----------
        aLabelMap: TDF_LabelMap

        Returns
        -------
        None

        """
        return _TDF.TDF_RelocationTable_TargetLabelMap(self, *args)

    def TransientTable(self, *args) -> "TColStd_IndexedDataMapOfTransientTransient &":
        r"""
        Returns <mytransienttable> to be used or updated.

        Returns
        -------
        TColStd_IndexedDataMapOfTransientTransient

        """
        return _TDF.TDF_RelocationTable_TransientTable(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_RelocationTable

# Register TDF_RelocationTable in _TDF:
_TDF.TDF_RelocationTable_swigregister(TDF_RelocationTable)

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

    @staticmethod
    def CountLabels(*args) -> "void":
        r"""
        Adds the labels of <alabellist> to <alabelmap> if they are unbound, or increases their reference counters. at the end of the process, <alabellist> contains only the added labels.

        Parameters
        ----------
        aLabelList: TDF_LabelList
        aLabelMap: TDF_LabelIntegerMap

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_CountLabels(*args)

    @staticmethod
    def DeductLabels(*args) -> "void":
        r"""
        Decreases the reference counters of the labels of <alabellist> to <alabelmap>, and removes labels with null counter. at the end of the process, <alabellist> contains only the suppressed labels.

        Parameters
        ----------
        aLabelList: TDF_LabelList
        aLabelMap: TDF_LabelIntegerMap

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_DeductLabels(*args)

    @staticmethod
    def Entry(*args) -> "void":
        r"""
        Returns the entry for the label alabel in the form of the ascii character string anentry containing the tag list for alabel.

        Parameters
        ----------
        aLabel: TDF_Label
        anEntry: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_Entry(*args)

    @staticmethod
    def IsSelfContained(*args) -> "Standard_Boolean":
        r"""
        Returns true if <alabel> and its descendants reference only attributes or labels attached to themselves.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        bool
        Returns true if <alabel> and its descendants reference only attributes or labels attached to themselves and kept by <afilter>.

        Parameters
        ----------
        aLabel: TDF_Label
        aFilter: TDF_IDFilter

        Returns
        -------
        bool

        """
        return _TDF.TDF_Tool_IsSelfContained(*args)

    @staticmethod
    def Label(*args) -> "void":
        r"""
        Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

        Parameters
        ----------
        aDF: TDF_Data
        anEntry: TCollection_AsciiString
        aLabel: TDF_Label
        create: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

        Parameters
        ----------
        aDF: TDF_Data
        anEntry: char *
        aLabel: TDF_Label
        create: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

        Parameters
        ----------
        aDF: TDF_Data
        aTagList: TColStd_ListOfInteger
        aLabel: TDF_Label
        create: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_Label(*args)

    @staticmethod
    def NbAttributes(*args) -> "Standard_Integer":
        r"""
        Returns the total number of attributes attached to the labels dependent on the label alabel. the attributes of alabel are also included in this figure. this information is useful in setting the size of an array.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        int
        Returns the number of attributes of the tree, selected by a<filter>, including those of <alabel>.

        Parameters
        ----------
        aLabel: TDF_Label
        aFilter: TDF_IDFilter

        Returns
        -------
        int

        """
        return _TDF.TDF_Tool_NbAttributes(*args)

    @staticmethod
    def NbLabels(*args) -> "Standard_Integer":
        r"""
        Returns the number of labels of the tree, including <alabel>. alabel is also included in this figure. this information is useful in setting the size of an array.

        Parameters
        ----------
        aLabel: TDF_Label

        Returns
        -------
        int

        """
        return _TDF.TDF_Tool_NbLabels(*args)

    @staticmethod
    def OutReferences(*args) -> "void":
        r"""
        Returns in <atts> the referenced attributes. caution: <atts> is not cleared before use!.

        Parameters
        ----------
        aLabel: TDF_Label
        atts: TDF_AttributeMap

        Returns
        -------
        None
        Returns in <atts> the referenced attributes and kept by <afilterforreferences>. it considers only the referers kept by <afilterforreferers>. caution: <atts> is not cleared before use!.

        Parameters
        ----------
        aLabel: TDF_Label
        aFilterForReferers: TDF_IDFilter
        aFilterForReferences: TDF_IDFilter
        atts: TDF_AttributeMap

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_OutReferences(*args)

    @staticmethod
    def OutReferers(*args) -> "void":
        r"""
        Returns in <theatts> the attributes having out references. //! caution: <theatts> is not cleared before use!.

        Parameters
        ----------
        theLabel: TDF_Label
        theAtts: TDF_AttributeMap

        Returns
        -------
        None
        Returns in <atts> the attributes having out references and kept by <afilterforreferers>. it considers only the references kept by <afilterforreferences>. caution: <atts> is not cleared before use!.

        Parameters
        ----------
        aLabel: TDF_Label
        aFilterForReferers: TDF_IDFilter
        aFilterForReferences: TDF_IDFilter
        atts: TDF_AttributeMap

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_OutReferers(*args)

    @staticmethod
    def RelocateLabel(*args) -> "void":
        r"""
        Returns the label having the same sub-entry as <alabel> but located as descendant as <toroot> instead of <fromroot>. //! exemple : //! alabel = 0:3:24:7:2:7 fromroot = 0:3:24 toroot = 0:5 returned label = 0:5:7:2:7.

        Parameters
        ----------
        aSourceLabel: TDF_Label
        fromRoot: TDF_Label
        toRoot: TDF_Label
        aTargetLabel: TDF_Label
        create: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_RelocateLabel(*args)

    @staticmethod
    def TagList(*args) -> "void":
        r"""
        Returns the entry of <alabel> as list of integers in <ataglist>.

        Parameters
        ----------
        aLabel: TDF_Label
        aTagList: TColStd_ListOfInteger

        Returns
        -------
        None
        Returns the entry expressed by <anentry> as list of integers in <ataglist>.

        Parameters
        ----------
        anEntry: TCollection_AsciiString
        aTagList: TColStd_ListOfInteger

        Returns
        -------
        None

        """
        return _TDF.TDF_Tool_TagList(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _TDF.TDF_Tool_swiginit(self, _TDF.new_TDF_Tool())
    __swig_destroy__ = _TDF.delete_TDF_Tool

# Register TDF_Tool in _TDF:
_TDF.TDF_Tool_swigregister(TDF_Tool)

def TDF_Tool_CountLabels(*args) -> "void":
    r"""
    Adds the labels of <alabellist> to <alabelmap> if they are unbound, or increases their reference counters. at the end of the process, <alabellist> contains only the added labels.

    Parameters
    ----------
    aLabelList: TDF_LabelList
    aLabelMap: TDF_LabelIntegerMap

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_CountLabels(*args)

def TDF_Tool_DeductLabels(*args) -> "void":
    r"""
    Decreases the reference counters of the labels of <alabellist> to <alabelmap>, and removes labels with null counter. at the end of the process, <alabellist> contains only the suppressed labels.

    Parameters
    ----------
    aLabelList: TDF_LabelList
    aLabelMap: TDF_LabelIntegerMap

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_DeductLabels(*args)

def TDF_Tool_Entry(*args) -> "void":
    r"""
    Returns the entry for the label alabel in the form of the ascii character string anentry containing the tag list for alabel.

    Parameters
    ----------
    aLabel: TDF_Label
    anEntry: TCollection_AsciiString

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_Entry(*args)

def TDF_Tool_IsSelfContained(*args) -> "Standard_Boolean":
    r"""
    Returns true if <alabel> and its descendants reference only attributes or labels attached to themselves.

    Parameters
    ----------
    aLabel: TDF_Label

    Returns
    -------
    bool
    Returns true if <alabel> and its descendants reference only attributes or labels attached to themselves and kept by <afilter>.

    Parameters
    ----------
    aLabel: TDF_Label
    aFilter: TDF_IDFilter

    Returns
    -------
    bool

    """
    return _TDF.TDF_Tool_IsSelfContained(*args)

def TDF_Tool_Label(*args) -> "void":
    r"""
    Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

    Parameters
    ----------
    aDF: TDF_Data
    anEntry: TCollection_AsciiString
    aLabel: TDF_Label
    create: bool,optional
    	default value is Standard_False

    Returns
    -------
    None
    Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

    Parameters
    ----------
    aDF: TDF_Data
    anEntry: char *
    aLabel: TDF_Label
    create: bool,optional
    	default value is Standard_False

    Returns
    -------
    None
    Returns the label expressed by <anentry>; creates the label if it does not exist and if <create> is true.

    Parameters
    ----------
    aDF: TDF_Data
    aTagList: TColStd_ListOfInteger
    aLabel: TDF_Label
    create: bool,optional
    	default value is Standard_False

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_Label(*args)

def TDF_Tool_NbAttributes(*args) -> "Standard_Integer":
    r"""
    Returns the total number of attributes attached to the labels dependent on the label alabel. the attributes of alabel are also included in this figure. this information is useful in setting the size of an array.

    Parameters
    ----------
    aLabel: TDF_Label

    Returns
    -------
    int
    Returns the number of attributes of the tree, selected by a<filter>, including those of <alabel>.

    Parameters
    ----------
    aLabel: TDF_Label
    aFilter: TDF_IDFilter

    Returns
    -------
    int

    """
    return _TDF.TDF_Tool_NbAttributes(*args)

def TDF_Tool_NbLabels(*args) -> "Standard_Integer":
    r"""
    Returns the number of labels of the tree, including <alabel>. alabel is also included in this figure. this information is useful in setting the size of an array.

    Parameters
    ----------
    aLabel: TDF_Label

    Returns
    -------
    int

    """
    return _TDF.TDF_Tool_NbLabels(*args)

def TDF_Tool_OutReferences(*args) -> "void":
    r"""
    Returns in <atts> the referenced attributes. caution: <atts> is not cleared before use!.

    Parameters
    ----------
    aLabel: TDF_Label
    atts: TDF_AttributeMap

    Returns
    -------
    None
    Returns in <atts> the referenced attributes and kept by <afilterforreferences>. it considers only the referers kept by <afilterforreferers>. caution: <atts> is not cleared before use!.

    Parameters
    ----------
    aLabel: TDF_Label
    aFilterForReferers: TDF_IDFilter
    aFilterForReferences: TDF_IDFilter
    atts: TDF_AttributeMap

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_OutReferences(*args)

def TDF_Tool_OutReferers(*args) -> "void":
    r"""
    Returns in <theatts> the attributes having out references. //! caution: <theatts> is not cleared before use!.

    Parameters
    ----------
    theLabel: TDF_Label
    theAtts: TDF_AttributeMap

    Returns
    -------
    None
    Returns in <atts> the attributes having out references and kept by <afilterforreferers>. it considers only the references kept by <afilterforreferences>. caution: <atts> is not cleared before use!.

    Parameters
    ----------
    aLabel: TDF_Label
    aFilterForReferers: TDF_IDFilter
    aFilterForReferences: TDF_IDFilter
    atts: TDF_AttributeMap

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_OutReferers(*args)

def TDF_Tool_RelocateLabel(*args) -> "void":
    r"""
    Returns the label having the same sub-entry as <alabel> but located as descendant as <toroot> instead of <fromroot>. //! exemple : //! alabel = 0:3:24:7:2:7 fromroot = 0:3:24 toroot = 0:5 returned label = 0:5:7:2:7.

    Parameters
    ----------
    aSourceLabel: TDF_Label
    fromRoot: TDF_Label
    toRoot: TDF_Label
    aTargetLabel: TDF_Label
    create: bool,optional
    	default value is Standard_False

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_RelocateLabel(*args)

def TDF_Tool_TagList(*args) -> "void":
    r"""
    Returns the entry of <alabel> as list of integers in <ataglist>.

    Parameters
    ----------
    aLabel: TDF_Label
    aTagList: TColStd_ListOfInteger

    Returns
    -------
    None
    Returns the entry expressed by <anentry> as list of integers in <ataglist>.

    Parameters
    ----------
    anEntry: TCollection_AsciiString
    aTagList: TColStd_ListOfInteger

    Returns
    -------
    None

    """
    return _TDF.TDF_Tool_TagList(*args)

class TDF_Transaction(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"""
        Creates an empty transaction context, unable to be opened.

        Parameters
        ----------
        aName: TCollection_AsciiString,optional
        	default value is 

        Returns
        -------
        None
        Creates a transaction context on <adf>, ready to be opened.

        Parameters
        ----------
        aDF: TDF_Data
        aName: TCollection_AsciiString,optional
        	default value is 

        Returns
        -------
        None

        """
        _TDF.TDF_Transaction_swiginit(self, _TDF.new_TDF_Transaction(*args))

    def Abort(self, *args) -> "void":
        r"""
        Aborts the transactions until and including the current opened one.

        Returns
        -------
        None

        """
        return _TDF.TDF_Transaction_Abort(self, *args)

    def Commit(self, *args) -> "opencascade::handle< TDF_Delta >":
        r"""
        Commits the transactions until and including the current opened one.

        Parameters
        ----------
        withDelta: bool,optional
        	default value is Standard_False

        Returns
        -------
        opencascade::handle<TDF_Delta>

        """
        return _TDF.TDF_Transaction_Commit(self, *args)

    def Data(self, *args) -> "opencascade::handle< TDF_Data >":
        r"""
        Returns the data from tdf.

        Returns
        -------
        opencascade::handle<TDF_Data>

        """
        return _TDF.TDF_Transaction_Data(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_Transaction self, int depth=-1) -> std::string"""
        return _TDF.TDF_Transaction_DumpJsonToString(self, depth)

    def Initialize(self, *args) -> "void":
        r"""
        Aborts all the transactions on <mydf> and sets <adf> to build a transaction context on <adf>, ready to be opened.

        Parameters
        ----------
        aDF: TDF_Data

        Returns
        -------
        None

        """
        return _TDF.TDF_Transaction_Initialize(self, *args)

    def IsOpen(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the transaction is open.

        Returns
        -------
        bool

        """
        return _TDF.TDF_Transaction_IsOpen(self, *args)

    def Name(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns the transaction name.

        Returns
        -------
        TCollection_AsciiString

        """
        return _TDF.TDF_Transaction_Name(self, *args)

    def Open(self, *args) -> "Standard_Integer":
        r"""
        If not yet done, opens a new transaction on <mydf>. returns the index of the just opened transaction. //! it raises domainerror if the transaction is already open, and nullobject if there is no current data framework.

        Returns
        -------
        int

        """
        return _TDF.TDF_Transaction_Open(self, *args)

    def Transaction(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of the transaction opened by <self>.

        Returns
        -------
        int

        """
        return _TDF.TDF_Transaction_Transaction(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Transaction

# Register TDF_Transaction in _TDF:
_TDF.TDF_Transaction_swigregister(TDF_Transaction)

class TDF_DeltaOnAddition(TDF_AttributeDelta):
    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"""
        Creates a tdf_deltaonaddition.

        Parameters
        ----------
        anAtt: TDF_Attribute

        Returns
        -------
        None

        """
        _TDF.TDF_DeltaOnAddition_swiginit(self, _TDF.new_TDF_DeltaOnAddition(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DeltaOnAddition

# Register TDF_DeltaOnAddition in _TDF:
_TDF.TDF_DeltaOnAddition_swigregister(TDF_DeltaOnAddition)

class TDF_DeltaOnForget(TDF_AttributeDelta):
    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"""
        Creates a tdf_deltaonforget.

        Parameters
        ----------
        anAtt: TDF_Attribute

        Returns
        -------
        None

        """
        _TDF.TDF_DeltaOnForget_swiginit(self, _TDF.new_TDF_DeltaOnForget(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DeltaOnForget

# Register TDF_DeltaOnForget in _TDF:
_TDF.TDF_DeltaOnForget_swigregister(TDF_DeltaOnForget)

class TDF_DeltaOnModification(TDF_AttributeDelta):
    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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DeltaOnModification

# Register TDF_DeltaOnModification in _TDF:
_TDF.TDF_DeltaOnModification_swigregister(TDF_DeltaOnModification)

class TDF_DeltaOnRemoval(TDF_AttributeDelta):
    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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DeltaOnRemoval

# Register TDF_DeltaOnRemoval in _TDF:
_TDF.TDF_DeltaOnRemoval_swigregister(TDF_DeltaOnRemoval)

class TDF_DeltaOnResume(TDF_AttributeDelta):
    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"""
        Creates a tdf_deltaonresume.

        Parameters
        ----------
        anAtt: TDF_Attribute

        Returns
        -------
        None

        """
        _TDF.TDF_DeltaOnResume_swiginit(self, _TDF.new_TDF_DeltaOnResume(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_DeltaOnResume self, int depth=-1) -> std::string"""
        return _TDF.TDF_DeltaOnResume_DumpJsonToString(self, depth)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DeltaOnResume

# Register TDF_DeltaOnResume in _TDF:
_TDF.TDF_DeltaOnResume_swigregister(TDF_DeltaOnResume)

class TDF_Reference(TDF_Attribute):
    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"""
        No available documentation.

        Returns
        -------
        None

        """
        _TDF.TDF_Reference_swiginit(self, _TDF.new_TDF_Reference(*args))

    def DumpToString(self) -> "std::string":
        r"""DumpToString(TDF_Reference self) -> std::string"""
        return _TDF.TDF_Reference_DumpToString(self)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_Reference self, int depth=-1) -> std::string"""
        return _TDF.TDF_Reference_DumpJsonToString(self, depth)

    def Get(self, *args) -> "TDF_Label":
        r"""
        No available documentation.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_Reference_Get(self, *args)

    @staticmethod
    def GetID(*args) -> "Standard_GUID const &":
        r"""
        No available documentation.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.TDF_Reference_GetID(*args)

    def Set(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        I: TDF_Label
        Origin: TDF_Label

        Returns
        -------
        opencascade::handle<TDF_Reference>
        No available documentation.

        Parameters
        ----------
        Origin: TDF_Label

        Returns
        -------
        None

        """
        return _TDF.TDF_Reference_Set(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_Reference

# Register TDF_Reference in _TDF:
_TDF.TDF_Reference_swigregister(TDF_Reference)

def TDF_Reference_GetID(*args) -> "Standard_GUID const &":
    r"""
    No available documentation.

    Returns
    -------
    Standard_GUID

    """
    return _TDF.TDF_Reference_GetID(*args)

class TDF_TagSource(TDF_Attribute):
    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"""
        No available documentation.

        Returns
        -------
        None

        """
        _TDF.TDF_TagSource_swiginit(self, _TDF.new_TDF_TagSource(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(TDF_TagSource self, int depth=-1) -> std::string"""
        return _TDF.TDF_TagSource_DumpJsonToString(self, depth)

    def Get(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _TDF.TDF_TagSource_Get(self, *args)

    @staticmethod
    def GetID(*args) -> "Standard_GUID const &":
        r"""
        Class methods =============.

        Returns
        -------
        Standard_GUID

        """
        return _TDF.TDF_TagSource_GetID(*args)

    def NewChild(self, *args) -> "TDF_Label":
        r"""
        Find (or create) a tagsource attribute located at <l> and make a new child label. tagsource methods =================.

        Parameters
        ----------
        L: TDF_Label

        Returns
        -------
        TDF_Label
        No available documentation.

        Returns
        -------
        TDF_Label

        """
        return _TDF.TDF_TagSource_NewChild(self, *args)

    def NewTag(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _TDF.TDF_TagSource_NewTag(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Find, or create, a tagsource attribute. the tagsource attribute is returned.

        Parameters
        ----------
        label: TDF_Label

        Returns
        -------
        opencascade::handle<TDF_TagSource>
        Tdf_attribute methods =====================.

        Parameters
        ----------
        T: int

        Returns
        -------
        None

        """
        return _TDF.TDF_TagSource_Set(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_TagSource

# Register TDF_TagSource in _TDF:
_TDF.TDF_TagSource_swigregister(TDF_TagSource)

def TDF_TagSource_GetID(*args) -> "Standard_GUID const &":
    r"""
    Class methods =============.

    Returns
    -------
    Standard_GUID

    """
    return _TDF.TDF_TagSource_GetID(*args)

class TDF_DefaultDeltaOnModification(TDF_DeltaOnModification):
    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"""
        Creates a tdf_defaultdeltaonmodification. <anattribute> must be the backup copy.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        _TDF.TDF_DefaultDeltaOnModification_swiginit(self, _TDF.new_TDF_DefaultDeltaOnModification(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DefaultDeltaOnModification

# Register TDF_DefaultDeltaOnModification in _TDF:
_TDF.TDF_DefaultDeltaOnModification_swigregister(TDF_DefaultDeltaOnModification)

class TDF_DefaultDeltaOnRemoval(TDF_DeltaOnRemoval):
    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"""
        Creates a tdf_defaultdeltaonremoval.

        Parameters
        ----------
        anAttribute: TDF_Attribute

        Returns
        -------
        None

        """
        _TDF.TDF_DefaultDeltaOnRemoval_swiginit(self, _TDF.new_TDF_DefaultDeltaOnRemoval(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _TDF.delete_TDF_DefaultDeltaOnRemoval

# Register TDF_DefaultDeltaOnRemoval in _TDF:
_TDF.TDF_DefaultDeltaOnRemoval_swigregister(TDF_DefaultDeltaOnRemoval)


@classnotwrapped
class TDF_LabelNode:
	pass

@classnotwrapped
class TDF_DerivedAttribute:
	pass


class TDF_HAttributeArray1(TDF_AttributeArray1, 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):
        _TDF.TDF_HAttributeArray1_swiginit(self, _TDF.new_TDF_HAttributeArray1(*args))

    def Array1(self) -> "TDF_AttributeArray1 const &":
        return _TDF.TDF_HAttributeArray1_Array1(self)

    def ChangeArray1(self) -> "TDF_AttributeArray1 &":
        return _TDF.TDF_HAttributeArray1_ChangeArray1(self)


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

    __swig_destroy__ = _TDF.delete_TDF_HAttributeArray1

# Register TDF_HAttributeArray1 in _TDF:
_TDF.TDF_HAttributeArray1_swigregister(TDF_HAttributeArray1)





