Skip to content

Commit

Permalink
refactor(Package): simplify __init__ in subclasses, remove "extra" (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
mwtoews committed Oct 5, 2021
1 parent 45df13a commit bb21686
Show file tree
Hide file tree
Showing 73 changed files with 516 additions and 1,653 deletions.
3 changes: 0 additions & 3 deletions flopy/mbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,6 @@ class Obj:

fake_package = Obj()
fake_package.write_file = lambda: None
fake_package.extra = [""]
fake_package.name = [ptype]
fake_package.extension = [filename.split(".")[-1]]
fake_package.unit_number = [self.next_ext_unit()]
Expand All @@ -1089,8 +1088,6 @@ def get_name_file_entries(self):
if p.unit_number[i] == 0:
continue
s = f"{p.name[i]:14s} {p.unit_number[i]:5d} {p.file_name[i]}"
if p.extra[i]:
s += " " + p.extra[i]
lines.append(s)
return "\n".join(lines) + "\n"

Expand Down
4 changes: 2 additions & 2 deletions flopy/modflow/mf.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class ModflowGlobal(Package):
"""

def __init__(self, model, extension="glo"):
Package.__init__(self, model, extension, "GLOBAL", 1)
super().__init__(model, extension, "GLOBAL", 1)
return

def __repr__(self):
Expand All @@ -42,7 +42,7 @@ class ModflowList(Package):
"""

def __init__(self, model, extension="list", unitnumber=2):
Package.__init__(self, model, extension, "LIST", unitnumber)
super().__init__(model, extension, "LIST", unitnumber)
return

def __repr__(self):
Expand Down
7 changes: 4 additions & 3 deletions flopy/modflow/mfaddoutsidefile.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ class mfaddoutsidefile(Package):
"""

def __init__(self, model, name, extension, unitnumber):
Package.__init__(
self, model, extension, name, unitnumber, allowDuplicates=True
) # Call ancestor's init to set self.parent, extension, name and unit number
# call base package constructor
super().__init__(
model, extension, name, unitnumber, allowDuplicates=True
)
self.parent.add_package(self)

def __repr__(self):
Expand Down
20 changes: 4 additions & 16 deletions flopy/modflow/mfag.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,25 +203,13 @@ def __init__(
if unitnumber is None:
unitnumber = ModflowAg._defaultunit()

if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

name = [ModflowAg._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

# set up class
Expand Down
30 changes: 5 additions & 25 deletions flopy/modflow/mfbas.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,37 +102,17 @@ def __init__(
unitnumber=None,
filenames=None,
):
"""
Package constructor.
"""

if unitnumber is None:
unitnumber = ModflowBas._defaultunit()

# set filenames
if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

# Fill namefile items
name = [ModflowBas._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

self.url = "bas6.htm"
Expand Down
31 changes: 7 additions & 24 deletions flopy/modflow/mfbcf.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,40 +116,23 @@ def __init__(
unitnumber = ModflowBcf._defaultunit()

# set filenames
if filenames is None:
filenames = [None, None]
elif isinstance(filenames, str):
filenames = [filenames, None]
elif isinstance(filenames, list):
if len(filenames) < 2:
filenames.append(None)
filenames = self._prepare_filenames(filenames, 2)

# update external file information with cbc output, if necessary
if ipakcb is not None:
fname = filenames[1]
model.add_output_file(
ipakcb, fname=fname, package=ModflowBcf._ftype()
ipakcb, fname=filenames[1], package=self._ftype()
)
else:
ipakcb = 0

# Fill namefile items
name = [ModflowBcf._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=filenames[0],
)

self.url = "bcf.htm"
Expand Down
7 changes: 2 additions & 5 deletions flopy/modflow/mfbct.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,8 @@ def __init__(
if unitnumber is None:
unitnumber = ModflowBct._defaultunit()

# Call ancestor's init to set self.parent, extension, name and unit
# number
Package.__init__(
self, model, extension, ModflowBct._ftype(), unitnumber
)
# call base package constructor
super().__init__(model, extension, self._ftype(), unitnumber)

self.url = "bct.htm"
nrow, ncol, nlay, nper = self.parent.nrow_ncol_nlay_nper
Expand Down
26 changes: 5 additions & 21 deletions flopy/modflow/mfchd.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,29 +116,13 @@ def __init__(
if unitnumber is None:
unitnumber = ModflowChd._defaultunit()

# set filenames
if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

# Fill namefile items
name = [ModflowChd._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

self.url = "chd.htm"
Expand Down
30 changes: 5 additions & 25 deletions flopy/modflow/mfde4.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,38 +127,18 @@ def __init__(
unitnumber=None,
filenames=None,
):
"""
Package constructor.
"""

# set default unit number of one is not specified
if unitnumber is None:
unitnumber = ModflowDe4._defaultunit()

# set filenames
if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

# Fill namefile items
name = [ModflowDe4._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

# check if a valid model version has been specified
Expand Down
26 changes: 5 additions & 21 deletions flopy/modflow/mfdis.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,29 +149,13 @@ def __init__(
if unitnumber is None:
unitnumber = ModflowDis._defaultunit()

# set filenames
if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

# Fill namefile items
name = [ModflowDis._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

self.url = "dis.htm"
Expand Down
26 changes: 5 additions & 21 deletions flopy/modflow/mfdisu.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,29 +233,13 @@ def __init__(
if unitnumber is None:
unitnumber = ModflowDisU._defaultunit()

# set filenames
if filenames is None:
filenames = [None]
elif isinstance(filenames, str):
filenames = [filenames]

# Fill namefile items
name = [ModflowDisU._ftype()]
units = [unitnumber]
extra = [""]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
name=self._ftype(),
unit_number=unitnumber,
filenames=self._prepare_filenames(filenames),
)

# Set values of all parameters
Expand Down
28 changes: 7 additions & 21 deletions flopy/modflow/mfdrn.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,19 +124,12 @@ def __init__(
unitnumber = ModflowDrn._defaultunit()

# set filenames
if filenames is None:
filenames = [None, None]
elif isinstance(filenames, str):
filenames = [filenames, None]
elif isinstance(filenames, list):
if len(filenames) < 2:
filenames.append(None)
filenames = self._prepare_filenames(filenames, 2)

# update external file information with cbc output, if necessary
if ipakcb is not None:
fname = filenames[1]
model.add_output_file(
ipakcb, fname=fname, package=ModflowDrn._ftype()
ipakcb, fname=filenames[1], package=self._ftype()
)
else:
ipakcb = 0
Expand All @@ -151,22 +144,15 @@ def __init__(
if self.is_drt:
name = ["DRT"]
else:
name = [ModflowDrn._ftype()]
units = [unitnumber]
extra = [""]
name = [self._ftype()]

# set package name
fname = [filenames[0]]

# Call ancestor's init to set self.parent, extension, name and unit number
Package.__init__(
self,
# call base package constructor
super().__init__(
model,
extension=extension,
name=name,
unit_number=units,
extra=extra,
filenames=fname,
unit_number=unitnumber,
filenames=filenames[0],
)

self._generate_heading()
Expand Down
Loading

0 comments on commit bb21686

Please sign in to comment.