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

"""
HeaderSection module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_headersection.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _HeaderSection
else:
    import _HeaderSection

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


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


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


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


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _HeaderSection.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


def process_exception(error, method_name, class_name):
    return _HeaderSection.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.Interface
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.MoniTool
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.StepData
import OCC.Core.Resource

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




def Handle_HeaderSection_FileDescription_Create():
    return _HeaderSection.Handle_HeaderSection_FileDescription_Create()

def Handle_HeaderSection_FileDescription_DownCast(t):
    return _HeaderSection.Handle_HeaderSection_FileDescription_DownCast(t)

def Handle_HeaderSection_FileDescription_IsNull(t):
    return _HeaderSection.Handle_HeaderSection_FileDescription_IsNull(t)

def Handle_HeaderSection_FileName_Create():
    return _HeaderSection.Handle_HeaderSection_FileName_Create()

def Handle_HeaderSection_FileName_DownCast(t):
    return _HeaderSection.Handle_HeaderSection_FileName_DownCast(t)

def Handle_HeaderSection_FileName_IsNull(t):
    return _HeaderSection.Handle_HeaderSection_FileName_IsNull(t)

def Handle_HeaderSection_FileSchema_Create():
    return _HeaderSection.Handle_HeaderSection_FileSchema_Create()

def Handle_HeaderSection_FileSchema_DownCast(t):
    return _HeaderSection.Handle_HeaderSection_FileSchema_DownCast(t)

def Handle_HeaderSection_FileSchema_IsNull(t):
    return _HeaderSection.Handle_HeaderSection_FileSchema_IsNull(t)

def Handle_HeaderSection_Protocol_Create():
    return _HeaderSection.Handle_HeaderSection_Protocol_Create()

def Handle_HeaderSection_Protocol_DownCast(t):
    return _HeaderSection.Handle_HeaderSection_Protocol_DownCast(t)

def Handle_HeaderSection_Protocol_IsNull(t):
    return _HeaderSection.Handle_HeaderSection_Protocol_IsNull(t)
class headersection(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Protocol(*args):
        r"""
        Return
        -------
        opencascade::handle<HeaderSection_Protocol>

        Description
        -----------
        Creates a protocol.

        """
        return _HeaderSection.headersection_Protocol(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _HeaderSection.headersection_swiginit(self, _HeaderSection.new_headersection())
    __swig_destroy__ = _HeaderSection.delete_headersection

# Register headersection in _HeaderSection:
_HeaderSection.headersection_swigregister(headersection)
class HeaderSection_FileDescription(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Returns a filedescription.

        """
        _HeaderSection.HeaderSection_FileDescription_swiginit(self, _HeaderSection.new_HeaderSection_FileDescription(*args))

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

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

        """
        return _HeaderSection.HeaderSection_FileDescription_Description(self, *args)

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

        Parameters
        ----------
        num: int

        Return
        -------
        opencascade::handle<TCollection_HAsciiString>

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

        """
        return _HeaderSection.HeaderSection_FileDescription_DescriptionValue(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileDescription_ImplementationLevel(self, *args)

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

        Parameters
        ----------
        aDescription: Interface_HArray1OfHAsciiString
        aImplementationLevel: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileDescription_Init(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileDescription_NbDescription(self, *args)

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

        Parameters
        ----------
        aDescription: Interface_HArray1OfHAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileDescription_SetDescription(self, *args)

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

        Parameters
        ----------
        aImplementationLevel: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileDescription_SetImplementationLevel(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _HeaderSection.delete_HeaderSection_FileDescription

# Register HeaderSection_FileDescription in _HeaderSection:
_HeaderSection.HeaderSection_FileDescription_swigregister(HeaderSection_FileDescription)
class HeaderSection_FileName(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Returns a filename.

        """
        _HeaderSection.HeaderSection_FileName_swiginit(self, _HeaderSection.new_HeaderSection_FileName(*args))

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

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

        """
        return _HeaderSection.HeaderSection_FileName_Author(self, *args)

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

        Parameters
        ----------
        num: int

        Return
        -------
        opencascade::handle<TCollection_HAsciiString>

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

        """
        return _HeaderSection.HeaderSection_FileName_AuthorValue(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_Authorisation(self, *args)

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

        Parameters
        ----------
        aName: TCollection_HAsciiString
        aTimeStamp: TCollection_HAsciiString
        aAuthor: Interface_HArray1OfHAsciiString
        aOrganization: Interface_HArray1OfHAsciiString
        aPreprocessorVersion: TCollection_HAsciiString
        aOriginatingSystem: TCollection_HAsciiString
        aAuthorisation: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_Init(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_Name(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_NbAuthor(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_NbOrganization(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_Organization(self, *args)

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

        Parameters
        ----------
        num: int

        Return
        -------
        opencascade::handle<TCollection_HAsciiString>

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

        """
        return _HeaderSection.HeaderSection_FileName_OrganizationValue(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_OriginatingSystem(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_PreprocessorVersion(self, *args)

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

        Parameters
        ----------
        aAuthor: Interface_HArray1OfHAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetAuthor(self, *args)

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

        Parameters
        ----------
        aAuthorisation: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetAuthorisation(self, *args)

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

        Parameters
        ----------
        aName: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetName(self, *args)

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

        Parameters
        ----------
        aOrganization: Interface_HArray1OfHAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetOrganization(self, *args)

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

        Parameters
        ----------
        aOriginatingSystem: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetOriginatingSystem(self, *args)

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

        Parameters
        ----------
        aPreprocessorVersion: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetPreprocessorVersion(self, *args)

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

        Parameters
        ----------
        aTimeStamp: TCollection_HAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileName_SetTimeStamp(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileName_TimeStamp(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _HeaderSection.delete_HeaderSection_FileName

# Register HeaderSection_FileName in _HeaderSection:
_HeaderSection.HeaderSection_FileName_swigregister(HeaderSection_FileName)
class HeaderSection_FileSchema(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Returns a fileschema.

        """
        _HeaderSection.HeaderSection_FileSchema_swiginit(self, _HeaderSection.new_HeaderSection_FileSchema(*args))

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

        Parameters
        ----------
        aSchemaIdentifiers: Interface_HArray1OfHAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileSchema_Init(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileSchema_NbSchemaIdentifiers(self, *args)

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

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

        """
        return _HeaderSection.HeaderSection_FileSchema_SchemaIdentifiers(self, *args)

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

        Parameters
        ----------
        num: int

        Return
        -------
        opencascade::handle<TCollection_HAsciiString>

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

        """
        return _HeaderSection.HeaderSection_FileSchema_SchemaIdentifiersValue(self, *args)

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

        Parameters
        ----------
        aSchemaIdentifiers: Interface_HArray1OfHAsciiString

        Return
        -------
        None

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

        """
        return _HeaderSection.HeaderSection_FileSchema_SetSchemaIdentifiers(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _HeaderSection.delete_HeaderSection_FileSchema

# Register HeaderSection_FileSchema in _HeaderSection:
_HeaderSection.HeaderSection_FileSchema_swigregister(HeaderSection_FileSchema)
class HeaderSection_Protocol(OCC.Core.StepData.StepData_Protocol):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        """
        _HeaderSection.HeaderSection_Protocol_swiginit(self, _HeaderSection.new_HeaderSection_Protocol(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _HeaderSection.delete_HeaderSection_Protocol

# Register HeaderSection_Protocol in _HeaderSection:
_HeaderSection.HeaderSection_Protocol_swigregister(HeaderSection_Protocol)



@deprecated
def headersection_Protocol(*args):
	return headersection.Protocol(*args)



