stouputils.ctx module — stouputils 1.0.18 documentation

# stouputils.ctx module

This module provides context managers for temporarily silencing output.

- Muffle: Context manager that temporarily silences output (alternative to stouputils.decorators.silent())

- LogToFile: Context manager to log to a file every calls to the print functions in stouputils.print

class Muffle(mute_stderr: bool = False)

  Bases: `object`

  Context manager that temporarily silences output.

  Alternative to stouputils.decorators.silent()

  Examples

      >>> with Muffle():
      ...     print("This will not be printed")

class LogToFile(path: str, mode: str = 'w', encoding: str = 'utf-8')

  Bases: `object`

  Context manager to log to a file.

  This context manager allows you to temporarily log output to a file while still printing normally. The file will receive log messages without ANSI color codes.

  Parameters:

    - path (str) – Path to the log file

    - mode (str) – Mode to open the file in (default: “w”)

    - encoding (str) – Encoding to use for the file (default: “utf-8”)

  Examples

      >>> with LogToFile("output.log"):
      ...     from stouputils.print import info
      ...     info("This will be logged to output.log and printed normally")

  static common(logs_folder: str, filepath: str, func: Callable[[...], Any], *args: Any, **kwargs: Any) → Any

    Common code used at the beginning of a program to launch main function

    Parameters:

      - logs_folder (str) – Folder to store logs in

      - filepath (str) – Path to the main function

      - func (Callable[..., Any]) – Main function to launch

      - *args (tuple[Any, ...]) – Arguments to pass to the main function

      - **kwargs (dict[str, Any]) – Keyword arguments to pass to the main function

    Returns:

      Return value of the main function

    Return type:

      Any

    Examples

        >>> if __name__ == "__main__":
        ...     LogToFile.common(f"{ROOT}/logs", __file__, main)