Skip to content

Commit dc25707

Browse files
author
Meghan Jones
committed
Call insert_alias from inside use_alias
1 parent cd12847 commit dc25707

File tree

2 files changed

+26
-27
lines changed

2 files changed

+26
-27
lines changed

pygmt/helpers/decorators.py

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,30 @@ def fmt_docstring(module_func):
262262
return module_func
263263

264264

265+
def insert_alias(module_func):
266+
"""
267+
Decorator insertings aliases into the signature of a method.
268+
"""
269+
270+
# Get current signature and parameters
271+
sig = signature(module_func)
272+
wrapped_params = list(sig.parameters.values())
273+
kwargs_param = wrapped_params.pop(-1)
274+
# Add new parameters from aliases
275+
for alias in module_func.aliases.values():
276+
if alias not in sig.parameters.keys():
277+
new_param = Parameter(
278+
alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None
279+
)
280+
wrapped_params = wrapped_params + [new_param]
281+
all_params = wrapped_params + [kwargs_param]
282+
# Update method signature
283+
sig_new = sig.replace(parameters=all_params)
284+
module_func.__signature__ = sig_new
285+
286+
return module_func
287+
288+
265289
def use_alias(**aliases):
266290
"""
267291
Decorator to add aliases to keyword arguments of a function.
@@ -323,35 +347,13 @@ def new_module(*args, **kwargs):
323347

324348
new_module.aliases = aliases
325349

350+
new_module = insert_alias(new_module)
351+
326352
return new_module
327353

328354
return alias_decorator
329355

330356

331-
def insert_alias(module_func):
332-
"""
333-
Decorator insertings aliases into the signature of a method.
334-
"""
335-
336-
# Get current signature and parameters
337-
sig = signature(module_func)
338-
wrapped_params = list(sig.parameters.values())
339-
kwargs_param = wrapped_params.pop(-1)
340-
# Add new parameters from aliases
341-
for alias in module_func.aliases.values():
342-
if alias not in sig.parameters.keys():
343-
new_param = Parameter(
344-
alias, kind=Parameter.POSITIONAL_OR_KEYWORD, default=None
345-
)
346-
wrapped_params = wrapped_params + [new_param]
347-
all_params = wrapped_params + [kwargs_param]
348-
# Update method signature
349-
sig_new = sig.replace(parameters=all_params)
350-
module_func.__signature__ = sig_new
351-
352-
return module_func
353-
354-
355357
def kwargs_to_strings(**conversions):
356358
"""
357359
Decorator to convert given keyword arguments to strings.

pygmt/src/blockm.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
data_kind,
1111
dummy_context,
1212
fmt_docstring,
13-
insert_alias,
1413
kwargs_to_strings,
1514
use_alias,
1615
)
@@ -72,7 +71,6 @@ def _blockm(block_method, table, outfile, **kwargs):
7271

7372

7473
@fmt_docstring
75-
@insert_alias
7674
@use_alias(
7775
I="spacing",
7876
R="region",
@@ -134,7 +132,6 @@ def blockmean(table, outfile=None, **kwargs):
134132

135133

136134
@fmt_docstring
137-
@insert_alias
138135
@use_alias(
139136
I="spacing",
140137
R="region",

0 commit comments

Comments
 (0)