text: # DO NOT MODIFY THIS FILE DIRECTLY.  THIS FILE MUST BE CREATED BY
  # mf6/utils/createpackages.py
  from .. import mfpackage
  from ..data.mfdatautil import ListTemplateGenerator
  
  
  class ModflowGwtmvt(mfpackage.MFPackage):
      """
      ModflowGwtmvt defines a mvt package within a gwt6 model.
  
      Parameters
      ----------
      model : MFModel
          Model that this package is a part of.  Package is automatically
          added to model when it is initialized.
      loading_package : bool
          Do not set this parameter. It is intended for debugging and internal
          processing purposes only.
      print_input : boolean
          * print_input (boolean) keyword to indicate that the list of mover
            information will be written to the listing file immediately after it
            is read.
      print_flows : boolean
          * print_flows (boolean) keyword to indicate that the list of lake flow
            rates will be printed to the listing file for every stress period
            time step in which "BUDGET PRINT" is specified in Output Control. If
            there is no Output Control option and "PRINT_FLOWS" is specified,
            then flow rates are printed for the last time step of each stress
            period.
      save_flows : boolean
          * save_flows (boolean) keyword to indicate that lake flow terms will be
            written to the file specified with "BUDGET FILEOUT" in Output
            Control.
      budget_filerecord : [budgetfile]
          * budgetfile (string) name of the binary output file to write budget
            information.
      filename : String
          File name for this package.
      pname : String
          Package name for this package.
      parent_file : MFPackage
          Parent package file that references this package. Only needed for
          utility packages (mfutl*). For example, mfutllaktab package must have
          a mfgwflak package parent_file.
  
      """
  
      budget_filerecord = ListTemplateGenerator(
          ("gwt6", "mvt", "options", "budget_filerecord")
      )
      package_abbr = "gwtmvt"
      _package_type = "mvt"
      dfn_file_name = "gwt-mvt.dfn"
  
      dfn = [
          [
              "block options",
              "name print_input",
              "type keyword",
              "reader urword",
              "optional true",
          ],
          [
              "block options",
              "name print_flows",
              "type keyword",
              "reader urword",
              "optional true",
          ],
          [
              "block options",
              "name save_flows",
              "type keyword",
              "reader urword",
              "optional true",
          ],
          [
              "block options",
              "name budget_filerecord",
              "type record budget fileout budgetfile",
              "shape",
              "reader urword",
              "tagged true",
              "optional true",
          ],
          [
              "block options",
              "name budget",
              "type keyword",
              "shape",
              "in_record true",
              "reader urword",
              "tagged true",
              "optional false",
          ],
          [
              "block options",
              "name fileout",
              "type keyword",
              "shape",
              "in_record true",
              "reader urword",
              "tagged true",
              "optional false",
          ],
          [
              "block options",
              "name budgetfile",
              "type string",
              "preserve_case true",
              "shape",
              "in_record true",
              "reader urword",
              "tagged false",
              "optional false",
          ],
      ]
  
      def __init__(
          self,
          model,
          loading_package=False,
          print_input=None,
          print_flows=None,
          save_flows=None,
          budget_filerecord=None,
          filename=None,
          pname=None,
          parent_file=None,
      ):
          super(ModflowGwtmvt, self).__init__(
              model, "mvt", filename, pname, loading_package, parent_file
          )
  
          # set up variables
          self.print_input = self.build_mfdata("print_input", print_input)
          self.print_flows = self.build_mfdata("print_flows", print_flows)
          self.save_flows = self.build_mfdata("save_flows", save_flows)
          self.budget_filerecord = self.build_mfdata(
              "budget_filerecord", budget_filerecord
          )
          self._init_complete = True
  