Source code for selfisys.utils.parser

#!/usr/bin/env python3
# ----------------------------------------------------------------------
# Copyright (C) 2024 Tristan Hoellinger
# Distributed under the GNU General Public License v3.0 (GPLv3).
# See the LICENSE file in the root directory for details.
# SPDX-License-Identifier: GPL-3.0-or-later
# ----------------------------------------------------------------------

__author__ = "Tristan Hoellinger"
__version__ = "0.1.0"
__date__ = "2024"
__license__ = "GPLv3"

"""Utility functions for parsing command-line arguments.
"""

import os
from argparse import ArgumentParser, ArgumentTypeError


[docs] def joinstrs(list_of_strs): """Join a list of strings into a single string. Parameters ---------- list_of_strs : list of str List of strings to join. Returns ------- str Concatenated string. """ return "".join([str(x) for x in list_of_strs if x is not None])
[docs] def joinstrs_only(list_of_strs): """Join a list of strings into a single string, ignoring all non-string elements such as None values. Parameters ---------- list_of_strs : list of str List of strings to join. Returns ------- str Concatenated string. """ return "".join([str(x) for x in list_of_strs if type(x) == str])
[docs] def check_files_exist(files): """Check if all files in the list exist. Parameters ---------- files : list of str List of file paths to check. Returns ------- bool True if all files exist, False otherwise. """ return all(os.path.exists(f) for f in files)
[docs] def none_or_bool_or_str(value): """Convert a string to None, bool, or str. Parameters ---------- value : str String to convert. Returns ------- None, bool, or str Converted value. """ if value == "None" or value == None: return None elif value == "True": return True elif value == "False": return False return value
[docs] def intNone(value): """Convert a string to None or int. Parameters ---------- value : str String to convert. Returns ------- None or int Converted value. """ if value == "None" or value == None: return None else: return int(value)
[docs] def safe_npload(path): """Load a numpy array from a file. Parameters ---------- path : str Path to the file to load. Returns ------- None or np.ndarray Loaded array or None if the file does not exist. """ import numpy as np val = np.load(path, allow_pickle=True) if val is None or val == "None" or val == None: return None else: return val
[docs] def bool_sh(value): """Convert a string to a boolean. Parameters ---------- value : str String to convert. Returns ------- bool Converted value. """ if value == "True": return True elif value == "False": return False else: raise ArgumentTypeError("Boolean value expected.")