Skip to content

Commit 9b79411

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

File tree

15 files changed

+118
-79
lines changed

15 files changed

+118
-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: 19 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,15 @@ def _blockm(
8482
o="outcols",
8583
w="wrap",
8684
)
87-
@kwargs_to_strings(I="sequence", o="sequence_comma")
85+
@kwargs_to_strings(o="sequence_comma")
8886
def blockmean(
8987
data: PathLike | TableLike | None = None,
9088
x=None,
9189
y=None,
9290
z=None,
9391
output_type: Literal["pandas", "numpy", "file"] = "pandas",
9492
outfile: PathLike | None = None,
93+
spacing: Sequence[float | str] | None = None,
9594
region: Sequence[float | str] | str | None = None,
9695
registration: Literal["gridline", "pixel"] | bool = False,
9796
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -114,6 +113,7 @@ def blockmean(
114113
Full GMT docs at :gmt-docs:`blockmean.html`.
115114
116115
{aliases}
116+
- I = spacing
117117
- R = region
118118
- V = verbose
119119
- i = incols
@@ -169,7 +169,9 @@ def blockmean(
169169
>>> # Calculate block mean values within 5 by 5 arc-minute bins
170170
>>> data_bmean = pygmt.blockmean(data=data, region=[245, 255, 20, 30], spacing="5m")
171171
"""
172-
aliasdict = AliasSystem().add_common(
172+
aliasdict = AliasSystem(
173+
I=Alias(spacing, name="spacing", sep="/", size=2),
174+
).add_common(
173175
R=region,
174176
V=verbose,
175177
i=incols,
@@ -191,7 +193,6 @@ def blockmean(
191193

192194
@fmt_docstring
193195
@use_alias(
194-
I="spacing",
195196
a="aspatial",
196197
b="binary",
197198
d="nodata",
@@ -201,14 +202,15 @@ def blockmean(
201202
o="outcols",
202203
w="wrap",
203204
)
204-
@kwargs_to_strings(I="sequence", o="sequence_comma")
205+
@kwargs_to_strings(o="sequence_comma")
205206
def blockmedian(
206207
data: PathLike | TableLike | None = None,
207208
x=None,
208209
y=None,
209210
z=None,
210211
output_type: Literal["pandas", "numpy", "file"] = "pandas",
211212
outfile: PathLike | None = None,
213+
spacing: Sequence[float | str] | None = None,
212214
region: Sequence[float | str] | str | None = None,
213215
registration: Literal["gridline", "pixel"] | bool = False,
214216
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -231,6 +233,7 @@ def blockmedian(
231233
Full GMT docs at :gmt-docs:`blockmedian.html`.
232234
233235
{aliases}
236+
- I = spacing
234237
- R = region
235238
- V = verbose
236239
- i = incols
@@ -280,7 +283,9 @@ def blockmedian(
280283
... data=data, region=[245, 255, 20, 30], spacing="5m"
281284
... )
282285
"""
283-
aliasdict = AliasSystem().add_common(
286+
aliasdict = AliasSystem(
287+
I=Alias(spacing, name="spacing", sep="/", size=2),
288+
).add_common(
284289
R=region,
285290
V=verbose,
286291
i=incols,
@@ -302,7 +307,6 @@ def blockmedian(
302307

303308
@fmt_docstring
304309
@use_alias(
305-
I="spacing",
306310
a="aspatial",
307311
b="binary",
308312
d="nodata",
@@ -312,14 +316,15 @@ def blockmedian(
312316
o="outcols",
313317
w="wrap",
314318
)
315-
@kwargs_to_strings(I="sequence", o="sequence_comma")
319+
@kwargs_to_strings(o="sequence_comma")
316320
def blockmode(
317321
data: PathLike | TableLike | None = None,
318322
x=None,
319323
y=None,
320324
z=None,
321325
output_type: Literal["pandas", "numpy", "file"] = "pandas",
322326
outfile: PathLike | None = None,
327+
spacing: Sequence[float | str] | None = None,
323328
region: Sequence[float | str] | str | None = None,
324329
registration: Literal["gridline", "pixel"] | bool = False,
325330
verbose: Literal["quiet", "error", "warning", "timing", "info", "compat", "debug"]
@@ -342,6 +347,7 @@ def blockmode(
342347
Full GMT docs at :gmt-docs:`blockmode.html`.
343348
344349
{aliases}
350+
- I = spacing
345351
- R = region
346352
- V = verbose
347353
- i = incols
@@ -389,7 +395,9 @@ def blockmode(
389395
>>> # Calculate block mode values within 5 by 5 arc-minute bins
390396
>>> data_bmode = pygmt.blockmode(data=data, region=[245, 255, 20, 30], spacing="5m")
391397
"""
392-
aliasdict = AliasSystem().add_common(
398+
aliasdict = AliasSystem(
399+
I=Alias(spacing, name="spacing", sep="/", size=2),
400+
).add_common(
393401
R=region,
394402
V=verbose,
395403
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)