Skip to content

Commit 430c834

Browse files
authored
GMTParameterError: Pass a list rather than a set to ensure parameter order do not change (#4390)
1 parent 0e4c7eb commit 430c834

20 files changed

+30
-30
lines changed

pygmt/exceptions.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,22 +139,22 @@ class GMTParameterError(GMTError):
139139
Parameters
140140
----------
141141
required
142-
Name or a set of names of required parameters.
142+
Name or a collection of names of required parameters.
143143
at_least_one
144-
A set of parameter names, of which at least one must be specified.
144+
A collection of parameter names, of which at least one must be specified.
145145
at_most_one
146-
A set of mutually exclusive parameter names, of which at most one can be
147-
specified.
146+
A collection of mutually exclusive parameter names, of which at most one can be
147+
specified.
148148
reason
149149
Detailed reason why the parameters are invalid.
150150
"""
151151

152152
def __init__(
153153
self,
154154
*,
155-
required: str | set[str] | None = None,
156-
at_least_one: set[str] | None = None,
157-
at_most_one: set[str] | None = None,
155+
required: str | Iterable[str] | None = None,
156+
at_least_one: Iterable[str] | None = None,
157+
at_most_one: Iterable[str] | None = None,
158158
reason: str | None = None,
159159
):
160160
msg = []

pygmt/helpers/decorators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ def new_module(*args, **kwargs):
550550
for short_param, long_alias in aliases.items():
551551
if long_alias in kwargs and short_param in kwargs:
552552
raise GMTParameterError(
553-
at_most_one={long_alias, short_param},
553+
at_most_one=[long_alias, short_param],
554554
reason=f"Long-form parameter {long_alias!r} is recommended.",
555555
)
556556
if long_alias in kwargs:
@@ -820,7 +820,7 @@ def new_module(*args, **kwargs):
820820
if oldname in kwargs:
821821
if newname in kwargs:
822822
raise GMTParameterError(
823-
at_most_one={newname, oldname},
823+
at_most_one=[newname, oldname],
824824
reason=f"{oldname!r} is deprecated and {newname!r} is recommended.",
825825
)
826826
msg = (

pygmt/src/coast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ def coast( # noqa: PLR0913
242242
and not args_in_kwargs(args=["C", "E", "Q"], kwargs=kwargs)
243243
):
244244
raise GMTParameterError(
245-
at_least_one={
245+
at_least_one=[
246246
"land",
247247
"water",
248248
"rivers",
@@ -251,7 +251,7 @@ def coast( # noqa: PLR0913
251251
"lakes",
252252
"dcw",
253253
"Q",
254-
}
254+
]
255255
)
256256

257257
aliasdict = AliasSystem(

pygmt/src/dimfilter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ def dimfilter(
144144
... )
145145
"""
146146
if not all(arg in kwargs for arg in ["D", "F", "N"]) and "Q" not in kwargs:
147-
raise GMTParameterError(at_least_one={"distance", "filters", "sectors"})
147+
raise GMTParameterError(at_least_one=["distance", "filters", "sectors"])
148148

149149
aliasdict = AliasSystem(
150150
I=Alias(spacing, name="spacing", sep="/", size=2),

pygmt/src/grd2cpt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ def grd2cpt(
199199
>>> fig.show()
200200
"""
201201
if kwargs.get("W") is not None and kwargs.get("Ww") is not None:
202-
raise GMTParameterError(at_most_one={"categorical", "cyclic"})
202+
raise GMTParameterError(at_most_one=["categorical", "cyclic"])
203203

204204
if (output := kwargs.pop("H", None)) is not None:
205205
kwargs["H"] = True

pygmt/src/grdclip.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def grdclip(
110110
[np.float32(0.0), np.float32(10000.0)]
111111
"""
112112
if all(v is None for v in (above, below, between, replace)):
113-
raise GMTParameterError(at_least_one={"above", "below", "between", "replace"})
113+
raise GMTParameterError(at_least_one=["above", "below", "between", "replace"])
114114

115115
aliasdict = AliasSystem(
116116
Sa=Alias(above, name="above", sep="/", size=2),

pygmt/src/grdgradient.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ def grdgradient( # noqa: PLR0913
240240
and kwargs.get("D") is None
241241
and kwargs.get("E", radiance) is None
242242
):
243-
raise GMTParameterError(at_least_one={"azimuth", "direction", "radiance"})
243+
raise GMTParameterError(at_least_one=["azimuth", "direction", "radiance"])
244244

245245
aliasdict = AliasSystem(
246246
A=Alias(azimuth, name="azimuth", sep="/", size=2),

pygmt/src/grdlandmask.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def grdlandmask(
119119
>>> landmask = pygmt.grdlandmask(spacing=1, region=[125, 130, 30, 35])
120120
"""
121121
if kwargs.get("I", spacing) is None or kwargs.get("R", region) is None:
122-
raise GMTParameterError(required={"region", "spacing"})
122+
raise GMTParameterError(required=["region", "spacing"])
123123

124124
aliasdict = AliasSystem(
125125
D=Alias(

pygmt/src/grdproject.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def grdproject( # noqa: PLR0913
121121
raise GMTParameterError(required="projection")
122122

123123
if kwargs.get("M", unit) is not None and kwargs.get("F", scaling) is not False:
124-
raise GMTParameterError(at_most_one={"unit", "scaling"})
124+
raise GMTParameterError(at_most_one=["unit", "scaling"])
125125

126126
aliasdict = AliasSystem(
127127
C=Alias(center, name="center", sep="/", size=2),

pygmt/src/grdsample.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def grdsample(
101101
>>> new_grid = pygmt.grdsample(grid=grid, toggle=True, spacing=[0.5, 0.5])
102102
"""
103103
if kwargs.get("T", toggle) and kwargs.get("r", registration):
104-
raise GMTParameterError(at_most_one={"toggle", "registration"})
104+
raise GMTParameterError(at_most_one=["toggle", "registration"])
105105

106106
aliasdict = AliasSystem(
107107
I=Alias(spacing, name="spacing", sep="/", size=2),

0 commit comments

Comments
 (0)