# autogenerated file, do not modify


from os import PathLike, curdir
from typing import Union

from flopy.mf6.data.mfdatautil import ArrayTemplateGenerator, ListTemplateGenerator
from flopy.mf6.mfpackage import MFPackage


class ModflowGwfprt(MFPackage):
    """
    ModflowGwfprt defines a GWFPRT package.

    Parameters
    ----------
    simulation : MFSimulation
        Simulation that this package is a part of. Package is automatically
        added to simulation when it is initialized.
    loading_package : bool, default False
        Do not set this parameter. It is intended for debugging and internal
        processing purposes only.
    exgtype : str, default "GWF6-PRT6"
        The exchange type (GWF-GWF or GWF-GWT).
    exgmnamea : str, optional
        The name of the first model that is part of this exchange.
    exgmnameb : str, optional
        The name of the second model that is part of this exchange.

    filename : str or PathLike, optional
        Name or path of file where this package is stored.
    pname : str, optional
        Package name.
    **kwargs
        Extra keywords for :class:`flopy.mf6.mfpackage.MFPackage`.

    """

    package_abbr = "gwfprt"
    _package_type = "gwfprt"
    dfn_file_name = "exg-gwfprt.dfn"
    dfn = [["header"]]

    def __init__(
        self,
        simulation,
        loading_package=False,
        exgtype="GWF6-PRT6",
        exgmnamea=None,
        exgmnameb=None,
        filename=None,
        pname=None,
        **kwargs,
    ):
        """Initialize ModflowGwfprt."""
        super().__init__(
            parent=simulation,
            package_type="gwfprt",
            filename=filename,
            pname=pname,
            loading_package=loading_package,
            **kwargs,
        )

        self.exgtype = exgtype
        self.exgmnamea = exgmnamea
        self.exgmnameb = exgmnameb
        simulation.register_exchange_file(self)

        self._init_complete = True
