Skip to content

Commit 423536b

Browse files
authored
Remove the deprecated build_arg_string function (deprecated since v0.12.0) (#3427)
1 parent 1ff03a3 commit 423536b

File tree

2 files changed

+0
-135
lines changed

2 files changed

+0
-135
lines changed

pygmt/helpers/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
_validate_data_input,
2020
args_in_kwargs,
2121
build_arg_list,
22-
build_arg_string,
2322
data_kind,
2423
is_nonstr_iter,
2524
launch_external_viewer,

pygmt/helpers/utils.py

Lines changed: 0 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import subprocess
1010
import sys
1111
import time
12-
import warnings
1312
import webbrowser
1413
from collections.abc import Iterable, Sequence
1514
from typing import Any, Literal
@@ -461,139 +460,6 @@ def build_arg_list( # noqa: PLR0912
461460
return gmt_args
462461

463462

464-
def build_arg_string(kwdict, confdict=None, infile=None, outfile=None):
465-
r"""
466-
Convert keyword dictionaries and input/output files into a GMT argument string.
467-
468-
Make sure all values in ``kwdict`` have been previously converted to a
469-
string representation using the ``kwargs_to_strings`` decorator. The only
470-
exceptions are True, False and None.
471-
472-
Any lists or tuples left will be interpreted as multiple entries for the
473-
same command line option. For example, the kwargs entry ``'B': ['xa',
474-
'yaf']`` will be converted to ``-Bxa -Byaf`` in the argument string.
475-
476-
Note that spaces `` `` in arguments are converted to the equivalent octal
477-
code ``\040``, except in the case of -J (projection) arguments where PROJ4
478-
strings (e.g. "+proj=longlat +datum=WGS84") will have their spaces removed.
479-
See https://github.com/GenericMappingTools/pygmt/pull/1487 for more info.
480-
481-
.. deprecated:: 0.12.0
482-
483-
Use :func:`build_arg_list` instead.
484-
485-
Parameters
486-
----------
487-
kwdict : dict
488-
A dictionary containing parsed keyword arguments.
489-
confdict : dict
490-
A dictionary containing configurable GMT parameters.
491-
infile : str or pathlib.Path
492-
The input file.
493-
outfile : str or pathlib.Path
494-
The output file.
495-
496-
Returns
497-
-------
498-
args : str
499-
The space-delimited argument string with '-' inserted before each
500-
keyword, or '--' inserted before GMT configuration key-value pairs.
501-
The keyword arguments are sorted alphabetically, followed by GMT
502-
configuration key-value pairs, with optional input file at the
503-
beginning and optional output file at the end.
504-
505-
Examples
506-
--------
507-
508-
>>> print(
509-
... build_arg_string(
510-
... dict(
511-
... A=True,
512-
... B=False,
513-
... E=200,
514-
... J="+proj=longlat +datum=WGS84",
515-
... P="",
516-
... R="1/2/3/4",
517-
... X=None,
518-
... Y=None,
519-
... Z=0,
520-
... )
521-
... )
522-
... )
523-
-A -E200 -J+proj=longlat+datum=WGS84 -P -R1/2/3/4 -Z0
524-
>>> print(
525-
... build_arg_string(
526-
... dict(
527-
... R="1/2/3/4",
528-
... J="X4i",
529-
... B=["xaf", "yaf", "WSen"],
530-
... I=("1/1p,blue", "2/0.25p,blue"),
531-
... )
532-
... )
533-
... )
534-
-BWSen -Bxaf -Byaf -I1/1p,blue -I2/0.25p,blue -JX4i -R1/2/3/4
535-
>>> print(build_arg_string(dict(R="1/2/3/4", J="X4i", watre=True)))
536-
Traceback (most recent call last):
537-
...
538-
pygmt.exceptions.GMTInvalidInput: Unrecognized parameter 'watre'.
539-
>>> print(
540-
... build_arg_string(
541-
... dict(
542-
... B=["af", "WSne+tBlank Space"],
543-
... F='+t"Empty Spaces"',
544-
... l="'Void Space'",
545-
... ),
546-
... )
547-
... )
548-
-BWSne+tBlank\040Space -Baf -F+t"Empty\040\040Spaces" -l'Void\040Space'
549-
>>> print(
550-
... build_arg_string(
551-
... dict(A="0", B=True, C="rainbow"),
552-
... confdict=dict(FORMAT_DATE_MAP="o dd"),
553-
... infile="input.txt",
554-
... outfile="output.txt",
555-
... )
556-
... )
557-
input.txt -A0 -B -Crainbow --FORMAT_DATE_MAP="o dd" ->output.txt
558-
"""
559-
msg = (
560-
"Utility function 'build_arg_string()' is deprecated in v0.12.0 and will be "
561-
"removed in v0.14.0. Use 'build_arg_list()' instead."
562-
)
563-
warnings.warn(msg, category=FutureWarning, stacklevel=2)
564-
565-
gmt_args = []
566-
for key in kwdict:
567-
if len(key) > 2: # raise an exception for unrecognized options
568-
raise GMTInvalidInput(f"Unrecognized parameter '{key}'.")
569-
if kwdict[key] is None or kwdict[key] is False:
570-
pass # Exclude arguments that are None and False
571-
elif is_nonstr_iter(kwdict[key]):
572-
for value in kwdict[key]:
573-
_value = str(value).replace(" ", r"\040")
574-
gmt_args.append(rf"-{key}{_value}")
575-
elif kwdict[key] is True:
576-
gmt_args.append(f"-{key}")
577-
else:
578-
if key != "J": # non-projection parameters
579-
_value = str(kwdict[key]).replace(" ", r"\040")
580-
else:
581-
# special handling if key == "J" (projection)
582-
# remove any spaces in PROJ4 string
583-
_value = str(kwdict[key]).replace(" ", "")
584-
gmt_args.append(rf"-{key}{_value}")
585-
gmt_args = sorted(gmt_args)
586-
587-
if confdict:
588-
gmt_args.extend(f'--{key}="{value}"' for key, value in confdict.items())
589-
590-
if infile:
591-
gmt_args = [str(infile), *gmt_args]
592-
if outfile:
593-
gmt_args.append("->" + str(outfile))
594-
return non_ascii_to_octal(" ".join(gmt_args))
595-
596-
597463
def is_nonstr_iter(value):
598464
"""
599465
Check if the value is not a string but is iterable (list, tuple, array)

0 commit comments

Comments
 (0)