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

Refactor Figure.meca() to better determine the data format code #1002

Merged
merged 2 commits into from
Mar 4, 2021

Conversation

seisman
Copy link
Member

@seisman seisman commented Mar 4, 2021

Description of proposed changes

The Figure.meca() method is too complicated to read and maintain, and also has the lowest code coverage (~75%).

I will try to refactor the method, but in separate PRs. Otherwise the changes would be too big to review.

This PR is the first step to refactor the codes. The old code uses nested if-else-statement to determine the data format (meca -S option) from parameters convention and component.
The new code uses two dicts instead, and also wrap the code in a separate function data_format_code , because the function will also be used in Figure.coupe() (not wrapped yet).

I also add several doctests to check the function and increase the code coverage.

References: https://docs.generic-mapping-tools.org/latest/supplements/seis/meca.html#s

Fixes #

Reminders

  • Run make format and make check to make sure the code follows the style guide.
  • Add tests for new features or tests that would have caught the bug that you're fixing.
  • Add new public functions/methods/classes to doc/api/index.rst.
  • Write detailed docstrings for all functions/methods.
  • If adding new functionality, add an example to docstrings or tutorials.

Slash Commands

You can write slash commands (/command) in the first line of a comment to perform
specific operations. Supported slash commands are:

  • /format: automatically format and lint the code
  • /test-gmt-dev: run full tests on the latest GMT development version

@seisman
Copy link
Member Author

seisman commented Mar 4, 2021

Ping @tjnewton @liamtoney for review as you wrote the initial Figure.meca() method in #516.

@tjnewton
Copy link
Contributor

tjnewton commented Mar 4, 2021

Ping @tjnewton @liamtoney for review as you wrote the initial Figure.meca() method in #516.

Good idea. I like your changes.

Copy link
Member

@liamtoney liamtoney left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice.

@seisman seisman marked this pull request as ready for review March 4, 2021 22:11
@seisman seisman added this to the 0.3.1 milestone Mar 4, 2021
@seisman seisman added maintenance Boring but important stuff for the core devs skip-changelog Skip adding Pull Request to changelog labels Mar 4, 2021
@seisman seisman changed the title Refactor Figure.meca() to make the codes more readable and reusable Refactor Figure.meca() to better determine the data format code Mar 4, 2021
@seisman seisman merged commit a37f919 into master Mar 4, 2021
@seisman seisman deleted the refactor-meca branch March 4, 2021 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance Boring but important stuff for the core devs skip-changelog Skip adding Pull Request to changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants