Reconcile the various debugging hints throughout the documentation and integrate into a central debugging page. Includes clarification of the roles of ytdl-sub, yt-dlp, and external services. Also adds cross references to the relevant bits across the docs.
69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
from typing import Optional
|
|
|
|
from ytdl_sub.script.types.resolvable import AnyArgument
|
|
from ytdl_sub.script.types.resolvable import Integer
|
|
from ytdl_sub.script.types.resolvable import ReturnableArgument
|
|
from ytdl_sub.utils.logger import Logger
|
|
|
|
logger = Logger.get(name="preset")
|
|
|
|
|
|
def _log(message: AnyArgument, level: Optional[Integer]) -> None:
|
|
if not str(message):
|
|
return
|
|
|
|
if level is None:
|
|
logger.info(str(message))
|
|
return
|
|
|
|
level_value: int = level.native
|
|
if level_value < 0:
|
|
logger.debug(str(message))
|
|
elif level_value == 0:
|
|
logger.info(str(message))
|
|
elif level_value == 1:
|
|
logger.warning(str(message))
|
|
else: # > 1
|
|
logger.error(str(message))
|
|
|
|
|
|
class PrintFunctions:
|
|
@staticmethod
|
|
def print(
|
|
message: AnyArgument, passthrough: ReturnableArgument, level: Optional[Integer] = None
|
|
) -> ReturnableArgument:
|
|
"""
|
|
:description:
|
|
Log the ``message`` and return ``passthrough``. Optionally can pass level,
|
|
where < 0 is debug, 0 is info, 1 is warning, > 1 is error. (default ``0``)
|
|
"""
|
|
_log(message=message, level=level)
|
|
return passthrough
|
|
|
|
@staticmethod
|
|
def print_if_true(
|
|
message: AnyArgument, passthrough: ReturnableArgument, level: Optional[Integer] = None
|
|
) -> ReturnableArgument:
|
|
"""
|
|
:description:
|
|
Log the ``message`` if ``passthrough`` evaluates to ``true``. Return
|
|
``passthrough``. Optionally can pass level, where < 0 is debug, 0 is info, 1
|
|
is warning, > 1 is error. (default ``0``)
|
|
"""
|
|
if passthrough.value:
|
|
_log(message=message, level=level)
|
|
return passthrough
|
|
|
|
@staticmethod
|
|
def print_if_false(
|
|
message: AnyArgument, passthrough: ReturnableArgument, level: Optional[Integer] = None
|
|
) -> ReturnableArgument:
|
|
"""
|
|
:description:
|
|
Log the ``message`` if ``passthrough`` evaluates to ``false``. Return
|
|
``passthrough``. Optionally can pass level, where < 0 is debug, 0 is info, 1
|
|
is warning, > 1 is error. (default ``0``)
|
|
"""
|
|
if not passthrough.value:
|
|
_log(message=message, level=level)
|
|
return passthrough
|