Source code for metaheuristic_designer.reporters.create_reporter
"""
Factory function for reporter objects.
"""
from ..reporter import Reporter
from .tqdm_reporter import TQDMReporter
from .verbose_reporter import VerboseReporter
from .silent_reporter import SilentReporter
[docs]
def create_reporter(reporter_name: str, **kwargs) -> Reporter:
"""Instantiate a reporter by name.
Parameters
----------
reporter_name : str
One of ``"silent"``, ``"tqdm"``, or ``"verbose"``.
**kwargs
Forwarded to the reporter constructor.
Returns
-------
Reporter
A concrete reporter instance.
Raises
------
ValueError
If *reporter_name* is not recognized.
"""
reporter = None
match reporter_name:
case "silent" | "nothing":
reporter = SilentReporter(**kwargs)
case "tqdm":
reporter = TQDMReporter(**kwargs)
case "verbose":
reporter = VerboseReporter(**kwargs)
case _:
raise ValueError(f'Reporter type "{reporter_name}"not available.')
return reporter