query-performance-gauge/utils.py
2022-08-22 15:02:21 +02:00

32 lines
1 KiB
Python

from typing import Union
from io import TextIOWrapper
import json
def compose_config(
config: Union[TextIOWrapper, None],
credentials: Union[TextIOWrapper, None],
queries: Union[TextIOWrapper, None],
) -> dict:
"""
Receive the CLI arguments and compose a session config.
:param config: file pointer to a full config file.
:param credentials: file pointer to a credentials file.
:param queries: file pointer to a queries file.
:return: a dict with the composed configuration.
"""
if config is not None:
DeprecationWarning(
"Usage of a full config file will be deprecated. Instead, use the credentials and queries arguments."
)
return json.load(config)
if credentials is None or queries is None:
raise ValueError(
"You need to provide both --credentials and --queries arguments."
)
# Merge both into one dict so it follows the same structure as a full config file
return {**json.load(credentials), **json.load(queries)}