Files
aufbau2csv/venv3_12/Lib/site-packages/auto_py_to_exe/validation.py

36 lines
1.2 KiB
Python

import argparse
import json
import logging
import os
def argparse_file_exists(file_path):
"""Validates whether a file exists."""
if not os.path.isfile(file_path):
raise argparse.ArgumentTypeError("File does not exist")
return os.path.abspath(file_path)
def argparse_file_json(file_path):
"""Validates whether a file contains JSON parsable by Python. Raises argparse.ArgumentTypeError if not."""
if not os.path.isfile(file_path):
raise argparse.ArgumentTypeError("Provided configuration file does not exist")
try:
with open(file_path, "r") as file:
data = json.load(file)
except json.decoder.JSONDecodeError:
raise argparse.ArgumentTypeError("Provided configuration file content is not json")
except Exception as e:
raise argparse.ArgumentTypeError("Cannot parse provided configuration file:\n" + str(e))
return data
def argparse_logging_level(level):
"""Validates that a string value is a valid logging level and returns the corresponding value."""
if hasattr(logging, level.upper()):
return level.upper()
raise argparse.ArgumentTypeError("Invalid logging level: " + str(level))