Skip to content

Commit f7fe562

Browse files
committed
Refactor all wrappers to pass an argument list to Session.call_module
1 parent 79cda63 commit f7fe562

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+147
-158
lines changed

pygmt/figure.py

+5-10
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
from pygmt.clib import Session
1919
from pygmt.exceptions import GMTError, GMTInvalidInput
2020
from pygmt.helpers import (
21-
build_arg_string,
21+
build_arg_list,
2222
fmt_docstring,
2323
kwargs_to_strings,
2424
launch_external_viewer,
@@ -108,7 +108,7 @@ def _activate_figure(self):
108108
# Passing format '-' tells pygmt.end to not produce any files.
109109
fmt = "-"
110110
with Session() as lib:
111-
lib.call_module(module="figure", args=f"{self._name} {fmt}")
111+
lib.call_module(module="figure", args=[self._name, fmt])
112112

113113
def _preprocess(self, **kwargs):
114114
"""
@@ -234,15 +234,12 @@ def psconvert(self, **kwargs):
234234
# Default cropping the figure to True
235235
if kwargs.get("A") is None:
236236
kwargs["A"] = ""
237-
# Manually handle prefix -F argument so spaces aren't converted to \040
238-
# by build_arg_string function. For more information, see
239-
# https://github.com/GenericMappingTools/pygmt/pull/1487
240-
prefix = kwargs.pop("F", None)
237+
238+
prefix = kwargs.get("F")
241239
if prefix in ["", None, False, True]:
242240
raise GMTInvalidInput(
243241
"The 'prefix' parameter must be specified with a valid value."
244242
)
245-
prefix_arg = f'-F"{prefix}"'
246243

247244
# check if the parent directory exists
248245
prefix_path = Path(prefix).parent
@@ -252,9 +249,7 @@ def psconvert(self, **kwargs):
252249
)
253250

254251
with Session() as lib:
255-
lib.call_module(
256-
module="psconvert", args=f"{prefix_arg} {build_arg_string(kwargs)}"
257-
)
252+
lib.call_module(module="psconvert", args=build_arg_list(kwargs))
258253

259254
def savefig( # noqa: PLR0912
260255
self,

pygmt/session_management.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ def begin():
2323

2424
prefix = "pygmt-session"
2525
with Session() as lib:
26-
lib.call_module(module="begin", args=prefix)
26+
lib.call_module(module="begin", args=[prefix])
2727
# pygmt relies on GMT modern mode with GMT_COMPATIBILITY at version 6
28-
lib.call_module(module="set", args="GMT_COMPATIBILITY 6")
28+
lib.call_module(module="set", args=["GMT_COMPATIBILITY=6"])
2929

3030

3131
def end():
@@ -38,4 +38,4 @@ def end():
3838
``pygmt.begin``), and bring the figures to the working directory.
3939
"""
4040
with Session() as lib:
41-
lib.call_module(module="end", args="")
41+
lib.call_module(module="end", args=[])

pygmt/src/basemap.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from pygmt.clib import Session
6-
from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias
6+
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
77

88

99
@fmt_docstring
@@ -84,4 +84,4 @@ def basemap(self, **kwargs):
8484
"""
8585
kwargs = self._preprocess(**kwargs)
8686
with Session() as lib:
87-
lib.call_module(module="basemap", args=build_arg_string(kwargs))
87+
lib.call_module(module="basemap", args=build_arg_list(kwargs))

pygmt/src/binstats.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pygmt.clib import Session
66
from pygmt.helpers import (
77
GMTTempFile,
8-
build_arg_string,
8+
build_arg_list,
99
fmt_docstring,
1010
kwargs_to_strings,
1111
use_alias,
@@ -116,7 +116,7 @@ def binstats(data, **kwargs):
116116
if (outgrid := kwargs.get("G")) is None:
117117
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
118118
lib.call_module(
119-
module="binstats", args=build_arg_string(kwargs, infile=vintbl)
119+
module="binstats", args=build_arg_list(kwargs, infile=vintbl)
120120
)
121121

122122
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/blockm.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import pandas as pd
99
from pygmt.clib import Session
1010
from pygmt.helpers import (
11-
build_arg_string,
11+
build_arg_list,
1212
fmt_docstring,
1313
kwargs_to_strings,
1414
use_alias,
@@ -61,7 +61,7 @@ def _blockm(
6161
):
6262
lib.call_module(
6363
module=block_method,
64-
args=build_arg_string(kwargs, infile=vintbl, outfile=vouttbl),
64+
args=build_arg_list(kwargs, infile=vintbl, outfile=vouttbl),
6565
)
6666
return lib.virtualfile_to_dataset(
6767
vfname=vouttbl, output_type=output_type, column_names=column_names

pygmt/src/coast.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pygmt.exceptions import GMTInvalidInput
77
from pygmt.helpers import (
88
args_in_kwargs,
9-
build_arg_string,
9+
build_arg_list,
1010
fmt_docstring,
1111
kwargs_to_strings,
1212
use_alias,
@@ -227,4 +227,4 @@ def coast(self, **kwargs):
227227
lakes, land, water, rivers, borders, dcw, Q, or shorelines"""
228228
)
229229
with Session() as lib:
230-
lib.call_module(module="coast", args=build_arg_string(kwargs))
230+
lib.call_module(module="coast", args=build_arg_list(kwargs))

pygmt/src/colorbar.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from pygmt.clib import Session
6-
from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias
6+
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
77

88
__doctest_skip__ = ["colorbar"]
99

@@ -146,4 +146,4 @@ def colorbar(self, **kwargs):
146146
"""
147147
kwargs = self._preprocess(**kwargs)
148148
with Session() as lib:
149-
lib.call_module(module="colorbar", args=build_arg_string(kwargs))
149+
lib.call_module(module="colorbar", args=build_arg_list(kwargs))

pygmt/src/config.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,10 @@ def __init__(self, **kwargs):
199199
self.old_defaults[key] = lib.get_default(key)
200200

201201
# call gmt set to change GMT defaults
202-
arg_str = " ".join([f'{key}="{value}"' for key, value in kwargs.items()])
203202
with Session() as lib:
204-
lib.call_module(module="set", args=arg_str)
203+
lib.call_module(
204+
module="set", args=[f"{key}={value}" for key, value in kwargs.items()]
205+
)
205206

206207
def __enter__(self):
207208
"""
@@ -213,8 +214,8 @@ def __exit__(self, exc_type, exc_value, traceback):
213214
"""
214215
Revert GMT configurations to initial values.
215216
"""
216-
arg_str = " ".join(
217-
[f'{key}="{value}"' for key, value in self.old_defaults.items()]
218-
)
219217
with Session() as lib:
220-
lib.call_module(module="set", args=arg_str)
218+
lib.call_module(
219+
module="set",
220+
args=[f"{key}={value}" for key, value in self.old_defaults.items()],
221+
)

pygmt/src/contour.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from pygmt.clib import Session
6-
from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias
6+
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
77

88

99
@fmt_docstring
@@ -119,5 +119,5 @@ def contour(self, data=None, x=None, y=None, z=None, **kwargs):
119119
check_kind="vector", data=data, x=x, y=y, z=z, required_z=True
120120
) as vintbl:
121121
lib.call_module(
122-
module="contour", args=build_arg_string(kwargs, infile=vintbl)
122+
module="contour", args=build_arg_list(kwargs, infile=vintbl)
123123
)

pygmt/src/dimfilter.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pygmt.exceptions import GMTInvalidInput
77
from pygmt.helpers import (
88
GMTTempFile,
9-
build_arg_string,
9+
build_arg_list,
1010
fmt_docstring,
1111
kwargs_to_strings,
1212
use_alias,
@@ -155,7 +155,7 @@ def dimfilter(grid, **kwargs):
155155
if (outgrid := kwargs.get("G")) is None:
156156
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
157157
lib.call_module(
158-
module="dimfilter", args=build_arg_string(kwargs, infile=vingrd)
158+
module="dimfilter", args=build_arg_list(kwargs, infile=vingrd)
159159
)
160160

161161
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/filter1d.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from pygmt.clib import Session
1010
from pygmt.exceptions import GMTInvalidInput
1111
from pygmt.helpers import (
12-
build_arg_string,
12+
build_arg_list,
1313
fmt_docstring,
1414
use_alias,
1515
validate_output_table_type,
@@ -121,6 +121,6 @@ def filter1d(
121121
):
122122
lib.call_module(
123123
module="filter1d",
124-
args=build_arg_string(kwargs, infile=vintbl, outfile=vouttbl),
124+
args=build_arg_list(kwargs, infile=vintbl, outfile=vouttbl),
125125
)
126126
return lib.virtualfile_to_dataset(vfname=vouttbl, output_type=output_type)

pygmt/src/grd2cpt.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from pygmt.clib import Session
66
from pygmt.exceptions import GMTInvalidInput
7-
from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias
7+
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
88

99
__doctest_skip__ = ["grd2cpt"]
1010

@@ -186,10 +186,10 @@ def grd2cpt(grid, **kwargs):
186186
with Session() as lib:
187187
with lib.virtualfile_in(check_kind="raster", data=grid) as vingrd:
188188
if kwargs.get("H") is None: # if no output is set
189-
arg_str = build_arg_string(kwargs, infile=vingrd)
189+
arg_str = build_arg_list(kwargs, infile=vingrd)
190190
else: # if output is set
191191
outfile, kwargs["H"] = kwargs["H"], True
192192
if not outfile or not isinstance(outfile, str):
193193
raise GMTInvalidInput("'output' should be a proper file name.")
194-
arg_str = build_arg_string(kwargs, infile=vingrd, outfile=outfile)
194+
arg_str = build_arg_list(kwargs, infile=vingrd, outfile=outfile)
195195
lib.call_module(module="grd2cpt", args=arg_str)

pygmt/src/grd2xyz.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pygmt.clib import Session
1111
from pygmt.exceptions import GMTInvalidInput
1212
from pygmt.helpers import (
13-
build_arg_string,
13+
build_arg_list,
1414
fmt_docstring,
1515
kwargs_to_strings,
1616
use_alias,
@@ -165,7 +165,7 @@ def grd2xyz(
165165
):
166166
lib.call_module(
167167
module="grd2xyz",
168-
args=build_arg_string(kwargs, infile=vingrd, outfile=vouttbl),
168+
args=build_arg_list(kwargs, infile=vingrd, outfile=vouttbl),
169169
)
170170
return lib.virtualfile_to_dataset(
171171
vfname=vouttbl, output_type=output_type, column_names=column_names

pygmt/src/grdclip.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pygmt.clib import Session
66
from pygmt.helpers import (
77
GMTTempFile,
8-
build_arg_string,
8+
build_arg_list,
99
fmt_docstring,
1010
kwargs_to_strings,
1111
use_alias,
@@ -101,7 +101,7 @@ def grdclip(grid, **kwargs):
101101
if (outgrid := kwargs.get("G")) is None:
102102
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
103103
lib.call_module(
104-
module="grdclip", args=build_arg_string(kwargs, infile=vingrd)
104+
module="grdclip", args=build_arg_list(kwargs, infile=vingrd)
105105
)
106106

107107
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/grdcontour.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from pygmt.clib import Session
6-
from pygmt.helpers import build_arg_string, fmt_docstring, kwargs_to_strings, use_alias
6+
from pygmt.helpers import build_arg_list, fmt_docstring, kwargs_to_strings, use_alias
77

88
__doctest_skip__ = ["grdcontour"]
99

@@ -125,5 +125,5 @@ def grdcontour(self, grid, **kwargs):
125125
with Session() as lib:
126126
with lib.virtualfile_in(check_kind="raster", data=grid) as vingrd:
127127
lib.call_module(
128-
module="grdcontour", args=build_arg_string(kwargs, infile=vingrd)
128+
module="grdcontour", args=build_arg_list(kwargs, infile=vingrd)
129129
)

pygmt/src/grdcut.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pygmt.clib import Session
66
from pygmt.helpers import (
77
GMTTempFile,
8-
build_arg_string,
8+
build_arg_list,
99
fmt_docstring,
1010
kwargs_to_strings,
1111
use_alias,
@@ -105,7 +105,7 @@ def grdcut(grid, **kwargs):
105105
if (outgrid := kwargs.get("G")) is None:
106106
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
107107
lib.call_module(
108-
module="grdcut", args=build_arg_string(kwargs, infile=vingrd)
108+
module="grdcut", args=build_arg_list(kwargs, infile=vingrd)
109109
)
110110

111111
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/grdfill.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pygmt.exceptions import GMTInvalidInput
77
from pygmt.helpers import (
88
GMTTempFile,
9-
build_arg_string,
9+
build_arg_list,
1010
fmt_docstring,
1111
kwargs_to_strings,
1212
use_alias,
@@ -83,7 +83,7 @@ def grdfill(grid, **kwargs):
8383
if (outgrid := kwargs.get("G")) is None:
8484
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
8585
lib.call_module(
86-
module="grdfill", args=build_arg_string(kwargs, infile=vingrd)
86+
module="grdfill", args=build_arg_list(kwargs, infile=vingrd)
8787
)
8888

8989
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/grdfilter.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from pygmt.clib import Session
66
from pygmt.helpers import (
77
GMTTempFile,
8-
build_arg_string,
8+
build_arg_list,
99
fmt_docstring,
1010
kwargs_to_strings,
1111
use_alias,
@@ -138,7 +138,7 @@ def grdfilter(grid, **kwargs):
138138
if (outgrid := kwargs.get("G")) is None:
139139
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
140140
lib.call_module(
141-
module="grdfilter", args=build_arg_string(kwargs, infile=vingrd)
141+
module="grdfilter", args=build_arg_list(kwargs, infile=vingrd)
142142
)
143143

144144
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/grdgradient.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from pygmt.helpers import (
88
GMTTempFile,
99
args_in_kwargs,
10-
build_arg_string,
10+
build_arg_list,
1111
fmt_docstring,
1212
kwargs_to_strings,
1313
use_alias,
@@ -173,7 +173,7 @@ def grdgradient(grid, **kwargs):
173173
if (outgrid := kwargs.get("G")) is None:
174174
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
175175
lib.call_module(
176-
module="grdgradient", args=build_arg_string(kwargs, infile=vingrd)
176+
module="grdgradient", args=build_arg_list(kwargs, infile=vingrd)
177177
)
178178

179179
return load_dataarray(outgrid) if outgrid == tmpfile.name else None

pygmt/src/grdhisteq.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pygmt.exceptions import GMTInvalidInput
1111
from pygmt.helpers import (
1212
GMTTempFile,
13-
build_arg_string,
13+
build_arg_list,
1414
fmt_docstring,
1515
kwargs_to_strings,
1616
use_alias,
@@ -129,7 +129,7 @@ def equalize_grid(grid, **kwargs):
129129
if (outgrid := kwargs.get("G")) is None:
130130
kwargs["G"] = outgrid = tmpfile.name # output to tmpfile
131131
lib.call_module(
132-
module="grdhisteq", args=build_arg_string(kwargs, infile=vingrd)
132+
module="grdhisteq", args=build_arg_list(kwargs, infile=vingrd)
133133
)
134134
return load_dataarray(outgrid) if outgrid == tmpfile.name else None
135135

@@ -235,7 +235,7 @@ def compute_bins(
235235
):
236236
kwargs["D"] = vouttbl # -D for output file name
237237
lib.call_module(
238-
module="grdhisteq", args=build_arg_string(kwargs, infile=vingrd)
238+
module="grdhisteq", args=build_arg_list(kwargs, infile=vingrd)
239239
)
240240

241241
return lib.virtualfile_to_dataset(

0 commit comments

Comments
 (0)