Skip to content

Commit

Permalink
Rename 'none' kind to 'empty'
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman committed Oct 11, 2024
1 parent 91eb1b6 commit a1e67d3
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 18 deletions.
8 changes: 4 additions & 4 deletions pygmt/clib/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -1775,22 +1775,22 @@ def virtualfile_in( # noqa: PLR0912
if check_kind == "raster":
valid_kinds += ("grid", "image")
elif check_kind == "vector":
valid_kinds += ("none", "matrix", "vectors", "geojson")
valid_kinds += ("empty", "matrix", "vectors", "geojson")
if kind not in valid_kinds:
raise GMTInvalidInput(
f"Unrecognized data type for {check_kind}: {type(data)}"
)

# Decide which virtualfile_from_ function to use
_virtualfile_from = {
"file": contextlib.nullcontext,
"arg": contextlib.nullcontext,
"empty": self.virtualfile_from_vectors,
"file": contextlib.nullcontext,
"geojson": tempfile_from_geojson,
"grid": self.virtualfile_from_grid,
"image": tempfile_from_image,
"stringio": self.virtualfile_from_stringio,
"matrix": self.virtualfile_from_matrix,
"none": self.virtualfile_from_vectors,
"vectors": self.virtualfile_from_vectors,
}[kind]

Expand All @@ -1806,7 +1806,7 @@ def virtualfile_in( # noqa: PLR0912
)
warnings.warn(message=msg, category=RuntimeWarning, stacklevel=2)
_data = (data,) if not isinstance(data, pathlib.PurePath) else (str(data),)
elif kind == "none":
elif kind == "empty":
# data is None, so data must be given via x/y/z.
_data = [x, y]
if z is not None:
Expand Down
18 changes: 9 additions & 9 deletions pygmt/helpers/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,18 +191,18 @@ def _check_encoding(
def data_kind(
data: Any, required: bool = True
) -> Literal[
"arg", "file", "geojson", "grid", "image", "matrix", "none", "stringio", "vectors"
"arg", "empty", "file", "geojson", "grid", "image", "matrix", "stringio", "vectors"
]:
r"""
Check the kind of data that is provided to a module.
The argument passed to the ``data`` parameter can have any data type. The
following data kinds are recognized and returned as ``kind``:
- ``"none"`: ``data`` is ``None`` and ``required=True``. It means the data is given
via a series of vectors like x/y/z
- ``"arg"``: ``data`` is ``None`` and ``required=False``, or bool, int, float,
representing an optional argument, used for dealing with optional virtual files
- ``"empty"`: ``data`` is ``None`` and ``required=True``. It means the data is given
via a series of vectors like x/y/z
- ``"file"``: a string or a :class:`pathlib.PurePath` object or a sequence of them,
representing one or more file names
- ``"geojson"``: a geo-like Python object that implements ``__geo_interface__``
Expand Down Expand Up @@ -244,6 +244,11 @@ def data_kind(
>>> data_kind(data=None, required=False)
'arg'
The "empty" kind:
>>> data_kind(data=None)
'empty'
The "file" kind:
>>> [data_kind(data=data) for data in ("file.txt", ("file1.txt", "file2.txt"))]
Expand Down Expand Up @@ -295,15 +300,10 @@ def data_kind(
'vectors'
>>> data_kind(data=pd.Series([1, 2, 3], name="x")) # pd.Series
'vectors'
The "none" kind:
>>> data_kind(data=None)
'none'
"""
match data:
case None if required: # No data provided and required=True.
kind = "none"
kind = "empty"
case str() | pathlib.PurePath(): # One file.
kind = "file"
case list() | tuple() if all(
Expand Down
2 changes: 1 addition & 1 deletion pygmt/src/legend.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def legend(
kwargs["F"] = box

kind = data_kind(spec)
if kind not in {"none", "file", "stringio"}:
if kind not in {"empty", "file", "stringio"}:
raise GMTInvalidInput(f"Unrecognized data type: {type(spec)}")
if kind == "file" and is_nonstr_iter(spec):
raise GMTInvalidInput("Only one legend specification file is allowed.")
Expand Down
2 changes: 1 addition & 1 deletion pygmt/src/plot.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ def plot(self, data=None, x=None, y=None, size=None, direction=None, **kwargs):

kind = data_kind(data)
extra_arrays = []
if kind == "none": # Add more columns for vectors input
if kind == "empty": # Add more columns for vectors input
# Parameters for vector styles
if (
kwargs.get("S") is not None
Expand Down
2 changes: 1 addition & 1 deletion pygmt/src/plot3d.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def plot3d(
kind = data_kind(data)
extra_arrays = []

if kind == "none": # Add more columns for vectors input
if kind == "empty": # Add more columns for vectors input
# Parameters for vector styles
if (
kwargs.get("S") is not None
Expand Down
4 changes: 2 additions & 2 deletions pygmt/src/text.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def text_( # noqa: PLR0912
raise GMTInvalidInput("'text' can't be None or array when 'position' is given.")
if textfiles is not None and text is not None:
raise GMTInvalidInput("'text' can't be specified when 'textfiles' is given.")
if kind == "none" and text is None:
if kind == "empty" and text is None:
raise GMTInvalidInput("Must provide text with x/y pairs.")

# Arguments that can accept arrays.
Expand All @@ -217,7 +217,7 @@ def text_( # noqa: PLR0912

extra_arrays = []
confdict = {}
if kind == "none":
if kind == "empty":
for arg, flag, name in array_args:
if is_nonstr_iter(arg):
kwargs["F"] += flag
Expand Down

0 comments on commit a1e67d3

Please sign in to comment.