Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore Python 3.5 compatibility (ModuleNotFoundError→ImportError) #933

Merged
merged 1 commit into from
Jul 9, 2020

Conversation

mwtoews
Copy link
Contributor

@mwtoews mwtoews commented Jun 30, 2020

Fixes #932 using the "easy" option, keeping Python 3.5 compatibility.

ModuleNotFoundError was introduced for Python 3.6, and is a subclass of ImportError.

When flopy sets a minimum version of Python 3.6+, these can be renamed back to ModuleNotFoundError.

@coveralls
Copy link

coveralls commented Jun 30, 2020

Coverage Status

Coverage increased (+0.002%) to 73.39% when pulling a2e553c on mwtoews:py35 into f437e8b on modflowpy:develop.

@jdhughes-usgs jdhughes-usgs merged commit d16411d into modflowpy:develop Jul 9, 2020
jdhughes-usgs added a commit that referenced this pull request Oct 26, 2020
* initial v3.2.13 release candidate

* Fix(plotting): Bug fixes for issues #587 and #588 (#589)

* Fix(plotting): Bug fixes for issues #587 and #588

* updates to PlotMapView.contour_array() and _VertexCrossSection.contour_array() to allow nan to be passed in the array
* added test_tricountour_NaN() to t007_test.py
* updates to PlotMapView.contour_array() and plot_array() to drop extra dimension from head array with using vertex model grid #588
* updates to UnstructuredPlotUtilities, added irregular_shape_patch() as patch for cross section drawing of vertex and unstructured modelgrids that include multiple geometries (found during fix #588)
* update to geometry.transform() to set x and y dtypes to float (found during fix #588)

* Added updated t007_test.py

* Update test_tricontour_NaN()

* Codacy updates for PR

* Updated drop axis routine to squeeze axis 1 for vertex grids

* suppressing error when proj4_str is None (#590)

* suppressing error when proj4_str is None

* fixed long line to molify Codacy

* fix creep of btn obs loactions when reading and writing (#592)

* Zero-based integers for select ModflowFlwob variables (#596)

* docs(ModflowHob): Explicitly state that variables irefsp, layer, row, and column are zero-based integers. Minor formatting changes-->uniform capitalization and alignment with parallel variables in the ModflowFlwob docstring.

* refactor(ModflowFlowb): Treat variables irefsp, layer, row, and column as zero-based integers to align behavior with ModflowHob. Updated write_file method and docstring accordingly.

* refactor(codacy): Refactor docstrings to break up long lines.

* refactor(t041_test): Update test041 to specify irefsp, layer, row, and column as zero-based indices.

* fix(mfuzf): enforce boolean values for several uzf option arguments (#597)

* feat(export_contourf): export filled contours to shapefile (#599)

* Required changes to flopy.utils.geometry so that the Polygon.pyshp_prts handled holes correctly for multiple shapefile versions

* codacy fixes

* Fix(mbase.py): laytyp property method call to "UPW" package. (#601)

* Add load function to ModflowFlwob (#598)

* feat(ModflowFlwob): Add various flow-obs types to model.mfnam_packages dictionary.

* feat(ModflowFlwob): Add method to load package from file.

* feat(ModflowFlwob): Use supplied unit number when loading package to avoid unit collisions.

* feat(ModflowFlwob): Add additional width and precision for toffset to avoid string-conversions that result in numbers greater than total simulation time.

* feat(ModflowFlwob): Account for case where nqclfb is negative.

* feat(ModflowFlwob): Append filename using relative path with respect to the model working directory to ensure the correct filename is written to the namefile.

* feat(ModflowFlwob): Add new autotest to check loading functionality.

* revert: "feat(ModflowFlwob): Append filename using relative path with respect to the model working directory to ensure the correct filename is written to the namefile."

This reverts commit 6f520064a5e7dc856b177cd567668f712866117e.

* feat(ModflowFlwob): Add 1 to zero-based "irefsp" when writing file.

* feat(ModflowFlwob): Try to make Codacy happy.

* feat(ModflowFlwob): Add "ftype" attribute and retrieval method.

* feat(ModflowFlwob): Use ext_unit_dict to get proper flowtype and ftype from filename.

* feat(ModflowFlwob): Remove unused variable and extra whitespace.

* feat(ModflowFlwob): Catch dict items explicitly even if they are unused.

* Revert "feat(ModflowFlwob): Try to make Codacy happy."

This reverts commit eca305ab.

* fix(mtuzt): iuzbnd improperly generated (#605)

Instantiation of UZT class was generating IUZBND as a 3D array, should be 2D

* Update version_changes.md

* fix(mfsfr2.py): substituted graph for all_segments to improve performance (#602) (#604)

* test(t064_test_performance.py): to prevent regressions in flopy.modflow performance

* Fix(contour_array_cvfd): fix for masked value crash issue using tricontour with matplotlib 3.1.1 (#613)

* fix(util_list.py): get_dataframe() iterating thru nper instead of data.keys(); fails for pers where itmp < 0 (#612)

* fix(mtuzf1): a user comment on same line as nuzgag not processed correctly (#609)

* fix(modflowpy#615): plotutil masked_values hnoflo, hdry fix (#618)

* refactor(namfile): whitespace in NAM file and MFList output files (#622)

* fix(memory): "Cannot allocate memory" error for Python 2.7 on non-Windows (#623)

* fix(autotest): move some output files to their own folder

* fix(run_model): improve normal_msg and fix Python 2.7 memory issue

* fix(reference): resolve UnboundLocalError with crs property (#608)

* fix(reference): fix UnboundLocalError error, deprecate crs class

* fix(shapefile_utils.CRS): fix typo and UnboundLocalError error

* fix(mf6): Fixes for #603, #606, #614, and #616 (#620)

* fix(ja array): CellID now increments and decrements correctly.

* feat(jagged arrays): format disu arrays (ja, cl12) as jagged arrays in output files

* fix(disu arrays): Added more testing for disu arrays

* Fix(flopy write): Copy external files before writing out package files. Package file writing can require access to external files.

* fix(np types): Changed code from using np.int to explicitly defining integer type np.int32.

* fix(#616): Shapefile export code fix

* fix(#614): Wel package added to multi-package list. Fix to always get multiple packages when searching by package type.

* fix(different int types): Different systems appear to use different types of ints. Int type check changed to be more generic.

* refact(CR/LF): Removed CR line endings

* fix(export_contourf): tidy local variable overuse for Python 2.7 (#625)

* fix(MFList): older numpy needs file in binary mode for writetxt (#626)

* feat(intersect): add grid intersection functionality (#610)

* add gridintersect to flopy utils

* add gridintersect tests

* make codacy happy

* attempt 2 making codacy happy

* add keepzerolengths option to strtree method

* add gridintersection demo notebook

* update travis to install shapely
minor edit in gridintersect

* fix py27 error

* make codacy happy again

* last codacy fix

* fix(travis 2.7): Travis memory errors (#627)

* fix(travis 2.7): Memory is not getting released from the plotting tests when run on python 2.7. Two of the more memory intensive plotting tests have been disabled as a work around for the out of memory errors intermittently appearing on Travis. 

Unsuccessfully tried to get the memory released by calling matplotlib's plt.close('all') and then gc.collect() at the end of each plotting test. Since support for python 2.7 is going to be discontinued soon, it may be sufficient just to use this work around.

* feat(mf6 rename all packages method + copy support (#591)) 

* feat(deepcopy support): Flopy for MF6 MFSimulation object can now be copied with deepcopy.

* feat(rename all packages): rename_all_packages method added to the mf6 model and simulation classes to allow the user to rename all of the packages at once.

* refact(dfn sync): sync dfn with MODFLOW6 repository

* Fix(unstructured grid capabilities): fix array masking for CVFD grids and allow ncpl to be specified as a list  (#631)

* Fix(UnstructuredGrid): fix for ncpl provided as a list or numpy array

* Fix(plot_array): fix for CVFD masked_values when plotting arrays

* feat(sub): Add IDBIT option to SUB for MODFLOW-2005 option (#632)

* feat(mflistreader): read WEL Reductions from List File (#630)

* Read WEL Reductions from List File

Adds a method to the ListBudget class to read in data from the list file on automatic reductions to WEL extractions. This method supports both NWT and USG list files. Adds auto tests for both success and failure. I couldn't find any included data sets with reductions written to the LST, so I updated a USG data set to allow for the auto test.

* Removed Trailing Whitespace

Removed trailing whitespace id'd by codacy.

* Updated to work with python 2.7

Updated code to run with python 2.7.  Used autopep8 to formalize some formatting.

* Feat(rasters.py): Add raster intersection and resampling features to flopy.utils  (#634)

* Feat(rasters.py): Added raster intersection capability and an example notebook (Notebooks/flopy3_raster_intersection.ipynb)

* Update requirements for travis to include SciPy for raster unit tests

* Removed Scipy from python27 requirements

* Update flopy3_raster_intersection.ipynb for running on travis

* Update flopy3_raster_intersection.ipynb for travis

* revert flopy3_lake_example.ipynb

* update(rasters.py): codacy updates

* update(rasters.py): codacy fixes

* update(rasters.py): _point_in_polygon changed to static method

* fix(evt): etvr not evtr in evt package (#635)

* fix(sfr): remove sensitivity to SFR reach_data (ds2) rec array order. (#637)

* making sfr reachdata (ds2) write insensitive to data field order

currently uses dtype.descr which can fail is struct array fields change
order.

* happend upon etvr not evtr in evt package

* Adding test that exposes issue with passing disordered reach_data arrays

* tidy-up

* fix(mfmnw2): bug fix for writing multiple stress periods

* feat(GridIntersect): import GridIntersect from __init__  (#640)

* fix(gridintersect): removed matplotlib dependency (#643)

A recent PR added an import of gridintersect when flopy is imported.  This broke some things on the MODFLOW 6 development side and inadvertently required matplotlib, even if no plotting is needed.

* fix(mflistfile): parse immobile components from mt3d listfile (#644)

* happened upon etvr not evtr in evt package

* supporting mtlist parsing with immobile domain

* test for immobile catch

* clean up test list file

* fix(gridgen): changed sr usage to modelgrid

Also fixed the description of rotation in the dis docstrings.  rotation is being read as a counter-clockwise angle; this may actually be different from how it was defined prior to the new modelgrid approach that is implemented now.

* updated notebook

* fix comment line length

* refactor(vdf): shut off density limiters as default (#646)

Default densemin and densemax set to zero, which means they are not active.

* docs(dfn): update some MODFLOW 6 variable descriptions (#648)

* fix(mtbtn): options from load method ignored (#649)

* Pass options from load method to class constructor
* Correct case for "ALTWTSORB" case
* Show verbose message for optional keywords
* Add a unit tests to check options

* fix(notebooks): add missing figure (#650)

Addresses https://github.com/modflowpy/flopy/pull/278#issuecomment-532813144

* fix(CellBudgetFil): get_ts() wasnt setting totim in the result container if a model instance is avail (#652)

* added grid interect to util init

* fix(binaryfile): CellBudgetFile.get_ts() wasnt setting times correctly if no times were passed but model instance is available

* Update(export): Updated the export method to accept modelgrid in **kwargs (#651)

* Update(export()): Updated the export method to accept a user supplied modelgrid in **kwargs

* added masked_vals **kwarg to output_helper() for netcdf exporting

* fix(tutorial2): zorder keyword in clabel no longer supported (#654)

close #653

* Fix(mfuzf1): fix read and write dataset 4b when specifysurfk option is present (#658)

* fix(mflak): allow mflak class to use -1 as a flag for using previous transient lake stresses (inflow/outflow) (#655)

* Fix(mfmnw2): Fix a bug that causes mnw2 file writing to crash when
when there multiple stress periods
* Fix mfmnw2 file

* fix(mflak): allow lak class to use -1 for previous transient lake stress

* fix(SpatialReference): fix coordinate information being passed to SpatialReference (#661)

* feat(PlotCrossSection): add geographic_coords flag to PlotCrossSection  (#664)

* Feat(PlotCrossSection): Added option to plot xc in geographic_coordinates

* removed unused attribute self.offset from _StructuredCrossSection

* removed unused code, and codacy fix.

* Fix typo in flopy3_PlotCrossSection_demo.ipynb example

* Add feature to allow 'with' context statement to read Head/CellBudget files (#669)

* fix(mfsfr2): correct variable name typo in docstring

* feat(binaryfile): add 'with' context management support

* Allow Head/CellBudgetFile to be opened/closed in a 'with' statement
* Raise TypeError if CellBudgetFile.get_data() is called without arguments
* Document and test idx as either an int or list of integers
* Close a few file handles in the test suite

* refactor(modelgrid): model grid caching change (#667)

* fix(#659): Model grid caching changed to cache existing grid unless the grid is incomplete or user explicitly requests a new grid.

* feat(update model grid): Added section explaining how to get and update a model grid.

* fix(ModflowUzf1): load datasets if NUZF1..4 >= 0 (#668)

* fix(Python 2): use a few aliases for exceptions (#672)

* FileNotFoundError = IOError
* ModuleNotFoundError = ImportError

* refactor(load methods): avoid ResourceWarning with unclosed files (#673)

* Nam load function already opens each file, so pass the filehandle
  rather than the filename to each load operation
* For each load method, only close the file if it was opened by the method

* refactor(travis): use script files rather than awkward YAML file (#676)

* Replace TVER with RUN_TYPE with either "test" or "misc"
* Remove Python 3.7-dev and leave commented-out 3.8-dev, when ready
* Move/refactor version showing to before_script hook
* Move pylint to script section, with pylint-exit to handle exit code
* PATH already has $HOME/.local/bin but it needs it to be created

* feature(ci): check Python code with flake8 (#677)

* fix(gridgen): fixed writing of mf6 disu package (#680)

* Added tests for the to_disu6() and to_disv6() Gridgen methods
* Closes #678

* fix(ModflowSfr2.load): don't try to read datasets 6b,c in cases where they're missing (#671) (#679)

* Resolve bugs related to F821 undefined name 'name' (#686)

* fix(Mt3dPhc): missing filenames parameter; add basic test

* fix(backup_existing_dfns): fix variable name

* fix(mfstr): fix variable name and missing import

* fix(t022_test): catch ImportError and adjust expected data

* fix(mfde4): fixed-width load did not work

* fix(mflistfile): resolve undefined name 'e'

* fix(mfsms): load options

* fix(flake8 code F811): redefinition of unused 'name' (#688)

* t007_test.py: rename the (newer) second 'test_export_array' with '2'
** Note test_export_array fails, and a fix is required (later)
* t031_test.py: ra_slice is imported from flopy.utils.recarray_utils
* pest/__init__.py: duplicate import of Util3dTpl
* various tests: import pymake once, handle condition in code

* Fix(#675): hfb load parameters when Factor is excluded (#685)

* fix(mfhob.py): read data set 4 when user provides it on multiple lines

* Fix(modflowpy#675): hfb package load parameters when Factor not supplied

* fix(modflowpy#675): add optional flag to OptionBlock context tree for optional nested arguments

* update(autotest): added tests for modflowpy#675

* Updates for codacy

* feat: support for copy.copy() and copy.deepcopy() with python 3.5+ (#689)

* fix(ulstrd): lists for wel, drn, ghb, etc. not always loaded correctly (#690)

This fixes several problems related to loading of mf2005 packages that have lists of information, typically layer, row, column, ...

* flopy will now read packages that have lists specified with EXTERNAL
* flopy will now read packages that have lists that use the SFAC keyword
* flopy now has a general list reader flopy.utils.flopy_io.ulstrd patterned after the MODFLOW ULSTRD subroutine
* flopy will now use this ulstrd reader to read lists defined with parameters
* With the m.write_input(), binary external files always had REPLACE tacked onto the end.  This was corrected so that REPLACE is only added when output is set to True.
* added t067_test_ulstrd to test reading of open/close, external, and binary lists with sfac
* Closes #683

* tests(t004): fix small issue that only occurs on Windows (#695)

t004 fails on Windows in comparing a data frame to a numpy array.  The i, j, k columns from the data frame were upgraded to long ints.  Apparently the default int on Windows is different from the default on mac/linux, so test failures don't show up there.

Also stop versioning several shapefiles that are recreated with every test run.

* refactor(gridintersect): wrap shapely imports in try/except (#698)

* refactor(gridintersect): wrap shapely imports in try/except

This should allow flopy to be loaded even if shapely isn't installed.

Closes #697

* refactor(dis): removed dis.read_from_cnf() method. (#699)

* It's not used.  It's broken.  And it's not tested.
* Closes  #687

* feat(#693) and fix(#691) (#696)

* feat(#693): support for load_only option in modflow 6
fix(#691): forgive flag now defaults to false when loading models. bugs in t028_test and t012_test fixed

* fix(code style fixes): code clean up

* fix(load_only): Added support for package names in load_only lists and cleaned up documentation

* fix(flake8 code W605): invalid escape sequence '\s' (or similar) (#700)

Some of these fixes were to paths to directories in docstring examples,
which were updated to somewhat work with the current structure of
directories and file names.

* fix(EpsgReference): complete methods for expected operation (#702)

* This is now similar to the deprecated utils.reference.epsgRef class,
  removing '_remove_pyc' and 'make' methods, adding 'to_dict', 'get'
  and '_write' methods, and updating others to work as expected.
* Change t032_test.py to replace epsgRef with EpsgReference, and
  ensure that all methods are tested.

* refactor(SfrFile): detect other column names, remove methods (#708)

* Detect names for column 16 and beyond (checked against gwf2sfr7_NWT.f),
  which adds either 'gradient' or 'Qwt', 'delUzstor', sometimes 'gw_head';
  note that this may affect users that used (e.g.) df.col16.values
* Remove methods that are used once: get_skiprows_ncols and _set_names,
  as this logic is best handled in the class constructor
* Add notes to docstring to indicate which columns have indexing starting
  at one or zero
* Expand docstring for parameters, verbose and geometry are ignored
* Flake8's F841 variable assigned but never used for 'per' and 'timestep'
* Flake8's F402 import 'np' from line 1 shadowed by loop variable
* Resolve sfroutputfile.py:170: RuntimeWarning: invalid value encountered
  in less: newper = df.segment.diff().values < 0
* Expand t009_test.py to check attributes: ncol, names and times

* feat(nper/sim): allow stress periods beyond nper, and allow setting simulation name file options on init

* feat(#694): When stress packages have data for periods beyond nper flopy now issues a warning message (flopy used to raise an exception).

* feat(#704): Allow user to set simulation name file options while initializing a simulation.

* fix(deepcopy): Rewrote package code to no longer use __getattribute__ which I believe was confusing deepcopy in python 3.5.

* fix(line too long)

* refactor(mfsfr2): format floats as '{:.8g}' with older NumPy versions (#710)

* SFR2 files are written more similar between NumPy versions
* Formatting float32 prior to NumPy 1.14.0 was inconsistent, so
  force 8 decimal digits of precision with older versions
* Modern NumPy versions still use '{!s}' and should not see any difference
* Use global 'default_float_format' for various 'float_format' arguments
* Format integers as decimals '{:d}' instead of rounded floats '{:.0f}'
* Simplify _fmt_string, which no longer adds a space at the end
* Raise ValueError instead of bare Exception

* fix(#707): Loading Optimized for MFLists in Special Cases (#711)

* fix(#707): Special case optimized loading code for mflist data structure expanded to include more cases. Also optimized data verification code and added option to not verify data on load.

* fix(formatting)

* doc(pangeo): add support for pangeo to run example notebooks (#713)

* doc(pangeo): update support for pangeo to run example notebooks (#714)

* fix(irch): converted irch to be one based (#716)

* fix(irch): subtract one from irch at load, add one to irch at write
* added trap on t032 for CRS.getprj() returns None

* fix(modflowpy#720): explicitly set shapefile record dtypes in write_grid_shapefile2 (#721)

* Fix(modflowpy#720): explicitly set shapefile record dtypes in write_grid_shapefile2
* updates to shapefile exporting utilities:
* Remove redundancy from write_grid_shapefile2
* enforce closed polygons in write_grid_shapefile2
* remove support for pyshp v.1.2.1 
* remove unused write_grid_shapefile
* renamed write_grid_shapefile2 as write_grid_shapefile

* refactor(namefile): format values with str() and remove extra "; " (#722)

* fix(mfsfr2.py): isfropt and icalc read/write logic (#723)

* added unit tests covering all combinations of isfropt and icalc to t010_test.py

* fix(mflist optimization): The mflist optimization code crashed when a line contained a word that only contained quote characters. Fix implemented to handle this case. (#724)

* feat(vtk) updated vtk export capabilities in flopy.   (#717)

* updated vtk export capabilities in flopy.  Added support for array 2d/3d export, package export, model export, heads, cell by cell file.
* added examples/Notebooks/flopy3_vtk_export.ipynb
* created vtk tests in autotest/t050_test.py
* support for binary output

* initial develop branch for release 3.3.0

* docs: fix typo and small mistakes (#729)

* doc(mffhb): correct minor mistake in docstring (#726)

* fix(binder): convert to mybinder.org (#731)

* refactor(setup/ci): require and test Python 3.5, 3.6, 3.7 and 3.8 (#728)

* docs: clarify statement and add whitespace (#735)

* fix(flake8 code F632): use '==' instead of 'is' (#734)

* With MfList, check 'len(recs) == 0' instead of 'recs is 0'

* fix(mnw2): fix issues with files with empty lines (#736)

Also contains fix for inconsistent `wellid` cases in dataset 2a and 4a

* fix(mnw2): fix issues causing random failures on python 3.5 (#739)

* fix(ModflowDis.sr): rotate model prior to calculating xll and yll from xul and yul. (#737)

modflowpy#733

* mnw2 missing itmp when zero (#742)

Resolves issue where mnw2 itmp list didn't include zeros for when a stress period had no discharge assigned. The "continue" advanced to next iteration, missing the line where zero would be added to the list. This was causing issues when writing the mnw2 file.

* fix(model relative path): always register model prior to setting model relative path (#740) (#745)

* fix(#740): Modified code to insure model gets registered before model relative path is set.

* fix(#740)

* CI(t007): patch for python 3.8 (#751)

* Update flopy author list in software citation (#750)

* refact(docstrings): refactored docstrings in mfsimulation (#752)

* Update(plotting): update plotting examples and fixes for mf6 bugs (#755)

* Update(modflowpy#741): Remove redundancy from plotting Notebooks

* Removed flopy3_MapExample.ipynb, flopy3_PlotCrossSection_demo.ipynb, flopy3_PlotMapView_demo.ipynb, flopy3_mf6_BasicPlotting.ipynb, flopy3_mf6_plotting_freyberg.ipynb, flopy3_mf6_vertex_plotting.ipynb, flopy3_UnstructuredGridPlotting.ipynb

* Added flopy3.3_PlotCrossSection.ipynb, flopy3.3_PlotMapView.ipynb

* Fixed VertexGrid errors in PlotMapView and PlotCrossSection

* Fix(moflowpy#753): mask no flow and dry cells in PlotUtilities._plot_array_helper for MODFLOW 6 output

*update mfmodel.py hdry and hnoflo to default values

* Cast integer arrays as floating point arrays in PlotUtilities._plot_array_helper

* fix(mflist): fixed record shape in get_empty; test add_record (#758)

* fix(boundnames): Fixed problem loading boundnames (#757)

* fix(boundnames): Fixed problem where boundnames did not get loaded for simple fast loads. Added test to catch problems similar to this in the future.

* fix(line length)

* fix(mtssm): fix assumption that transient NSS data appears in first stress period (#756)

* fix(upw): keyword for vertical K (#746)

* fix(dfns): update MODFLOW 6 dfns for next flopy (3.3.0) and mf6 (6.1.0) releases (#759)

* fix(dfns): update MODFLOW 6 dfns for next release

* fix(dfns): update createpackages.py based on @spaulins-usgs suggestion

* Address @spaulins-usgs mf6 release comments

* refactor(release): update make-release script to generate author names (#760)

* refactor(release): update make-release script to generate author names

* refactor(release): clean-up make-release script and markdown

* ci(exes): update executables version to 3.0 (#761)

* ci(exes): update executables version to 3.0

* testing(t503): update mf6 version downloaded and tested

* release: update develop to preliminary status

* readme: add anaconda badges (#763)

* fix(Mflist): allow None as a list entry (#765)

* fix(Mflist): allow None, 0, and -1 as a list entry

Mflist did not allow a stress_period_dictionary to have None, 0, or -1 as a valid entry for a stress period.  But MODFLOW and MT3D do allow this.  Mflist was refactored so that a stress period dictionary could be spd = {0: None, 1: -1, 1: 0} or other combinations on this.  This is necessary for the mt3d ssm package, but it also was necessary for loading a valid well file that might have ITMP = -1 for all stress periods.  This would be a strange case for MODFLOW, but ITMP values of -1 for the first stress period of a wel package is valid for MODFLOW.

* slight modification for nss==0 in first period

closes #743

* fix(replace package): When a second package of the same type is added to a model, the model now checks to see if the package type supports multiple packages. If it does not it automatically removes the first package before adding the second (#767). (#768)

* fix(repeating blocks) (#771)

* Fix(multiple blocks): Treat blocks as having a different block header as long as any arbitrary block variable is different. Fixes problem where flopy treats some continuous blocks as duplicates even though they are not.

* fix(multiple blocks): Test that multiple continuous blocks with different file names load correctly.

* fix(code simplification)

* fix(netcdf install)

* fix(vtk): change in export_model when packages_names is None (#770)

model packages extraction change from ml.packageslist to model.packageslist

* feat(mf6 checker): input data check for mf6 (#779)

* feat(input data check for mf6): refactored mf2005 input data check to support both mf2005 and mf6

* feat(input data check for mf6): refactor of mf2005 code to work with mf6

* feat(input data check for mf6): autotest updates

* feat(input data check for mf6)

* fix(codacy fixes)

* fix(check too complex)

* fix(codacy): simplified check code

* fix(mtssm.py): handle 1st stress period with incrch equal to -1 (#780)

* fix(mtssm.py): handle 1st stress period when no crch data

Initializes crch with a scalar of 0.0 rather than a Transient2d obj equal to 0
Using a test dataset from https://github.com/modflowpy/flopy/issues/743 that was demonstrating the problem
Updated an autotest to load and write an SSM file with no data specified for crch

#743

* fix(mtssm.py): fix multi-species handling of incrch

* fix(gridgen): x, y center was not correct for rotated grids (#783)

* added a more robust method for determining cell centers for rotated grids
* closes #782

* fix(remove_package): fixed remove_package to rebuild namefile recarray correctly after removing package - issue #776 (#784)

Close #776

* feat(zb netcdf): zonebudget netcdf export support added  (#781)

* Updates to netcdf.py and utilities for zonebudget data

* Update requirements.travis.txt to test netCDF4 error

* update requirements.travis.txt for netCDF error testing

* Update travis/install.sh and requirements.travis.txt for binary conflicts

* updates for binary HDF binary conflict testing

* Feat(ZoneBudgetOutput): Added ZoneBudgetOutput to read in zonebudget output files

* added postprocessing methods to prepare budget data for netcdf writing
* updated NetCdf to include zonebudget group
* updated export/utils.py for zonebudget netcdf exporting

* Update(test_zonebudget_output_to_netcdf): for linux os

* Debug travis error with coverage package

* Debug coverage package issue due to 5.0.2 update (known issue in coveragepy repository)

* Update(test_zonebudget_output_to_netcdf): fix file case issue for travis-ci

* Update travis install.sh to check if coverage issue has been fixed

* fix(mf6): update create packages to support additional models (#790)

* refactor(grid_intersect): fixes for shapely updates

* Improved parsing of shapely intersection results
* Added tests for vertex grid
* Added example for vertex grid in notebook
* Improve docstrings, minor fixes, autopep8

* fix(vtk): change in export_cbc output file name (#795)

* feat(disl grids): support for 1d vertex grids. fix for writing gridlines to shapefile (#799)

* feat(disl grids): support for 1d vertex grids. fix for writing gridlines to shapefile

* fix(parameter ordering): the adding of a new parameter in the VertexGrid constructor was breaking some notebook examples. new parameter moved to end of parameter list to support backward compatibility.

* feat(plot_bc): updated plot_bc for MAW, UZF, SFR, and multiple bc packages (#808)

* fixed bug with mf2k loading modflowpy#802
* added shapefile support for output_helper modflowpy#807
* updated test cases

* fix(flopy3_MT3DMS_examples.ipynb): match constant heads to original problem (#809)

Problem 10 in the MT3DMS manual specifies constant heads along the top and bottom boundaries, not just the sides

* fix(mflist): default value not working (#812)

* Close #811

* fix(build_exes.py): fix bugs for Windows (#810) (#813)

Fix a number of bugs found when running `nosetests -v build_exes.py` on Windows.

Close #810

* docs(README.md and CONTRIBUTING.md): fix a few instruction issues (#814)

* docs(README.md): add pyproj to list of dependencies

Add pyproj to the list of dependencies in README.md, as it was missing.

* docs(CONTRIBUTING.md): correct nosetests command

* The command `nosetests -v t*_test.py` would not run (at least on Windows). I believe the command `nosetests -v` does what needs to be done.

* Also added a note about FloPy dependencies for tests to pass.

* fix(flopy3_MT3DMS_examples.ipynb): wrong indices were indexed (#815)

4th plot of p10 was showing concentration @ 750 days for layer 4, not concentration @ 1,000 days for layer 3 as labels indicated

* Fix(ModflowSfr2.export): Update ModflowSfr2.export() to use Grid instead of SpatialReference (#820)

* Update(plot_bc): updated plot_bc for MAW, UZF, SFR, and multiple bc packages

* fixed bug with mf2k loading modflowpy#802
* added shapefile support for output_helper modflowpy#807
* updated test cases

* Fix(ModflowSfr2.export): Update ModflowSfr2.export() to use modelgrid instead of SpatialReference

* Fix quasi3d plotting (#819)

* Fix plotting methods with quasi3d layers

* Add test

* Rename test

* close figures in test

* fix codacy and travis bugs

* Do not check for quasi3d if nlay==1

And fix vtk-export

* make plot_discharge in map also work without head

* Add laycbd as parameter to StructuredGrid

Make sure zcellcentersis calculated right
fix double line in test (minor change)

* fix xyzcellcenters again

* feat(vectors): vector plots when stresses applied along boundaries (#817)

* feat(postprocessing): add get_extended_budget() and get_specific_discharge()

* Add new function get_extended_budget() to get the correct flow rate across cell faces when stresses are applied along boundaries.
* Add new function get_specific_discharge() to get the correct specific discharge vector including at boundary cells.
* Deprecate centered_specific_discharge() function in module plotutil since the new get_specific_discharge() function just gives more flexibility (the function is kept to ensure backward compatibility).
* Add autotests for the new functions (t070).

* fix(PlotMapView): fix minor bugs in PlotMapView

* Fix squeeze of wrong axis in particular situations
* Make plot_discharge() return the quiver generated by plot_specific_discharge()

* feat(PlotMapView, plotutil): deal with nan values

* Make it such that nan values are not plotted

* fix(testunitcbc.py): fix bug in examples/Testing/testunitcbc.py

The ipackcb option was not provided to the LPF package, so the cell-by-cell flow terms could not be loaded. Fix it.

* feat(PlotMapView, PlotCrossSection): add plot_vector() functions

* Add new plot_vector() function in both PlotMapView and PlotCrossSection classes to plot any vector (typically specific discharge). This function is meant to replace both plot_specific_discharge() and plot_discharge(). It makes the code both more concise and more generic (can plot any vector).
* Deprecate plot_specific_discharge() and plot_discharge() functions (but keep them to ensure backward compatibility).
* Add tests for the new functions.
* Fix several tests for non-closed figures (close them).

* docs(multiple files): fix code documentation

Fix a few errors, inaccuracies and typos in code documentation.

* refactor(discretization): homogenize assignment of _grid_type

The _grid_type attribute was not assigned in the same way for all grid types. Make it more homogeneous. Also remove redundant grid_type() function in UnstructuredGrid.

* fix(ModflowOc): fix small error in unitnumber vector

The unitnumber vector in __init__() was wrong (too many zeros padded at the end). This error was without consequence, but still better fixed.

* fix:(#830): handling 'none' cellids in SFR package (#834)

* fix(#830): handling 'none' in SFR package

* fix(#830): handling 'none' in sfr package

* fix(#830): added test case with cellid 'none'

* fix(#830)

* fix(#830): updated data for sfr cellid 'none' test

* fix(#830)

* refactor and fix(vtk): improving code and fixing issues

* Create XmlWriterInterface class and child classes (XmlWriterAscii and XmlWriterBinary), allowing to factorize  lot of code. Namely, merge write() and write_binary(). binary is now a parameter of the Vtk class, consistently with other parameters. In addition, ascii and binary files are now written more consistently. Note: the written files are slightly different than before, but this only concerns minor style with no functionalities being impaired.
* Use more appropriate data types for connectivity, offsets and cell types
* Fix vtk.export_transient and utils.transient2d_export for binary option (it was actually saving in ascii)
* Fix weird file name separators (i.e., "__", " _") in transient cases
* Fix issue with inactive cells not ignored when smoothing : now ignore them (i.e., in extendedDataArray())
* Export ibound as well (it was excluded, but I see no reason why)
* Improve code documentation
* Simplify tests (t050) and make them more robust

* feat(vtk): export in .vti and .vtr when possible

* Export data in vtk ImageData (.vti) or RectilinearGrid (.vtr) formats when possible, instead of always UnstructuredGrid (.vtu), since this can greatly reduce file volume and speed up subsequent operations (e.g. in Paraview). The user can also choose to force an export in a specific format (e.g., .vtu) by using the new parameter vtk_grid_type (by default = 'auto')
* Add tests for it to t050

* fix(pyproj): pyproj.Proj's errcheck keyword option not reliable (#837)

* fix(vtk): issues related to nan and type cast

* In some cases, nanval was not transformed into nan -> fix it
* In some cases, the mean value calculated in extendedDataArray was nan where it should not -> fix it
* Remove forced cast to float64 (I do not see why this should be)
* Minor changes to tests (t050)

* feat(vtk): export vectors to vtk

* Implement the possibility to export vectors (e.g. hydraulic gradient, groundwater velocity) to vtk
* Add tests for it

* fix(str): add consistent fixed and free format approach (#838)

closes #832

* fix(mflmt.py): Clean up docstring for package_flows argument in LMT

* feat(netcdf): use modern features from pyproj>=2.2.0 (#840)

* For newer pyproj, use CRS and Transformer classes, to take advantage
  of modern transformation pipelines to convert coordinates
* For older pyproj, use Proj class, which has limitations
* Remove a few unnecessary try/except blocks and repeated log messages

* fix(utils.gridintersect): bug in GridIntersect for vertex grids (#845)

* feat(vtk): improve export at vertices (#844)

* Use bilinear interpolation to calculate the z of cell vertices (this is more appropriate than simple averaging when the grid is not regular)
* Ignore inactive cells when calculating the z of cell vertices (until now, they were not ignored, potentially yielding wrong values at the boundary of inactive cells)
* Use trilinear interpolation to calculate array values at cell vertices (this is more appropriate than simple averaging when the grid is not regular; furthermore, until now, everything was shifted downward with an awkward repetition of values at the top and bottom of the first layer)
* Improve performance by using scipy functions and avoiding loops (until now, interpolation was done by looping through all the cells in Python)
* Allow for directly passing array values at vertices to functions add_array() and add_vector() of the Vtk class
* New option "position" in the function postprocessing.get_specific_discharge() for calculating the values at "centers" (default), "faces" or "vertices"
* Cast delc, delr, top and botm of the grid to float64 (float32 was yielding significant round-off errors when rotating grid coordinates)

* feat(set all data external): set all data external for simulation (#846)

* feat(store all data external): feature to store all list and array data in external files

* feat(store all external): test cases modified to test this new feature

* feat(set all data external): set all data external for simulation

* fix(binaryfile_utils, CellbudgetFile): update for IMETH == 6 (#823)

* Update(plot_bc): updated plot_bc for MAW, UZF, SFR, and multiple bc packages

* fixed bug with mf2k loading modflowpy#802
* added shapefile support for output_helper modflowpy#807
* updated test cases

* Fix(ModflowSfr2.export): Update ModflowSfr2.export() to use modelgrid instead of SpatialReference

* Fix(MFOutputRequester): full3D=False when imeth == 6

* Update(CellBudgetFile): added methods to determine CellBudgetFile precision automatically

* Fix(CellBudgetFile.get_ts()): update get_ts() for IMETH==6.

* Codacy update

* Fix(ModflowDis): zero based get_node() and get_lrc()… (#847)

* Fix(ModflowDis): zero based get_node() and get_lrc() for input parameters and output

* added test_get_lrc_get_node()

* Fix(plot_array): update plot_array method to mask using np.ma.masked_values (#851)

* Fix(plot_array): update plot_array method to mask using np.ma.masked_values

* Update(plotting): change np.equal to np.isclose for large floating points

* adding multiple timeseries using ts.append_package() (#854)

* append multiple timeseries

With these changes you can add more than 2 timeseries to the `_filerecord` of a package (such as rch, ghb, etc.) using the `ts.append_package` method of the package. Without these changes the `ts.append_package` overwrites the `_filerecord` of the previously appended package.

* add 3 timeseries to a package

* revert changes to notebook

* New vtk export functionalities (#853)

* fix(postprocessing): fix a few postprocessing issues

* In postprocessing.get_saturated_thickness(): always use total thickness when calculating the saturated thickness of confined cells
* In Vtk.add_vector(): rotate vector to match the rotation of the grid
* In StructuredGrid.array_at_verts(): always use local coordinates (as it should)

* feat(vtk): select stress periods to export

* Develop a new option ('kpers') for only exporting selected stress periods when exporting a transient array or package or model

* feat(vtk): export as true 2d data

* Develop a new option ('true2d') for exporting data as true 2d data when the model has either 1 layer or 1 row or 1 column
* Change interpolation strategy when the grid is not rectilinear: use RegularGridInterpolator anyway (it is better than LinearNDInterpolator)

* feat(vtk): file opening options in export_heads() and export_cbc()

* In export_heads(): implement optional arguments to control file opening (consistently with HeadFile class).
* In export_heads(): use 'text' argument in the file name and as array name in the vtk file.
* In export_cbc(): implement optional arguments to control file opening (consistently with CellBudgetFile class).
* Simplify code for processing 'kstpkper' argument in export_cbc() and export_heads().

* fix(#856): Specifying period data with value None now only removes data from that period. Also, fixed an unrelated problem by updating the multi-package list. (#857)

* ci(get_exes): update build_exes to get_exes to simplify initialization (#865)

* fix(#831,#858): Data length check and case-insensitive lookup (#864)

* fix(#831,#858): Flopy now verifies data line length meets minimum length criteria. Flopy now retrieves models by case-insensitive name when case-sensitive lookup fails.

* feat(#862): Include message about zero based index variables in the docs.

* Fix(SfrFile): Update SfrFile for streambed elevation when present (#866)

* Fix(SfrFile): Update SfrFile to include dataframe column for streambed elevation when present

* fix test_SfrFile for travis runs

* feat(mfchd.py): prevent write chk-file always (#869)

Loading a mf-model, the CHD.chk file was always written, also wich the check-variable set to false.
For this reason the check-parameter is now added to the mfchd.load method and passed to the Package.load method.

* fix(#867): fixed minimum record entry count for lists to never include keywords in the count (#875)

* fix: #868, #874, #879 (#881)

* fix(#868): bug fixed that occurred when loading packages with external file references and then changing that reference. behavior of setting all files to external changed, existing external files are no longer automatically overridden with the default file name.

* fix(external files): test updated, added reloading and saving of simulation after all data is set to external

* fix(#874): fixed data shape for one line obs files

* fix(#879): external files that start with a comment on the first line now load correctly

* fix: Added test for external file starting with comment

* fix: debug code removed

* fix: code cleanup

* Fix(#870): Update ims name file record after removing ims package (#880)

* Fix(#870): Update ims name file record after removing ims package

* remove cbc test case

* update t504_test.py

* codacy update

* Update test_replace_ims_package for travis

* Fix(CellBudgetFile): update for auto precision with imeth = 5 or 6 (#876)

* Fix(CellBudgetFile): update for auto precision with CellBudgetFile imeth = 5 or 6 as first record

modflowpy#872

* update t504_test.py

* Update(CellBudgetFile): remove naux comparison, add additional ascii comparison

Co-authored-by: langevin-usgs <langevin@usgs.gov>

* fix(#886): MFArray aux variable now always returned as an numpy.ndarray. Fixed problem with PyListUtil not fully supporting numpy.ndarray type. (#887)

* fix(modelgrid): fix offset for xul and yul in read_usgs_model_reference_file and attribs_from_namfile_header (#889)

* Fix(MFSimulation): remove case sensitivity from register_ims_package() (#890)

* fix(setup.py): read package name, version, etc. from version.py (#893)

Import of `__version__`, `__name__`, and `__author__` from `flopy` caused
failure of `setup.py` because of dependency of `flopy` on `numpy` with
python installations that did not already have `numpy` installed. Moved
all information needed by `setup.py` to `version.py` and update
`make-release.py` to retain `__name__`, `__author__`, and `__author_email__`
information in file after updating version numbers. Removed unintended
unmanaged dependency on `matplotlib` in `gridintersect.py` by wrapping
import in a try and except. In the case that `matplotlib` is not installed
and methods that depend on `matplotlib` are called then a
`ModuleNotFoundError` exception is issued.

Closes #892

* fix(setup.py): read package name, version, etc. from version.py

Import of __version__, __name__, and __author__ from flopy caused
failure of setup.py because of dependency of flopy on numpy with
python installations that did not already have numpy installed. Moved
all information needed by setup.py to version.py and update
make-release.py to retain __name__, __author__, and __author_email__
information in file after updating version numbers. Removed unintended
unmanaged dependency on matplotlib in gridintersect.py by wrapping
import in a try and except. In the case that matplotlib is not installed
and methods that depend on matplotlib are called then a
ModuleNotFoundError exception is issued.

Closes #892

* fix building in clean env (#894)

* fix(_plot_util3d_helper, export_array): (#895)

* fix naming convention for mf6 plotting in _plot_util3d_helper
* update Affine translation to use xul and yul in export_array
* code and docstring cleanups in utils.py

* fix(mfsimulation): repair change for case insensitive model names (#897)

A recent change was made to allow case insensitive model names to be added to IMS solutions.  This change broke some previous functionality.  This PR simply checks to make sure that .lower() is not applied to None.

* fix(Seawat.modelgrid): pass lenuni from dis file into modelgrid instance (#901)

modflowpy#898

* feat(Mf6ListBudget): add support for mf6 budgets with multiple packages with same name (#900)

* fix(mfsimulation): repair change for case insensitive model names

A recent change was made to allow case insensitive model names to be added to IMS solutions.  This change broke some previous functionality.  This PR simply checks to make sure that .lower() is not applied to None.

* feat(Mf6ListBudget): add support for mf6 budgets with multiple packages of same name

* closes #899

* feat(str): add IRDFLG and IPTFLG control to STR (#905)

Closes #788

* feat(ModflowSms): add support for simple, moderate, complex (#906)

* Close #774

* feat(mbase): suppress duplicate package warning if verbose is False (#908)

Add similar suppression for other informative messages in mbase, mf,
and mt.

Closes #345

* fix(SwtListBudget): totim was not being read correctly for SEAWAT list file (#910)

Closes #681

* feat(GridIntersect): #902 (#903)

Add gridintersect to flopy utils along with gridintersect tests.

Add keepzerolengths option to strtree method

Add gridintersection demo notebook

Update travis to install shapely

New method for parsing shapely intersection results
fixes failing test caused by change in behavior in GEOS and shapely
clean up and improve code/docstrings

Ad triangle grid for vertex grid tests

Update notebook with triangle grid

Fix conversion of cell2d to list of shapely shapes
using ncvert to determine no. of points

Add option to perform intersections without building STRtree

Add filter to STRtree query results to avoid unnecessary intersection calls

closes #902

Fix transform of MultiPolygon coords

Add support for transforming MultiPolygon coordinates into
real-world coordinates in structured mode.

* doc(swi2): fix docstring typos (#912)

Closes #595

* Introduce end-of-line normalization (#913)

* Fix faulty logic in ZoneBudget (#911)

Update logic that incorrectly handles fluxes from/to active cells in zone 0.
Remove logic precluding flow to/from zone 0 in CHTOCH flow-face 
computations. Add test for case where zone 0 contains active cells.
Remove format-string syntax to preserve compatibility with python < 3.6.

Resolves #882

* refactor(make-release): Software citation developed from version.py (#914)

Closes #727

* release: update mf6 v6.1.1 dfn and flopy mf6 classes

* ci(get_exe): update get_exes repo for restored repo (#919)

* bug(GridIntersect): fixes #916 and #917 (#918)

* refactor(make-release): Software citation developed from version.py

Closes #727

* release: update mf6 v6.1.1 dfn and flopy mf6 classes (#1)

* docs(misc): clean up docstrings

* refactor(GridIntersect): fix error message
for unsupported methods

* bug(GridIntersect): fix #10
ensure one entry per grid cell in polygon intersection result
add test for this case

* bug(gridintersect): fixes #917

bug in structured mode where linestrings were not handled
correctly if they pass in and out of grid cell

Co-authored-by: jdhughes-usgs <jdhughes@usgs.gov>
Co-authored-by: Christian Langevin <langevin@usgs.gov>

* fix(mfsfr2.check): negative segments for lakes no longer included in segment numbering order check (#915)

fixes #269

* fix(#280, #835): set_all_data_external now includes constants, cellids in list data are checked (#920)

Notebook now plots head cells in the correct orientation. Lists now check that cellids are in active cells within the model grid. Set_all_data_external now converts expands constant data and saves it to an external file.

Closes #280 and #835

* release: add update-version_changes to generate version changes from log (#921)

* readme: update readme for v3.3.1 release (#924)

* feat(ModflowAg): add the ModflowAg package for NWT (pull request #922)

Update UZF package options and blocks for NWT release 1.2.0. Add t071_test_nwt_ag.py autotest.

* fix(Modpath7Sim): fix TimePointInterval calculation for TimePointOption 3 (#927)

Closes #730

* refactor(import flopy): remove message "flopy is installed in ..." (#925)

* release: update make-release and documentation to https (#928)

* fix(idomain): data checks now treat all positive idomain values as active  (#929)

* fix(read binary file): fix for reading binary files with array data (#931)

* fix: restore Python 3.5 compatibility (ModuleNotFoundError -> ImportError) (#933)

* fix(time series slowness): speeds up performance when a large number of time series are used by a single stress package (#943)

* refactor(matplotlib imports): wrap matplotlib imports in try/except (#946)

closes #945

* fix(lgrutil): corrected bug in child to parent vertical exchanges (#948)

* fix(rcha and evta): irch and ievt arrays now zero based.  fix for issue #941.  also changed createpackages.py to always produce python scripts with unix-style line endings. (#949)

* fix(check): get_active() error for confining bed layers (#937)

* fix(mvr): added documentation explaining the difference between the two flopy mvr classes (#950)

* ci(linting): Initial GitHub actions for linting (#954)

Reformat code using black with 79 character line length. Initial GitHub
action uses miniconda and has first cut at running autotests on GitHub
actions.

* ci(actions): update GitHub actions workflow

* CI(black): add info for running black prior to PR

* fix(GridIntersect): fix crash intersecting 3D points that are outside… (#957)

Fixes #956

* doc(README): Update README.md badges

* CI(actions): update GitHub workflow to run on cron

* fix(#958): fix GridIntersect._vtx_grid_to_shape_generator rtree for cells with more than 3 vertices (#959)

Also added a test.

* refactor(mfdatutil): update collections deprecated import (#960)

* refactor(gridgen): fixes and additions related to vertical pass through cells (#953)

* Gridgen fixes and additions

- Added Gridgen's "vertical pass through" option to utils/gridgen.export().
- Fixed utils/gridgen.set_surface_interpolation() file paths for ASCIIGRID
  option.
- Fixed grd variable definitions for ASCIIGRID surface interpolation option
  in utils/gridgen._builder_block(). These now use gridgen._asciigrid_dict
  where appropriate (default ascii grid names were causing errors).
- Added docstring to utils/gridgen.get_disu().
- Minor edit to modflow/mfdisu.py docstring re: util3d / unstructured models.

* docs(readme): autotest build_exes.py changed to get_exes.py

* test(gridgen vertical pass through)

* test(gridgen vertical pass through)

* style(gridgen.py)

* test(gridgen vertical pass through)

* ci(GitHub): Update GitHub actions workflow

* ci(actions): Update github actions

* ci(update): update GitHub action workflow file

* ci(update): update GitHub action workflow file

* ci(update): update GitHub action workflow file

* fix(mfsfr2.py:find_path): wrap find_path() so that the routing dictionary (graph) can still be copied, but won't be copied with every call of find_path() as it recursively finds the routing connections along a path in the SFR network. This was severely impacting performance for large SFR networks. (#955)

* fix(internal): Flopy fixed to correctly reads in internal keyword when no multiplier supplied. Also, header line added to package files. (#962)

* fix(internal): Flopy fixed to correctly reads in internal keyword in the case where there is no multiplier supplied.

* feat(header): Flopy feature added that by default adds a header line to each package file indicating that it was generated by flopy.  Option called "write_headers" added to simulations that allows users to turn on and off headers.

* fix(package/simulation): reformatted with "black --line-length 79"

* refactor(dependencies): Refactor collections and matplotlib imports (#965)

Refactor mfdatutil to update collections deprecated import 
and resolve matplotlib deprecation warning in map.py. Also add 
add conditional on t064 autotest execution on MacOS virtual
machine with GitHub Actions

* update(mfsfr2, mfuzf1): change default optionblock behavior to block = True for "nwt" models (#963)

* feat(set_all_data_external) : new check_data option  (#966)

* feat(set_all_data_external) : new check_data option gives user option to turn off data checking for improved performance

* perf(util_array.util2d): write_txt string += performance slow for large arrays (#964)

Writing large arrays (like JA in a disu file) using package_object.write_file() is
too slow (hours for a JA of size ~10M). Experimentation suggests the bottleneck is
in utils/util_array.py() in function array2string, which uses the string += "more"
and string = string + "more" methods, which scale badly with size.
Implement solution: Change string += loop to "".join(iterable) method.

Co-authored-by: Mike Taves <mwtoews@gmail.com>

Fixes #961

* ci(pymake): update pymake import (#969)

* ci(rtd): setup readthedocs based on existing ghpages files (#970)

* readme: update with readthedocs information

* ci(rtd): add flopy version to readthedocs

* ci(actions): reorder GitHub actions matrix order (#971)

Update MODFLOW-LGR autotest so that it is excluded from windows runs.

* doc(rtd): rearrange Flopy Code section (#972)

Closes #944

* ci(t035): Do not run t035 on macOS or Win32 (#973)

* refactor(flopy): run black formatting with latest (20.8b1) (#975)

* feat(cellid not as tuple): list data input now accepts cellids as separate integers (#976)

* feat(cellid not as tuple): list data input may now have cellids as separate integers rather than as integers in a tuple.  flopy still internally stores the integers as a tuple.

* ci(rtd): generate tutorial files and save as action asset (#979)

* ci(rtd): make separate rtd workflow (#980)

* ci(update): update miniconda action (#981)

* ci(rtd): modify rtd workflow (#982)

* ci(rtd): modify conf.py (#983)

* refactor(load): refactor load methods to use @classmethod (#985)

Closes #984

* refactor(load): refactor load methods to use @classmethod (#988)

Closes #984

* refactor(Modpath): refactor Modpath to Modpath6 (#987)

Refactor to improve use of glob for creating documentation. Also
reorganized tutorials so directory structure can be used to develop
tutorial rst file.

* refactor(rtd): refactor functions to hide private functions (#989)

* fix(extraneous blocks and zero length data in a list)  (#990)

* fix(extraneous package data): extraneous package data is stored as comments

* fix(loading list data): fix handles case where jagged data in a list has size zero

* fix(reading repeating data): variable initialization fix

* fix(test update): update test to properly function with the way flopy now treats extra stress periods as comment text

* update(mfag): update _read_block_21_25_or_29 for gsflow file convention in IRRDIVERSION block. (#994)

* fix(gridintersect): use linestrings and structured grid (#996)

Close #995

* feat(cvfdutil): capability to create disv nested grids (#997)

The modflow6 disv constructor in flopy needs a list of vertices and cell2d information. The flopy.util.cvfdutil package was updated to include a new method that takes a list of flopy.discretization.structuredgrid.StructuredGrid objects and stitches them together to create a dictionary of arguments that can be passed info flopy.modflow6.ModflowGwfdisv. For nested grids, idomain must be set to zero in any parent grids in order for the child grid to be patched in properly. This new tool can be used to construct vertices and cell2d information needed to make disv nested grids.

* refactor(shapefile): add check_version for pyshp>=2; skip tests (#1001)

* refactor(pyproj): for versions before 2.2.0, prepend "+init=" to epsg ids (#1003)

* For test_dis_sr, remove use of deprecated SpatialReference object
  which cannot parse "us-ft" units from older pyproj versions. This
  test works fine with supported StructuredGrid module.
* And for deprecated reference module, tidy up one "to_meter" error

* feat(geospatial_util): geospatial consolidation utilities (#1002)

* *Added GeoSpatialUtil for geospatial conversions
*Added GeoSpatialCollection for batch conversion of "Collection" objects

*Updated geometry.py and added additional geometry types to geometry.py

*updates to gridgen, shapefile_utils, triangle, rasters, and gridintersect modules that allow the user to supply any supported shape object to these geospatial methods. Supported shape objects are, geojson, shapely, shapefile, flopy.utils.geometry, and lists of vertices.

*Added t074_test_geospatial_util.py

issue #772

* remove intersect_linestring, intersect_point, and intersect_polygon from GridIntersect.

*Refactored t065_test_gridintersect.py for intersect() method
*Updated flopy3_grid_intersection_demo.ipynb for intersect() method

* refactor(numpy): patch modern flip function for versions older than 1.15.0 (#1004)

* feat(mf6): Add MODFLOW 6 GWT dfn and classes (#1006)

* feat(mf6): Update t503 autotest to use mf6examples zip file (#1007)

* release: update release scripts and instructions (#1008)

Convert notebook autotest script to use jupytext instead of nbconvert.
Update dfns with revised dfns. Fix issue with groundwater paper
notebooks on Travis.

* ci(t503): update t503 autotest (#1009)

* release(3.3.2)

* release(3.3.2)

* release(3.3.2)

Co-authored-by: Joshua Larsen <jlarsen@usgs.gov>
Co-authored-by: mnfienen <mnfienen@usgs.gov>
Co-authored-by: Brioch Hemmings <briochh@gmail.com>
Co-authored-by: Jason Bellino <jbellino@usgs.gov>
Co-authored-by: langevin-usgs <langevin@usgs.gov>
Co-authored-by: Eric Morway <emorway@usgs.gov>
Co-authored-by: aleaf <andrew.t.leaf@gmail.com>
Co-authored-by: Mike Taves <mwtoews@gmail.com>
Co-authored-by: spaulins-usgs <spaulinski@usgs.gov>
Co-authored-by: Davíd Brakenhoff <d.brakenhoff@artesia-water.nl>
Co-authored-by: ConstableCatnip <38230539+ConstableCatnip@users.noreply.github.com>
Co-authored-by: Ayman Alzraiee <ayman.alzraiee@gmail.com>
Co-authored-by: J Dub <jtwhite1000@gmail.com>
Co-authored-by: martindjm <43825685+martindjm@users.noreply.github.com>
Co-authored-by: julian-deltares <Julian.Hofer@deltares.nl>
Co-authored-by: Ralf Junghanns <ralf.junghanns@gmail.com>
Co-authored-by: scottrp <45947939+scottrp@users.noreply.github.com>
Co-authored-by: Justin Jent <jentjr@gmail.com>
Co-authored-by: rodrperezi <rodrperez@ing.uchile.cl>
Co-authored-by: Etienne Bresciani <53166244+etiennebresciani@users.noreply.github.com>
Co-authored-by: Ruben Caljé <r.calje@artesia-water.nl>
Co-authored-by: OnnoEbbens <onnoebbens@gmail.com>
Co-authored-by: Ritchie Vink <ritchie46@gmail.com>
Co-authored-by: Michael Ou <ougengxin@gmail.com>
Co-authored-by: mkennard-aquaveo <42077662+mkennard-aquaveo@users.noreply.github.com>
Co-authored-by: Chris Nicol <37314969+cnicol-gwlogic@users.noreply.github.com>
Co-authored-by: Tom van Steijn <tom.van.steijn@brabantwater.nl>
@mwtoews mwtoews deleted the py35 branch March 21, 2021 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Broken Python 3.5 without matplotlib
3 participants