From 8d21c1bbb494c50dc03bce4d14362dd57afa62d2 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Fri, 21 May 2021 16:02:42 -0400 Subject: [PATCH 01/10] Try injecting one parameter into method signature --- pygmt/helpers/__init__.py | 1 + pygmt/helpers/decorators.py | 24 ++++++++++++++++++++++++ pygmt/src/blockm.py | 4 ++++ 3 files changed, 29 insertions(+) diff --git a/pygmt/helpers/__init__.py b/pygmt/helpers/__init__.py index 4b9c4051e80..5b52c6d7dad 100644 --- a/pygmt/helpers/__init__.py +++ b/pygmt/helpers/__init__.py @@ -5,6 +5,7 @@ deprecate_parameter, fmt_docstring, kwargs_to_strings, + tab_complete_alias, use_alias, ) from pygmt.helpers.tempfile import GMTTempFile, tempfile_from_geojson, unique_name diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index d3d66a6cb98..0fd5979e6db 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -10,6 +10,7 @@ import warnings import numpy as np +from inspect import signature, Parameter from pygmt.exceptions import GMTInvalidInput from pygmt.helpers.utils import is_nonstr_iter @@ -327,6 +328,29 @@ def new_module(*args, **kwargs): return alias_decorator + +def tab_complete_alias(module_func): + """ + Decorator injecting aliases of a method as attributes + """ + @functools.wraps(module_func) + def wrapper(*args, **kwargs): + """ + New module instance that includes aliases in the signature. + """ + sig = signature(module_func) + param = Parameter("verbose",kind=Parameter.POSITIONAL_OR_KEYWORD,default=None) + wrapped_params = [param for param in sig.parameters.values()] + kwargs_param = wrapped_params.pop(-1) + all_params = wrapped_params + [param] + [kwargs_param] + sig = sig.replace(parameters=all_params) + wrapper.__signature__ = sig + + return module_func(*args,**kwargs) + + return wrapper + + def kwargs_to_strings(**conversions): """ Decorator to convert given keyword arguments to strings. diff --git a/pygmt/src/blockm.py b/pygmt/src/blockm.py index a9cf45f4616..db7a638c151 100644 --- a/pygmt/src/blockm.py +++ b/pygmt/src/blockm.py @@ -11,8 +11,10 @@ dummy_context, fmt_docstring, kwargs_to_strings, + tab_complete_alias, use_alias, ) +from pygmt.helpers.decorators import tab_complete_alias def _blockm(block_method, table, outfile, **kwargs): @@ -71,6 +73,7 @@ def _blockm(block_method, table, outfile, **kwargs): @fmt_docstring +@tab_complete_alias @use_alias( I="spacing", R="region", @@ -132,6 +135,7 @@ def blockmean(table, outfile=None, **kwargs): @fmt_docstring +@tab_complete_alias @use_alias( I="spacing", R="region", From 80821501ed1c8b1ff0bac44354ad479eff92eb86 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Fri, 21 May 2021 16:23:28 -0400 Subject: [PATCH 02/10] Update decorator --- pygmt/helpers/decorators.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 0fd5979e6db..bcb81818277 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -333,22 +333,16 @@ def tab_complete_alias(module_func): """ Decorator injecting aliases of a method as attributes """ - @functools.wraps(module_func) - def wrapper(*args, **kwargs): - """ - New module instance that includes aliases in the signature. - """ - sig = signature(module_func) - param = Parameter("verbose",kind=Parameter.POSITIONAL_OR_KEYWORD,default=None) - wrapped_params = [param for param in sig.parameters.values()] - kwargs_param = wrapped_params.pop(-1) - all_params = wrapped_params + [param] + [kwargs_param] - sig = sig.replace(parameters=all_params) - wrapper.__signature__ = sig - return module_func(*args,**kwargs) + sig = signature(module_func) + param = Parameter("verbose",kind=Parameter.POSITIONAL_OR_KEYWORD,default=None) + wrapped_params = [param for param in sig.parameters.values()] + kwargs_param = wrapped_params.pop(-1) + all_params = wrapped_params + [param] + [kwargs_param] + sig_new = sig.replace(parameters=all_params) + module_func.__signature__ = sig_new - return wrapper + return module_func def kwargs_to_strings(**conversions): From 49aa7b5b70a5dee7e3283db6a3c93535f3bb2b23 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Fri, 21 May 2021 16:37:17 -0400 Subject: [PATCH 03/10] Update decorator to work with all aliases --- pygmt/helpers/decorators.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index bcb81818277..43b0a8c792d 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -8,9 +8,9 @@ import functools import textwrap import warnings +from inspect import Parameter, signature import numpy as np -from inspect import signature, Parameter from pygmt.exceptions import GMTInvalidInput from pygmt.helpers.utils import is_nonstr_iter @@ -328,17 +328,24 @@ def new_module(*args, **kwargs): return alias_decorator - def tab_complete_alias(module_func): """ - Decorator injecting aliases of a method as attributes + Decorator injecting aliases into the signature of a method. """ + # Get current signature and parameters sig = signature(module_func) - param = Parameter("verbose",kind=Parameter.POSITIONAL_OR_KEYWORD,default=None) wrapped_params = [param for param in sig.parameters.values()] kwargs_param = wrapped_params.pop(-1) - all_params = wrapped_params + [param] + [kwargs_param] + # Add new parameters from aliases + for alias in module_func.aliases.values(): + if alias not in sig.parameters.keys(): + new_param = Parameter( + alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None + ) + wrapped_params = wrapped_params + [new_param] + all_params = wrapped_params + [kwargs_param] + # Update method signature sig_new = sig.replace(parameters=all_params) module_func.__signature__ = sig_new From c2a29794a5282d5ad54fce8ab9bfb1988544dfdc Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Fri, 21 May 2021 16:50:02 -0400 Subject: [PATCH 04/10] Fix formatting errors --- pygmt/helpers/decorators.py | 2 +- pygmt/src/blockm.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 43b0a8c792d..55397582006 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -335,7 +335,7 @@ def tab_complete_alias(module_func): # Get current signature and parameters sig = signature(module_func) - wrapped_params = [param for param in sig.parameters.values()] + wrapped_params = list(sig.parameters.values()) kwargs_param = wrapped_params.pop(-1) # Add new parameters from aliases for alias in module_func.aliases.values(): diff --git a/pygmt/src/blockm.py b/pygmt/src/blockm.py index db7a638c151..bc7d3859ca2 100644 --- a/pygmt/src/blockm.py +++ b/pygmt/src/blockm.py @@ -14,7 +14,6 @@ tab_complete_alias, use_alias, ) -from pygmt.helpers.decorators import tab_complete_alias def _blockm(block_method, table, outfile, **kwargs): From c6477d741478692f3894b8e7f8ad651371e6e3a2 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Fri, 21 May 2021 17:26:52 -0400 Subject: [PATCH 05/10] Update function name --- pygmt/helpers/__init__.py | 2 +- pygmt/helpers/decorators.py | 4 ++-- pygmt/src/blockm.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pygmt/helpers/__init__.py b/pygmt/helpers/__init__.py index 5b52c6d7dad..6e3370d61f5 100644 --- a/pygmt/helpers/__init__.py +++ b/pygmt/helpers/__init__.py @@ -4,8 +4,8 @@ from pygmt.helpers.decorators import ( deprecate_parameter, fmt_docstring, + insert_alias, kwargs_to_strings, - tab_complete_alias, use_alias, ) from pygmt.helpers.tempfile import GMTTempFile, tempfile_from_geojson, unique_name diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 55397582006..9345c38b423 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -328,9 +328,9 @@ def new_module(*args, **kwargs): return alias_decorator -def tab_complete_alias(module_func): +def insert_alias(module_func): """ - Decorator injecting aliases into the signature of a method. + Decorator insertings aliases into the signature of a method. """ # Get current signature and parameters diff --git a/pygmt/src/blockm.py b/pygmt/src/blockm.py index bc7d3859ca2..f7b123074ad 100644 --- a/pygmt/src/blockm.py +++ b/pygmt/src/blockm.py @@ -10,8 +10,8 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, kwargs_to_strings, - tab_complete_alias, use_alias, ) @@ -72,7 +72,7 @@ def _blockm(block_method, table, outfile, **kwargs): @fmt_docstring -@tab_complete_alias +@insert_alias @use_alias( I="spacing", R="region", @@ -134,7 +134,7 @@ def blockmean(table, outfile=None, **kwargs): @fmt_docstring -@tab_complete_alias +@insert_alias @use_alias( I="spacing", R="region", From d3a046e2d1750aa03ed138dcfca9a9c633abd95f Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Sat, 22 May 2021 18:38:18 -0400 Subject: [PATCH 06/10] Use insert_alias for all functions with use_alias --- pygmt/figure.py | 2 ++ pygmt/src/basemap.py | 2 ++ pygmt/src/coast.py | 2 ++ pygmt/src/colorbar.py | 9 ++++++++- pygmt/src/contour.py | 2 ++ pygmt/src/grd2cpt.py | 9 ++++++++- pygmt/src/grdclip.py | 2 ++ pygmt/src/grdcontour.py | 9 ++++++++- pygmt/src/grdcut.py | 2 ++ pygmt/src/grdfill.py | 2 ++ pygmt/src/grdfilter.py | 2 ++ pygmt/src/grdimage.py | 9 ++++++++- pygmt/src/grdinfo.py | 2 ++ pygmt/src/grdtrack.py | 2 ++ pygmt/src/grdview.py | 2 ++ pygmt/src/histogram.py | 9 ++++++++- pygmt/src/image.py | 9 ++++++++- pygmt/src/info.py | 2 ++ pygmt/src/inset.py | 9 ++++++++- pygmt/src/legend.py | 2 ++ pygmt/src/logo.py | 9 ++++++++- pygmt/src/makecpt.py | 9 ++++++++- pygmt/src/meca.py | 2 ++ pygmt/src/plot.py | 2 ++ pygmt/src/plot3d.py | 2 ++ pygmt/src/rose.py | 9 ++++++++- pygmt/src/solar.py | 9 ++++++++- pygmt/src/subplot.py | 3 +++ pygmt/src/surface.py | 2 ++ pygmt/src/text.py | 2 ++ pygmt/src/velo.py | 9 ++++++++- pygmt/src/which.py | 9 ++++++++- pygmt/src/wiggle.py | 9 ++++++++- pygmt/src/x2sys_cross.py | 2 ++ pygmt/src/x2sys_init.py | 9 ++++++++- 35 files changed, 161 insertions(+), 15 deletions(-) diff --git a/pygmt/figure.py b/pygmt/figure.py index e2b9089ccc7..40d5369381f 100644 --- a/pygmt/figure.py +++ b/pygmt/figure.py @@ -16,6 +16,7 @@ from pygmt.helpers import ( build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, launch_external_viewer, unique_name, @@ -124,6 +125,7 @@ def region(self): return wesn @fmt_docstring + @insert_alias @use_alias( A="crop", C="gs_option", diff --git a/pygmt/src/basemap.py b/pygmt/src/basemap.py index 1a742ea4d59..0cd5dc10d67 100644 --- a/pygmt/src/basemap.py +++ b/pygmt/src/basemap.py @@ -8,12 +8,14 @@ args_in_kwargs, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/coast.py b/pygmt/src/coast.py index f3e1b70c343..25b4bc353de 100644 --- a/pygmt/src/coast.py +++ b/pygmt/src/coast.py @@ -8,12 +8,14 @@ args_in_kwargs, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/colorbar.py b/pygmt/src/colorbar.py index 3fd25c8ee99..e59226c7b3a 100644 --- a/pygmt/src/colorbar.py +++ b/pygmt/src/colorbar.py @@ -3,10 +3,17 @@ """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/contour.py b/pygmt/src/contour.py index 8101416a5cd..d58fed3b581 100644 --- a/pygmt/src/contour.py +++ b/pygmt/src/contour.py @@ -9,12 +9,14 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( A="annotation", B="frame", diff --git a/pygmt/src/grd2cpt.py b/pygmt/src/grd2cpt.py index 5f5339436f7..78b8c2c0cde 100644 --- a/pygmt/src/grd2cpt.py +++ b/pygmt/src/grd2cpt.py @@ -4,10 +4,17 @@ from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="transparency", C="cmap", diff --git a/pygmt/src/grdclip.py b/pygmt/src/grdclip.py index f0b5dbd7004..2b3b4a2f0ef 100644 --- a/pygmt/src/grdclip.py +++ b/pygmt/src/grdclip.py @@ -8,12 +8,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( G="outgrid", R="region", diff --git a/pygmt/src/grdcontour.py b/pygmt/src/grdcontour.py index 2384b59f360..920259157b8 100644 --- a/pygmt/src/grdcontour.py +++ b/pygmt/src/grdcontour.py @@ -2,10 +2,17 @@ grdcontour - Plot a contour figure. """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="annotation", B="frame", diff --git a/pygmt/src/grdcut.py b/pygmt/src/grdcut.py index 353b82bc3a5..afb50dc9d95 100644 --- a/pygmt/src/grdcut.py +++ b/pygmt/src/grdcut.py @@ -8,12 +8,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( G="outgrid", R="region", diff --git a/pygmt/src/grdfill.py b/pygmt/src/grdfill.py index a642f631bff..da763f5da04 100644 --- a/pygmt/src/grdfill.py +++ b/pygmt/src/grdfill.py @@ -8,12 +8,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( A="mode", G="outgrid", diff --git a/pygmt/src/grdfilter.py b/pygmt/src/grdfilter.py index a9876a1bb35..8862b911ec3 100644 --- a/pygmt/src/grdfilter.py +++ b/pygmt/src/grdfilter.py @@ -8,12 +8,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( D="distance", F="filter", diff --git a/pygmt/src/grdimage.py b/pygmt/src/grdimage.py index 2d8f41ce703..2e636066d9c 100644 --- a/pygmt/src/grdimage.py +++ b/pygmt/src/grdimage.py @@ -2,10 +2,17 @@ grdimage - Plot grids or images. """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="img_out", B="frame", diff --git a/pygmt/src/grdinfo.py b/pygmt/src/grdinfo.py index 8e5dbd22e3e..92a503e4d4f 100644 --- a/pygmt/src/grdinfo.py +++ b/pygmt/src/grdinfo.py @@ -6,12 +6,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( C="per_column", D="tiles", diff --git a/pygmt/src/grdtrack.py b/pygmt/src/grdtrack.py index df1fef1c6d3..6886e19ce60 100644 --- a/pygmt/src/grdtrack.py +++ b/pygmt/src/grdtrack.py @@ -9,11 +9,13 @@ build_arg_string, data_kind, fmt_docstring, + insert_alias, use_alias, ) @fmt_docstring +@insert_alias @use_alias(V="verbose", f="coltypes", n="interpolation") def grdtrack(points, grid, newcolname=None, outfile=None, **kwargs): """ diff --git a/pygmt/src/grdview.py b/pygmt/src/grdview.py index 0810a2a06bd..65b344baeee 100644 --- a/pygmt/src/grdview.py +++ b/pygmt/src/grdview.py @@ -9,12 +9,14 @@ build_arg_string, data_kind, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/histogram.py b/pygmt/src/histogram.py index 1db34831bb6..9d6640def25 100644 --- a/pygmt/src/histogram.py +++ b/pygmt/src/histogram.py @@ -2,10 +2,17 @@ Histogram - Create a histogram """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="horizontal", B="frame", diff --git a/pygmt/src/image.py b/pygmt/src/image.py index 769f18835bc..47c12a5068f 100644 --- a/pygmt/src/image.py +++ b/pygmt/src/image.py @@ -2,10 +2,17 @@ image - Plot an image. """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/info.py b/pygmt/src/info.py index b1c9fe715bd..1107f604455 100644 --- a/pygmt/src/info.py +++ b/pygmt/src/info.py @@ -7,12 +7,14 @@ GMTTempFile, build_arg_string, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( C="per_column", I="spacing", diff --git a/pygmt/src/inset.py b/pygmt/src/inset.py index 45fabacce53..f9dd5c849e6 100644 --- a/pygmt/src/inset.py +++ b/pygmt/src/inset.py @@ -4,11 +4,18 @@ import contextlib from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring @contextlib.contextmanager +@insert_alias @use_alias(D="position", F="box", M="margin", N="no_clip", V="verbose") @kwargs_to_strings(D="sequence", M="sequence") def inset(self, **kwargs): diff --git a/pygmt/src/legend.py b/pygmt/src/legend.py index 6e30b65a22b..95bff3f51ab 100644 --- a/pygmt/src/legend.py +++ b/pygmt/src/legend.py @@ -8,12 +8,14 @@ build_arg_string, data_kind, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/logo.py b/pygmt/src/logo.py index 1101fd0aacb..e03ae8d2206 100644 --- a/pygmt/src/logo.py +++ b/pygmt/src/logo.py @@ -3,10 +3,17 @@ """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/makecpt.py b/pygmt/src/makecpt.py index 744f7158542..cf5c113ab94 100644 --- a/pygmt/src/makecpt.py +++ b/pygmt/src/makecpt.py @@ -3,10 +3,17 @@ """ from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="transparency", C="cmap", diff --git a/pygmt/src/meca.py b/pygmt/src/meca.py index cde18474165..3b2533e9c5f 100644 --- a/pygmt/src/meca.py +++ b/pygmt/src/meca.py @@ -11,6 +11,7 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @@ -95,6 +96,7 @@ def data_format_code(convention, component="full"): @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/plot.py b/pygmt/src/plot.py index 1bd6e314261..36764a206a7 100644 --- a/pygmt/src/plot.py +++ b/pygmt/src/plot.py @@ -8,6 +8,7 @@ data_kind, deprecate_parameter, fmt_docstring, + insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -15,6 +16,7 @@ @fmt_docstring +@insert_alias @use_alias( A="straight_line", B="frame", diff --git a/pygmt/src/plot3d.py b/pygmt/src/plot3d.py index 50d22e58660..0a875372566 100644 --- a/pygmt/src/plot3d.py +++ b/pygmt/src/plot3d.py @@ -8,6 +8,7 @@ data_kind, deprecate_parameter, fmt_docstring, + insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -15,6 +16,7 @@ @fmt_docstring +@insert_alias @use_alias( A="straight_line", B="frame", diff --git a/pygmt/src/rose.py b/pygmt/src/rose.py index dd67db6f721..923d244fe38 100644 --- a/pygmt/src/rose.py +++ b/pygmt/src/rose.py @@ -3,10 +3,17 @@ """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="sector", B="frame", diff --git a/pygmt/src/solar.py b/pygmt/src/solar.py index 20bcfe6dfd7..d4ad70a72a2 100644 --- a/pygmt/src/solar.py +++ b/pygmt/src/solar.py @@ -4,10 +4,17 @@ import pandas as pd from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( B="frame", G="fill", diff --git a/pygmt/src/subplot.py b/pygmt/src/subplot.py index 1e713afb189..709fd7603f1 100644 --- a/pygmt/src/subplot.py +++ b/pygmt/src/subplot.py @@ -8,6 +8,7 @@ from pygmt.helpers import ( build_arg_string, fmt_docstring, + insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -16,6 +17,7 @@ @fmt_docstring @contextlib.contextmanager +@insert_alias @use_alias( Ff="figsize", Fs="subsize", @@ -172,6 +174,7 @@ def subplot(self, nrows=1, ncols=1, **kwargs): @fmt_docstring @contextlib.contextmanager +@insert_alias @use_alias(A="fixedlabel", C="clearance", V="verbose") def set_panel(self, panel=None, **kwargs): r""" diff --git a/pygmt/src/surface.py b/pygmt/src/surface.py index 70bee5978f5..71e481fc649 100644 --- a/pygmt/src/surface.py +++ b/pygmt/src/surface.py @@ -11,12 +11,14 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring +@insert_alias @use_alias( I="spacing", R="region", diff --git a/pygmt/src/text.py b/pygmt/src/text.py index 950748c10ee..669e3709ff1 100644 --- a/pygmt/src/text.py +++ b/pygmt/src/text.py @@ -9,6 +9,7 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -16,6 +17,7 @@ @fmt_docstring +@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/velo.py b/pygmt/src/velo.py index 6196713b17b..155748764c9 100644 --- a/pygmt/src/velo.py +++ b/pygmt/src/velo.py @@ -5,10 +5,17 @@ import pandas as pd from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( A="vector", B="frame", diff --git a/pygmt/src/which.py b/pygmt/src/which.py index db1eb00c667..797d2c040c7 100644 --- a/pygmt/src/which.py +++ b/pygmt/src/which.py @@ -2,10 +2,17 @@ which - Find the full path to specified files. """ from pygmt.clib import Session -from pygmt.helpers import GMTTempFile, build_arg_string, fmt_docstring, use_alias +from pygmt.helpers import ( + GMTTempFile, + build_arg_string, + fmt_docstring, + insert_alias, + use_alias, +) @fmt_docstring +@insert_alias @use_alias(G="download", V="verbose") def which(fname, **kwargs): """ diff --git a/pygmt/src/wiggle.py b/pygmt/src/wiggle.py index fafa34f42e9..74c89dd2f66 100644 --- a/pygmt/src/wiggle.py +++ b/pygmt/src/wiggle.py @@ -2,10 +2,17 @@ wiggle - Plot z=f(x,y) anomalies along tracks. """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( B="frame", D="position", diff --git a/pygmt/src/x2sys_cross.py b/pygmt/src/x2sys_cross.py index dd9fef6c61d..4d10f8f3413 100644 --- a/pygmt/src/x2sys_cross.py +++ b/pygmt/src/x2sys_cross.py @@ -14,6 +14,7 @@ data_kind, dummy_context, fmt_docstring, + insert_alias, kwargs_to_strings, unique_name, use_alias, @@ -55,6 +56,7 @@ def tempfile_from_dftrack(track, suffix): @fmt_docstring +@insert_alias @use_alias( A="combitable", C="runtimes", diff --git a/pygmt/src/x2sys_init.py b/pygmt/src/x2sys_init.py index 150188eef1c..2b5fb92b2a0 100644 --- a/pygmt/src/x2sys_init.py +++ b/pygmt/src/x2sys_init.py @@ -2,10 +2,17 @@ x2sys_init - Initialize a new x2sys track database. """ from pygmt.clib import Session -from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias +from pygmt.helpers import ( + build_arg_string, + fmt_docstring, + insert_alias, + kwargs_to_strings, + use_alias, +) @fmt_docstring +@insert_alias @use_alias( D="fmtfile", E="suffix", From cd1284707d7fb3c7bea969fe3d57d8ccd8ac13f7 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Sun, 23 May 2021 10:47:46 -0400 Subject: [PATCH 07/10] Revert "Use insert_alias for all functions with use_alias" This reverts commit d3a046e2d1750aa03ed138dcfca9a9c633abd95f. --- pygmt/figure.py | 2 -- pygmt/src/basemap.py | 2 -- pygmt/src/coast.py | 2 -- pygmt/src/colorbar.py | 9 +-------- pygmt/src/contour.py | 2 -- pygmt/src/grd2cpt.py | 9 +-------- pygmt/src/grdclip.py | 2 -- pygmt/src/grdcontour.py | 9 +-------- pygmt/src/grdcut.py | 2 -- pygmt/src/grdfill.py | 2 -- pygmt/src/grdfilter.py | 2 -- pygmt/src/grdimage.py | 9 +-------- pygmt/src/grdinfo.py | 2 -- pygmt/src/grdtrack.py | 2 -- pygmt/src/grdview.py | 2 -- pygmt/src/histogram.py | 9 +-------- pygmt/src/image.py | 9 +-------- pygmt/src/info.py | 2 -- pygmt/src/inset.py | 9 +-------- pygmt/src/legend.py | 2 -- pygmt/src/logo.py | 9 +-------- pygmt/src/makecpt.py | 9 +-------- pygmt/src/meca.py | 2 -- pygmt/src/plot.py | 2 -- pygmt/src/plot3d.py | 2 -- pygmt/src/rose.py | 9 +-------- pygmt/src/solar.py | 9 +-------- pygmt/src/subplot.py | 3 --- pygmt/src/surface.py | 2 -- pygmt/src/text.py | 2 -- pygmt/src/velo.py | 9 +-------- pygmt/src/which.py | 9 +-------- pygmt/src/wiggle.py | 9 +-------- pygmt/src/x2sys_cross.py | 2 -- pygmt/src/x2sys_init.py | 9 +-------- 35 files changed, 15 insertions(+), 161 deletions(-) diff --git a/pygmt/figure.py b/pygmt/figure.py index 40d5369381f..e2b9089ccc7 100644 --- a/pygmt/figure.py +++ b/pygmt/figure.py @@ -16,7 +16,6 @@ from pygmt.helpers import ( build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, launch_external_viewer, unique_name, @@ -125,7 +124,6 @@ def region(self): return wesn @fmt_docstring - @insert_alias @use_alias( A="crop", C="gs_option", diff --git a/pygmt/src/basemap.py b/pygmt/src/basemap.py index 0cd5dc10d67..1a742ea4d59 100644 --- a/pygmt/src/basemap.py +++ b/pygmt/src/basemap.py @@ -8,14 +8,12 @@ args_in_kwargs, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/coast.py b/pygmt/src/coast.py index 25b4bc353de..f3e1b70c343 100644 --- a/pygmt/src/coast.py +++ b/pygmt/src/coast.py @@ -8,14 +8,12 @@ args_in_kwargs, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/colorbar.py b/pygmt/src/colorbar.py index e59226c7b3a..3fd25c8ee99 100644 --- a/pygmt/src/colorbar.py +++ b/pygmt/src/colorbar.py @@ -3,17 +3,10 @@ """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/contour.py b/pygmt/src/contour.py index d58fed3b581..8101416a5cd 100644 --- a/pygmt/src/contour.py +++ b/pygmt/src/contour.py @@ -9,14 +9,12 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( A="annotation", B="frame", diff --git a/pygmt/src/grd2cpt.py b/pygmt/src/grd2cpt.py index 78b8c2c0cde..5f5339436f7 100644 --- a/pygmt/src/grd2cpt.py +++ b/pygmt/src/grd2cpt.py @@ -4,17 +4,10 @@ from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="transparency", C="cmap", diff --git a/pygmt/src/grdclip.py b/pygmt/src/grdclip.py index 2b3b4a2f0ef..f0b5dbd7004 100644 --- a/pygmt/src/grdclip.py +++ b/pygmt/src/grdclip.py @@ -8,14 +8,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( G="outgrid", R="region", diff --git a/pygmt/src/grdcontour.py b/pygmt/src/grdcontour.py index 920259157b8..2384b59f360 100644 --- a/pygmt/src/grdcontour.py +++ b/pygmt/src/grdcontour.py @@ -2,17 +2,10 @@ grdcontour - Plot a contour figure. """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="annotation", B="frame", diff --git a/pygmt/src/grdcut.py b/pygmt/src/grdcut.py index afb50dc9d95..353b82bc3a5 100644 --- a/pygmt/src/grdcut.py +++ b/pygmt/src/grdcut.py @@ -8,14 +8,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( G="outgrid", R="region", diff --git a/pygmt/src/grdfill.py b/pygmt/src/grdfill.py index da763f5da04..a642f631bff 100644 --- a/pygmt/src/grdfill.py +++ b/pygmt/src/grdfill.py @@ -8,14 +8,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( A="mode", G="outgrid", diff --git a/pygmt/src/grdfilter.py b/pygmt/src/grdfilter.py index 8862b911ec3..a9876a1bb35 100644 --- a/pygmt/src/grdfilter.py +++ b/pygmt/src/grdfilter.py @@ -8,14 +8,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( D="distance", F="filter", diff --git a/pygmt/src/grdimage.py b/pygmt/src/grdimage.py index 2e636066d9c..2d8f41ce703 100644 --- a/pygmt/src/grdimage.py +++ b/pygmt/src/grdimage.py @@ -2,17 +2,10 @@ grdimage - Plot grids or images. """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="img_out", B="frame", diff --git a/pygmt/src/grdinfo.py b/pygmt/src/grdinfo.py index 92a503e4d4f..8e5dbd22e3e 100644 --- a/pygmt/src/grdinfo.py +++ b/pygmt/src/grdinfo.py @@ -6,14 +6,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( C="per_column", D="tiles", diff --git a/pygmt/src/grdtrack.py b/pygmt/src/grdtrack.py index 6886e19ce60..df1fef1c6d3 100644 --- a/pygmt/src/grdtrack.py +++ b/pygmt/src/grdtrack.py @@ -9,13 +9,11 @@ build_arg_string, data_kind, fmt_docstring, - insert_alias, use_alias, ) @fmt_docstring -@insert_alias @use_alias(V="verbose", f="coltypes", n="interpolation") def grdtrack(points, grid, newcolname=None, outfile=None, **kwargs): """ diff --git a/pygmt/src/grdview.py b/pygmt/src/grdview.py index 65b344baeee..0810a2a06bd 100644 --- a/pygmt/src/grdview.py +++ b/pygmt/src/grdview.py @@ -9,14 +9,12 @@ build_arg_string, data_kind, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/histogram.py b/pygmt/src/histogram.py index 9d6640def25..1db34831bb6 100644 --- a/pygmt/src/histogram.py +++ b/pygmt/src/histogram.py @@ -2,17 +2,10 @@ Histogram - Create a histogram """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="horizontal", B="frame", diff --git a/pygmt/src/image.py b/pygmt/src/image.py index 47c12a5068f..769f18835bc 100644 --- a/pygmt/src/image.py +++ b/pygmt/src/image.py @@ -2,17 +2,10 @@ image - Plot an image. """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/info.py b/pygmt/src/info.py index 1107f604455..b1c9fe715bd 100644 --- a/pygmt/src/info.py +++ b/pygmt/src/info.py @@ -7,14 +7,12 @@ GMTTempFile, build_arg_string, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( C="per_column", I="spacing", diff --git a/pygmt/src/inset.py b/pygmt/src/inset.py index f9dd5c849e6..45fabacce53 100644 --- a/pygmt/src/inset.py +++ b/pygmt/src/inset.py @@ -4,18 +4,11 @@ import contextlib from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring @contextlib.contextmanager -@insert_alias @use_alias(D="position", F="box", M="margin", N="no_clip", V="verbose") @kwargs_to_strings(D="sequence", M="sequence") def inset(self, **kwargs): diff --git a/pygmt/src/legend.py b/pygmt/src/legend.py index 95bff3f51ab..6e30b65a22b 100644 --- a/pygmt/src/legend.py +++ b/pygmt/src/legend.py @@ -8,14 +8,12 @@ build_arg_string, data_kind, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/logo.py b/pygmt/src/logo.py index e03ae8d2206..1101fd0aacb 100644 --- a/pygmt/src/logo.py +++ b/pygmt/src/logo.py @@ -3,17 +3,10 @@ """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/makecpt.py b/pygmt/src/makecpt.py index cf5c113ab94..744f7158542 100644 --- a/pygmt/src/makecpt.py +++ b/pygmt/src/makecpt.py @@ -3,17 +3,10 @@ """ from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="transparency", C="cmap", diff --git a/pygmt/src/meca.py b/pygmt/src/meca.py index 3b2533e9c5f..cde18474165 100644 --- a/pygmt/src/meca.py +++ b/pygmt/src/meca.py @@ -11,7 +11,6 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @@ -96,7 +95,6 @@ def data_format_code(convention, component="full"): @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/plot.py b/pygmt/src/plot.py index 36764a206a7..1bd6e314261 100644 --- a/pygmt/src/plot.py +++ b/pygmt/src/plot.py @@ -8,7 +8,6 @@ data_kind, deprecate_parameter, fmt_docstring, - insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -16,7 +15,6 @@ @fmt_docstring -@insert_alias @use_alias( A="straight_line", B="frame", diff --git a/pygmt/src/plot3d.py b/pygmt/src/plot3d.py index 0a875372566..50d22e58660 100644 --- a/pygmt/src/plot3d.py +++ b/pygmt/src/plot3d.py @@ -8,7 +8,6 @@ data_kind, deprecate_parameter, fmt_docstring, - insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -16,7 +15,6 @@ @fmt_docstring -@insert_alias @use_alias( A="straight_line", B="frame", diff --git a/pygmt/src/rose.py b/pygmt/src/rose.py index 923d244fe38..dd67db6f721 100644 --- a/pygmt/src/rose.py +++ b/pygmt/src/rose.py @@ -3,17 +3,10 @@ """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="sector", B="frame", diff --git a/pygmt/src/solar.py b/pygmt/src/solar.py index d4ad70a72a2..20bcfe6dfd7 100644 --- a/pygmt/src/solar.py +++ b/pygmt/src/solar.py @@ -4,17 +4,10 @@ import pandas as pd from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( B="frame", G="fill", diff --git a/pygmt/src/subplot.py b/pygmt/src/subplot.py index 709fd7603f1..1e713afb189 100644 --- a/pygmt/src/subplot.py +++ b/pygmt/src/subplot.py @@ -8,7 +8,6 @@ from pygmt.helpers import ( build_arg_string, fmt_docstring, - insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -17,7 +16,6 @@ @fmt_docstring @contextlib.contextmanager -@insert_alias @use_alias( Ff="figsize", Fs="subsize", @@ -174,7 +172,6 @@ def subplot(self, nrows=1, ncols=1, **kwargs): @fmt_docstring @contextlib.contextmanager -@insert_alias @use_alias(A="fixedlabel", C="clearance", V="verbose") def set_panel(self, panel=None, **kwargs): r""" diff --git a/pygmt/src/surface.py b/pygmt/src/surface.py index 71e481fc649..70bee5978f5 100644 --- a/pygmt/src/surface.py +++ b/pygmt/src/surface.py @@ -11,14 +11,12 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @fmt_docstring -@insert_alias @use_alias( I="spacing", R="region", diff --git a/pygmt/src/text.py b/pygmt/src/text.py index 669e3709ff1..950748c10ee 100644 --- a/pygmt/src/text.py +++ b/pygmt/src/text.py @@ -9,7 +9,6 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, is_nonstr_iter, kwargs_to_strings, use_alias, @@ -17,7 +16,6 @@ @fmt_docstring -@insert_alias @use_alias( R="region", J="projection", diff --git a/pygmt/src/velo.py b/pygmt/src/velo.py index 155748764c9..6196713b17b 100644 --- a/pygmt/src/velo.py +++ b/pygmt/src/velo.py @@ -5,17 +5,10 @@ import pandas as pd from pygmt.clib import Session from pygmt.exceptions import GMTInvalidInput -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( A="vector", B="frame", diff --git a/pygmt/src/which.py b/pygmt/src/which.py index 797d2c040c7..db1eb00c667 100644 --- a/pygmt/src/which.py +++ b/pygmt/src/which.py @@ -2,17 +2,10 @@ which - Find the full path to specified files. """ from pygmt.clib import Session -from pygmt.helpers import ( - GMTTempFile, - build_arg_string, - fmt_docstring, - insert_alias, - use_alias, -) +from pygmt.helpers import GMTTempFile, build_arg_string, fmt_docstring, use_alias @fmt_docstring -@insert_alias @use_alias(G="download", V="verbose") def which(fname, **kwargs): """ diff --git a/pygmt/src/wiggle.py b/pygmt/src/wiggle.py index 74c89dd2f66..fafa34f42e9 100644 --- a/pygmt/src/wiggle.py +++ b/pygmt/src/wiggle.py @@ -2,17 +2,10 @@ wiggle - Plot z=f(x,y) anomalies along tracks. """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( B="frame", D="position", diff --git a/pygmt/src/x2sys_cross.py b/pygmt/src/x2sys_cross.py index 4d10f8f3413..dd9fef6c61d 100644 --- a/pygmt/src/x2sys_cross.py +++ b/pygmt/src/x2sys_cross.py @@ -14,7 +14,6 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, kwargs_to_strings, unique_name, use_alias, @@ -56,7 +55,6 @@ def tempfile_from_dftrack(track, suffix): @fmt_docstring -@insert_alias @use_alias( A="combitable", C="runtimes", diff --git a/pygmt/src/x2sys_init.py b/pygmt/src/x2sys_init.py index 2b5fb92b2a0..150188eef1c 100644 --- a/pygmt/src/x2sys_init.py +++ b/pygmt/src/x2sys_init.py @@ -2,17 +2,10 @@ x2sys_init - Initialize a new x2sys track database. """ from pygmt.clib import Session -from pygmt.helpers import ( - build_arg_string, - fmt_docstring, - insert_alias, - kwargs_to_strings, - use_alias, -) +from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias @fmt_docstring -@insert_alias @use_alias( D="fmtfile", E="suffix", From dc2570760c09b6480e7072036ba8d344cd143699 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Sun, 23 May 2021 11:03:07 -0400 Subject: [PATCH 08/10] Call insert_alias from inside use_alias --- pygmt/helpers/decorators.py | 50 +++++++++++++++++++------------------ pygmt/src/blockm.py | 3 --- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 9345c38b423..7d95daf0a0f 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -262,6 +262,30 @@ def fmt_docstring(module_func): return module_func +def insert_alias(module_func): + """ + Decorator insertings aliases into the signature of a method. + """ + + # Get current signature and parameters + sig = signature(module_func) + wrapped_params = list(sig.parameters.values()) + kwargs_param = wrapped_params.pop(-1) + # Add new parameters from aliases + for alias in module_func.aliases.values(): + if alias not in sig.parameters.keys(): + new_param = Parameter( + alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None + ) + wrapped_params = wrapped_params + [new_param] + all_params = wrapped_params + [kwargs_param] + # Update method signature + sig_new = sig.replace(parameters=all_params) + module_func.__signature__ = sig_new + + return module_func + + def use_alias(**aliases): """ Decorator to add aliases to keyword arguments of a function. @@ -323,35 +347,13 @@ def new_module(*args, **kwargs): new_module.aliases = aliases + new_module = insert_alias(new_module) + return new_module return alias_decorator -def insert_alias(module_func): - """ - Decorator insertings aliases into the signature of a method. - """ - - # Get current signature and parameters - sig = signature(module_func) - wrapped_params = list(sig.parameters.values()) - kwargs_param = wrapped_params.pop(-1) - # Add new parameters from aliases - for alias in module_func.aliases.values(): - if alias not in sig.parameters.keys(): - new_param = Parameter( - alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None - ) - wrapped_params = wrapped_params + [new_param] - all_params = wrapped_params + [kwargs_param] - # Update method signature - sig_new = sig.replace(parameters=all_params) - module_func.__signature__ = sig_new - - return module_func - - def kwargs_to_strings(**conversions): """ Decorator to convert given keyword arguments to strings. diff --git a/pygmt/src/blockm.py b/pygmt/src/blockm.py index f7b123074ad..a9cf45f4616 100644 --- a/pygmt/src/blockm.py +++ b/pygmt/src/blockm.py @@ -10,7 +10,6 @@ data_kind, dummy_context, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) @@ -72,7 +71,6 @@ def _blockm(block_method, table, outfile, **kwargs): @fmt_docstring -@insert_alias @use_alias( I="spacing", R="region", @@ -134,7 +132,6 @@ def blockmean(table, outfile=None, **kwargs): @fmt_docstring -@insert_alias @use_alias( I="spacing", R="region", From f37faeaf519e7cbc6be9a5f5cd6b5086b1c1f500 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Sun, 23 May 2021 15:15:30 -0400 Subject: [PATCH 09/10] Make inserted alias parameters KEYWORD_ONLY --- pygmt/helpers/decorators.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 7d95daf0a0f..2d210e65941 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -262,7 +262,7 @@ def fmt_docstring(module_func): return module_func -def insert_alias(module_func): +def insert_alias(module_func, default_value=None): """ Decorator insertings aliases into the signature of a method. """ @@ -275,7 +275,7 @@ def insert_alias(module_func): for alias in module_func.aliases.values(): if alias not in sig.parameters.keys(): new_param = Parameter( - alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None + alias, kind=Parameter.KEYWORD_ONLY, default=default_value ) wrapped_params = wrapped_params + [new_param] all_params = wrapped_params + [kwargs_param] From 3c63ecca114032f77b4fb6180fac3c252a7bc7b0 Mon Sep 17 00:00:00 2001 From: Meghan Jones Date: Tue, 15 Jun 2021 21:15:04 -0400 Subject: [PATCH 10/10] Apply suggestions from code review Co-authored-by: Wei Ji <23487320+weiji14@users.noreply.github.com> --- pygmt/helpers/__init__.py | 1 - pygmt/helpers/decorators.py | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pygmt/helpers/__init__.py b/pygmt/helpers/__init__.py index 6e3370d61f5..4b9c4051e80 100644 --- a/pygmt/helpers/__init__.py +++ b/pygmt/helpers/__init__.py @@ -4,7 +4,6 @@ from pygmt.helpers.decorators import ( deprecate_parameter, fmt_docstring, - insert_alias, kwargs_to_strings, use_alias, ) diff --git a/pygmt/helpers/decorators.py b/pygmt/helpers/decorators.py index 1500b8608ac..bec2a06ec9e 100644 --- a/pygmt/helpers/decorators.py +++ b/pygmt/helpers/decorators.py @@ -323,9 +323,9 @@ def fmt_docstring(module_func): return module_func -def insert_alias(module_func, default_value=None): +def _insert_alias(module_func, default_value=None): """ - Decorator insertings aliases into the signature of a method. + Function to insert PyGMT long aliases into the signature of a method. """ # Get current signature and parameters @@ -408,7 +408,7 @@ def new_module(*args, **kwargs): new_module.aliases = aliases - new_module = insert_alias(new_module) + new_module = _insert_alias(new_module) return new_module