-
Notifications
You must be signed in to change notification settings - Fork 229
Description
Description of the desired feature
A major usability problem for GMT are the complex and cryptic single character arguments and modifiers. This is why we implemented the entire alias system in GMT/Python (which is making its way back into GMT 6). Our docs all encourage using the long form names and this is not strange in the Python ecosystem. Since we're actively discouraging the use of B
and the like, why are we maintaining the capability of doing so? Hardcore GMT users who value brevity are not our target audience. And if you're using Jupyter or any modern text editor, tab completion eliminates the hassle of longer names (which we currently can't use because of the alias system).
I propose getting rid of the single letter arguments all together.
Doing this will allow us to:
- Define functions arguments normally in the Python functions instead of relying on
**kwargs
. - Get rid of the
use_alias
decorator and replace it with a translator function that's called inside the function body. This functions would be a lot easier than the decorator to maintain (which is an ugly function inside a function inside a function). - Use tab completion for the long argument names
- Simplify the testing a lot but not needing to test the aliases
The one downside I see that we will have to fully implement all arguments in order for them to be used (like X
and Y
, etc). But we were gonna have to do this eventually any way.
I'd love to get some feedback on this.