Skip to content

Commit

Permalink
Revert "Allow validate_output_table_type to specify the supported out…
Browse files Browse the repository at this point in the history
…put types (#3191)" (#3233)

This reverts commit a4d2b8e.
  • Loading branch information
seisman authored May 7, 2024
1 parent a4d2b8e commit 127e657
Showing 1 changed file with 7 additions and 21 deletions.
28 changes: 7 additions & 21 deletions pygmt/helpers/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,22 @@
"""

import warnings
from collections.abc import Sequence
from typing import Literal

from pygmt.exceptions import GMTInvalidInput


def validate_output_table_type(
output_type: Literal["pandas", "numpy", "file"],
valid_types: Sequence[str] = ("pandas", "numpy", "file"),
outfile: str | None = None,
output_type: Literal["pandas", "numpy", "file"], outfile: str | None = None
) -> Literal["pandas", "numpy", "file"]:
"""
Check if the ``output_type`` and ``outfile`` parameters are valid.
Parameters
----------
output_type
Desired output type of tabular data. Default valid values are ``"pandas"``,
``"numpy"`` and ``"file"``, but can be configured by parameter ``valid_types``.
valid_types
Tuple of valid desired output types.
Desired output type of tabular data. Valid values are ``"pandas"``,
``"numpy"`` and ``"file"``.
outfile
File name for saving the result data. Required if ``output_type`` is ``"file"``.
If specified, ``output_type`` will be forced to be ``"file"``.
Expand All @@ -41,32 +36,23 @@ def validate_output_table_type(
'numpy'
>>> validate_output_table_type(output_type="file", outfile="output-fname.txt")
'file'
>>> validate_output_table_type(output_type="pandas", valid_types=("pandas", "file"))
'pandas'
>>> validate_output_table_type(output_type="invalid-type")
Traceback (most recent call last):
...
pygmt.exceptions.GMTInvalidInput: Must specify 'output_type' as 'pandas', ...
pygmt.exceptions.GMTInvalidInput: Must specify 'output_type' either as 'file', ...
>>> validate_output_table_type("file", outfile=None)
Traceback (most recent call last):
...
pygmt.exceptions.GMTInvalidInput: Must specify 'outfile' for output_type='file'.
>>> validate_output_table_type(output_type="numpy", valid_types=("pandas", "file"))
Traceback (most recent call last):
...
pygmt.exceptions.GMTInvalidInput: Must specify 'output_type' as 'pandas', or 'file'.
>>> with warnings.catch_warnings(record=True) as w:
... validate_output_table_type("pandas", outfile="not-none.txt")
... assert len(w) == 1
'file'
"""
if output_type not in valid_types:
msg = (
"Must specify 'output_type' as "
+ ", ".join(f"'{v}'" for v in valid_types[:-1])
+ f", or '{valid_types[-1]}'."
if output_type not in ["file", "numpy", "pandas"]:
raise GMTInvalidInput(
"Must specify 'output_type' either as 'file', 'numpy', or 'pandas'."
)
raise GMTInvalidInput(msg)
if output_type == "file" and outfile is None:
raise GMTInvalidInput("Must specify 'outfile' for output_type='file'.")
if output_type != "file" and outfile is not None:
Expand Down

0 comments on commit 127e657

Please sign in to comment.