awickert / gFlex

Multiple methods to solve elastic plate flexure, designed for applications to Earth's lithosphere.
http://csdms.colorado.edu/wiki/Model:gFlex
GNU General Public License v3.0
20 stars 11 forks source link

Update repository for newer Pythons, packaging standards #44

Closed mcflugen closed 9 months ago

mcflugen commented 9 months ago

@awickert This pull request updates the gflex repository for Python 3.10+ and also updates the project to follow standard packaging conventions.

Highlights:

Because I've reformatted the code to use a consistent style, just looking at the difference between this branch and master will likely show too many changes to be useful. If you want to have a closer look, it might be easier to look at individual commits.

I haven't made any meaningful changes within the actual gflex code, so things should work exactly as before.

mcflugen commented 9 months ago

@awickert One thing I could use some help with are some remaining bare try/except blocks. I fixed ones that looked obvious to me, for example things like,

try:
    self.x
except:
    self.x = 0.0

to

try:
    self.x
except AttributeError:
    self.x = 0.0

There are some other blocks, though, that I wasn't totally sure what exception you were expecting they might raise. Because a bare except block will catch all errors—including ones you don't intend—it's a good idea to explicitly state what exception you are trying to catch and to include the absolute minimum amount of code in the try block.

awickert commented 9 months ago

Thank you, Eric. I just merged everything and will run some basic tests.

This was a LARGE amount of work on your end, and I appreciate it!

If you remember, could you create an "Issue" with your follow-up comment here? That will make sure that it jogs my memory, and it would be helpful to me if it's attributed to you (otherwise I would just add it myself).

Thanks!