_misc
TOC
- Functions:
- 🅵 _create_table - Create a formatted table from the given header and contents.
 
 - Classes:
- 🅲 CacheOut - A decorator class to cache the output of a method.
 
 
Functions
🅵 _create_table
_create_table
def _create_table(
    header: str | list[str] | tuple[str, ...] | None,
    contents: Sequence[str] | Sequence[Sequence[str]],
    prefix: str = "\n",
    **table_kwargs: Any
) -> str:
    if len(contents) > 0 and isinstance(contents[0], str):
        contents = [(i,) for i in contents]
    if header is None:
        header = ()
    if not isinstance(header, (list, tuple)):
        header = [header]
    table = tabulate(
        contents, headers=header, tablefmt="fancy_grid", **table_kwargs
    )
    return prefix + table
Create a formatted table from the given header and contents.
This function takes a header and contents, optionally a prefix, and additional keyword arguments for table formatting. It then creates a table using the tabulate library and prepends the specified prefix.
Parameters:
- header (str | list[str] | tuple[str, ...] | None]]): The header for the table. Can be a string, list of strings, tuple of strings, or None.
 - contents (Sequence[str] | Sequence[Sequence[str]]]): The contents of the table. Can be a sequence of strings or a sequence of sequences of strings.
 - prefix (str): A prefix to prepend to the table. Default is a newline character.
 - **table_kwargs (Any): Additional keyword arguments to pass to the tabulate function.
 
Returns:
- str: A formatted string representing the table with the specified prefix.
 
Classes
🅲 CacheOut
class CacheOut:
A decorator class to cache the output of a method.
This class is designed to be used as a decorator for methods. It caches the output of the decorated method in the instance's `cached_elem` attribute. If the cached value is not equal to the instance itself, it sets the cached value and returns it. Otherwise, it simply returns the cached value.
Methods: __call__: Decorates a method to cache its output.
🅼 __call__
__call__
def __call__(self, func: Callable[..., Any]):
    @functools.wraps(func)
    def _cache(self) -> Any:
        if not hasattr(self, "cached_elem"):
            cached_elem = func(self)
            if cached_elem != self:
                self.cached_elem = cached_elem
            return cached_elem
        return self.cached_elem
    return _cache
Decorates a method to cache its output.
Parameters:
Returns: