POC: Implement the general BaseParams class for any class-like parameters #2895
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains some experimental codes towards the Pythonic interface discussed in #1082. Generally speaking, this PR implements the base class
BaseParams
and any parameters that expect a class-like argument can inherit from it (a similar work is done in PR #1239).In this PR, a
Box
class is implemented showing how theBaseParams
can be used. TheBox
class can be passed to thebox
parameter in multiple modules (image
,logo
,basemap
,coast
,inset
,legend
andcolorbar
). The full syntax of thebox
parameter is (https://docs.generic-mapping-tools.org/dev/image.html#f):Here is an example showing how the
Box
class can be used:The console outputs are:
The generated image is:
Known limitations that should be addressed:
innerborder=('2p', '1p,red')
is not ideal. I expect to seeinnergap="2p", innerpen="1p,red"
instead.shading=('5p', '5p', 'lightred')
is not idea,shading_offset=("5p", "5p")
andshading_fill="lightred"
is better