Skip to content

Commit 512a55f

Browse files
committed
AliasSystem: Migrate the 'spacing' parameter to the new alias system
1 parent 3e2b7dd commit 512a55f

File tree

15 files changed

+115
-79
lines changed

15 files changed

+115
-79
lines changed

pygmt/src/binstats.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,23 @@
99
from pygmt._typing import PathLike, TableLike
1010
from pygmt.alias import Alias, AliasSystem
1111
from pygmt.clib import Session
12-
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
12+
from pygmt.helpers import build_arg_list, fmt_docstring, use_alias
1313

1414

1515
@fmt_docstring
1616
@use_alias(
1717
E="empty",
18-
I="spacing",
1918
N="normalize",
2019
S="search_radius",
2120
W="weight",
2221
a="aspatial",
2322
b="binary",
2423
h="header",
2524
)
26-
@kwargs_to_strings(I="sequence")
2725
def binstats(
2826
data: PathLike | TableLike,
2927
outgrid: PathLike | None = None,
28+
spacing: Sequence[float | str] | None = None,
3029
statistic: Literal[
3130
"mean",
3231
"mad",
@@ -68,6 +67,7 @@ def binstats(
6867
6968
{aliases}
7069
- C = statistic
70+
- I = spacing
7171
- R = region
7272
- V = verbose
7373
- i = incols
@@ -157,6 +157,7 @@ def binstats(
157157
"sum": "z",
158158
},
159159
),
160+
I=Alias(spacing, name="spacing", sep="/", size=2),
160161
).add_common(
161162
R=region,
162163
V=verbose,

pygmt/src/blockm.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@
88
import numpy as np
99
import pandas as pd
1010
from pygmt._typing import PathLike, TableLike
11-
from pygmt.alias import AliasSystem
11+
from pygmt.alias import Alias, AliasSystem
1212
from pygmt.clib import Session
1313
from pygmt.helpers import (
1414
build_arg_list,
1515
fmt_docstring,
16-
kwargs_to_strings,
1716
use_alias,
1817
validate_output_table_type,
1918
)
@@ -73,7 +72,6 @@ def _blockm(
7372

7473
@fmt_docstring
7574
@use_alias(
76-
I="spacing",
7775
S="summary",
7876
a="aspatial",
7977
b="binary",
@@ -84,14 +82,14 @@ def _blockm(
8482
o="outcols",
8583
w="wrap",
8684
)
87-
@kwargs_to_strings(I="sequence", o="sequence_comma")
8885
def blockmean(
8986
data: PathLike | TableLike | None = None,
9087
x=None,
9188
y=None,
9289
z=None,
9390
output_type: Literal["pandas", "numpy", "file"] = "pandas",
9491
outfile: PathLike | None = None,
92+
spacing: Sequence[float | str] | None = None,
9593
region: Sequence[float | str] | str | None = None,
9694
registration: Literal["gridline", "pixel"] | bool = False,
9795
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -114,6 +112,7 @@ def blockmean(
114112
Full GMT docs at :gmt-docs:`blockmean.html`.
115113
116114
{aliases}
115+
- I = spacing
117116
- R = region
118117
- V = verbose
119118
- i = incols
@@ -169,7 +168,9 @@ def blockmean(
169168
>>> # Calculate block mean values within 5 by 5 arc-minute bins
170169
>>> data_bmean = pygmt.blockmean(data=data, region=[245, 255, 20, 30], spacing="5m")
171170
"""
172-
aliasdict = AliasSystem().add_common(
171+
aliasdict = AliasSystem(
172+
I=Alias(spacing, name="spacing", sep="/", size=2),
173+
).add_common(
173174
R=region,
174175
V=verbose,
175176
i=incols,
@@ -191,7 +192,6 @@ def blockmean(
191192

192193
@fmt_docstring
193194
@use_alias(
194-
I="spacing",
195195
a="aspatial",
196196
b="binary",
197197
d="nodata",
@@ -201,14 +201,14 @@ def blockmean(
201201
o="outcols",
202202
w="wrap",
203203
)
204-
@kwargs_to_strings(I="sequence", o="sequence_comma")
205204
def blockmedian(
206205
data: PathLike | TableLike | None = None,
207206
x=None,
208207
y=None,
209208
z=None,
210209
output_type: Literal["pandas", "numpy", "file"] = "pandas",
211210
outfile: PathLike | None = None,
211+
spacing: Sequence[float | str] | None = None,
212212
region: Sequence[float | str] | str | None = None,
213213
registration: Literal["gridline", "pixel"] | bool = False,
214214
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -231,6 +231,7 @@ def blockmedian(
231231
Full GMT docs at :gmt-docs:`blockmedian.html`.
232232
233233
{aliases}
234+
- I = spacing
234235
- R = region
235236
- V = verbose
236237
- i = incols
@@ -280,7 +281,9 @@ def blockmedian(
280281
... data=data, region=[245, 255, 20, 30], spacing="5m"
281282
... )
282283
"""
283-
aliasdict = AliasSystem().add_common(
284+
aliasdict = AliasSystem(
285+
I=Alias(spacing, name="spacing", sep="/", size=2),
286+
).add_common(
284287
R=region,
285288
V=verbose,
286289
i=incols,
@@ -302,7 +305,6 @@ def blockmedian(
302305

303306
@fmt_docstring
304307
@use_alias(
305-
I="spacing",
306308
a="aspatial",
307309
b="binary",
308310
d="nodata",
@@ -312,14 +314,14 @@ def blockmedian(
312314
o="outcols",
313315
w="wrap",
314316
)
315-
@kwargs_to_strings(I="sequence", o="sequence_comma")
316317
def blockmode(
317318
data: PathLike | TableLike | None = None,
318319
x=None,
319320
y=None,
320321
z=None,
321322
output_type: Literal["pandas", "numpy", "file"] = "pandas",
322323
outfile: PathLike | None = None,
324+
spacing: Sequence[float | str] | None = None,
323325
region: Sequence[float | str] | str | None = None,
324326
registration: Literal["gridline", "pixel"] | bool = False,
325327
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -342,6 +344,7 @@ def blockmode(
342344
Full GMT docs at :gmt-docs:`blockmode.html`.
343345
344346
{aliases}
347+
- I = spacing
345348
- R = region
346349
- V = verbose
347350
- i = incols
@@ -389,7 +392,9 @@ def blockmode(
389392
>>> # Calculate block mode values within 5 by 5 arc-minute bins
390393
>>> data_bmode = pygmt.blockmode(data=data, region=[245, 255, 20, 30], spacing="5m")
391394
"""
392-
aliasdict = AliasSystem().add_common(
395+
aliasdict = AliasSystem(
396+
I=Alias(spacing, name="spacing", sep="/", size=2),
397+
).add_common(
393398
R=region,
394399
V=verbose,
395400
i=incols,

pygmt/src/dimfilter.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@
77

88
import xarray as xr
99
from pygmt._typing import PathLike
10-
from pygmt.alias import AliasSystem
10+
from pygmt.alias import Alias, AliasSystem
1111
from pygmt.clib import Session
1212
from pygmt.exceptions import GMTInvalidInput
13-
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
13+
from pygmt.helpers import build_arg_list, fmt_docstring, use_alias
1414

1515
__doctest_skip__ = ["dimfilter"]
1616

1717

1818
@fmt_docstring
19-
@use_alias(D="distance", F="filter", I="spacing", N="sectors")
20-
@kwargs_to_strings(I="sequence")
19+
@use_alias(D="distance", F="filter", N="sectors")
2120
def dimfilter(
2221
grid: PathLike | xr.DataArray,
2322
outgrid: PathLike | None = None,
23+
spacing: Sequence[float | str] | None = None,
2424
region: Sequence[float | str] | str | None = None,
2525
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
2626
| bool = False,
@@ -48,6 +48,7 @@ def dimfilter(
4848
Full GMT docs at :gmt-docs:`dimfilter.html`.
4949
5050
{aliases}
51+
- I = spacing
5152
- R = region
5253
- V = verbose
5354
@@ -148,7 +149,9 @@ def dimfilter(
148149
)
149150
raise GMTInvalidInput(msg)
150151

151-
aliasdict = AliasSystem().add_common(
152+
aliasdict = AliasSystem(
153+
I=Alias(spacing, name="spacing", sep="/", size=2),
154+
).add_common(
152155
R=region,
153156
V=verbose,
154157
)

pygmt/src/grdfilter.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,16 @@
99
from pygmt._typing import PathLike
1010
from pygmt.alias import Alias, AliasSystem
1111
from pygmt.clib import Session
12-
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
12+
from pygmt.helpers import build_arg_list, fmt_docstring, use_alias
1313

1414

1515
@fmt_docstring
16-
@use_alias(D="distance", F="filter", I="spacing", N="nans", f="coltypes")
17-
@kwargs_to_strings(I="sequence")
16+
@use_alias(D="distance", F="filter", N="nans", f="coltypes")
1817
def grdfilter(
1918
grid: PathLike | xr.DataArray,
2019
outgrid: PathLike | None = None,
2120
toggle: bool = False,
21+
spacing: Sequence[float | str] | None = None,
2222
region: Sequence[float | str] | str | None = None,
2323
registration: Literal["gridline", "pixel"] | bool = False,
2424
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -42,6 +42,7 @@ def grdfilter(
4242
Full GMT docs at :gmt-docs:`grdfilter.html`.
4343
4444
{aliases}
45+
- I = spacing
4546
- R = region
4647
- T = toggle
4748
- V = verbose
@@ -136,6 +137,7 @@ def grdfilter(
136137
>>> smooth_field = pygmt.grdfilter(grid=grid, filter="g600", distance="4")
137138
"""
138139
aliasdict = AliasSystem(
140+
I=Alias(spacing, name="spacing", sep="/", size=2),
139141
T=Alias(toggle, name="toggle"),
140142
).add_common(
141143
R=region,

pygmt/src/grdlandmask.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
from pygmt.alias import Alias, AliasSystem
1111
from pygmt.clib import Session
1212
from pygmt.exceptions import GMTInvalidInput
13-
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
13+
from pygmt.helpers import build_arg_list, fmt_docstring, use_alias
1414

1515
__doctest_skip__ = ["grdlandmask"]
1616

1717

1818
@fmt_docstring
19-
@use_alias(A="area_thresh", I="spacing")
20-
@kwargs_to_strings(I="sequence")
19+
@use_alias(A="area_thresh")
2120
def grdlandmask(
2221
outgrid: PathLike | None = None,
22+
spacing: Sequence[float | str] | None = None,
2323
maskvalues: Sequence[float] | None = None,
2424
bordervalues: bool | float | Sequence[float] | None = None,
2525
resolution: Literal[
@@ -46,6 +46,7 @@ def grdlandmask(
4646
{aliases}
4747
- D = resolution
4848
- E = bordervalues
49+
- I = spacing
4950
- N = maskvalues
5051
- R = region
5152
- V = verbose
@@ -127,6 +128,7 @@ def grdlandmask(
127128
"crude": "c",
128129
},
129130
),
131+
I=Alias(spacing, name="spacing", sep="/", size=2),
130132
N=Alias(maskvalues, name="maskvalues", sep="/", size=(2, 5)),
131133
E=Alias(bordervalues, name="bordervalues", sep="/", size=4),
132134
).add_common(

pygmt/src/grdsample.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
build_arg_list,
1515
deprecate_parameter,
1616
fmt_docstring,
17-
kwargs_to_strings,
1817
use_alias,
1918
)
2019

@@ -24,12 +23,12 @@
2423
# TODO(PyGMT>=0.21.0): Remove the deprecated "translate" parameter.
2524
@fmt_docstring
2625
@deprecate_parameter("translate", "toggle", "v0.18.0", remove_version="v0.21.0")
27-
@use_alias(I="spacing", f="coltypes", n="interpolation")
28-
@kwargs_to_strings(I="sequence")
26+
@use_alias(f="coltypes", n="interpolation")
2927
def grdsample(
3028
grid: PathLike | xr.DataArray,
3129
outgrid: PathLike | None = None,
3230
toggle: bool = False,
31+
spacing: Sequence[float | str] | None = None,
3332
region: Sequence[float | str] | str | None = None,
3433
registration: Literal["gridline", "pixel"] | bool = False,
3534
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -56,6 +55,7 @@ def grdsample(
5655
Full GMT docs at :gmt-docs:`grdsample.html`.
5756
5857
{aliases}
58+
- I = spacing
5959
- R = region
6060
- V = verbose
6161
- r = registration
@@ -105,6 +105,7 @@ def grdsample(
105105
raise GMTInvalidInput(msg)
106106

107107
aliasdict = AliasSystem(
108+
I=Alias(spacing, name=spacing),
108109
T=Alias(toggle, name="toggle"),
109110
).add_common(
110111
R=region,

pygmt/src/info.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,21 @@
77

88
import numpy as np
99
from pygmt._typing import PathLike, TableLike
10-
from pygmt.alias import AliasSystem
10+
from pygmt.alias import Alias, AliasSystem
1111
from pygmt.clib import Session
1212
from pygmt.helpers import (
1313
GMTTempFile,
1414
build_arg_list,
1515
fmt_docstring,
16-
kwargs_to_strings,
1716
use_alias,
1817
)
1918

2019

2120
@fmt_docstring
22-
@use_alias(
23-
C="per_column", I="spacing", T="nearest_multiple", a="aspatial", f="coltypes"
24-
)
25-
@kwargs_to_strings(I="sequence")
21+
@use_alias(C="per_column", T="nearest_multiple", a="aspatial", f="coltypes")
2622
def info(
2723
data: PathLike | TableLike,
24+
spacing: Sequence[float | str] | None = None,
2825
registration: Literal["gridline", "pixel"] | bool = False,
2926
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
3027
| bool = False,
@@ -50,6 +47,7 @@ def info(
5047
Full GMT docs at :gmt-docs:`gmtinfo.html`.
5148
5249
{aliases}
50+
- I = spacing
5351
- V = verbose
5452
- i = incols
5553
- r = registration
@@ -88,7 +86,9 @@ def info(
8886
- :class:`numpy.ndarray` if either of the above parameters are used.
8987
- str if none of the above parameters are used.
9088
"""
91-
aliasdict = AliasSystem().add_common(
89+
aliasdict = AliasSystem(
90+
I=Alias(spacing, name="spacing", sep="/", size=2),
91+
).add_common(
9292
V=verbose,
9393
i=incols,
9494
r=registration,

0 commit comments

Comments
 (0)