import functools import os from typing import Any, Callable """ This file contains some decorators for visualization. To use all of this decorators, you MUST set env RUNNING_UNITTESTS=1. """ def show_name_args(func: Callable) -> Callable: """ A decorator that prints function information when running under unittests. Args: func (Callable): The function to wrap with the decorator. Returns: Callable: The wrapped function with conditional logging. """ @functools.wraps(func) def wrapper(*args: Any, **kwargs: Any) -> Any: # Check if running under unittest environment (e.g., an environment variable is set) if os.getenv("RUNNING_UNITTESTS"): print(f"Calling {func.__name__} with args {args} and kwargs {kwargs}") return func(*args, **kwargs) return wrapper if __name__ == "__main__": # Example of using the decorator @show_name_args def my_function(x: int, y: int) -> int: """Add two numbers.""" return x + y print(my_function(1, 4))