Source code for tempor.methods.preprocessing.imputation.hyperimpute_utils
"""Utilities for `hyperimpute`."""importcontextlibfromtypingimportGenerator
[docs]@contextlib.contextmanagerdefmonkeypatch_hyperimpute_logger()->Generator:"""In `hyperimpute`, at least as of version ``0.1.17``, the following call in `hyperimpute.logger` causes a conflict with `loguru` logger as used in TemporAI. To circumvent this problem, this context manager monkeypatches `loguru` ``logger.remove`` call with a no-op. To be used around `hyperimpute` imports. ``` from loguru import logger ... logger.remove() ``` """fromloguruimportloggeroriginal_remove=logger.removedefmonkeypatched_remove()->None:passlogger.remove=monkeypatched_remove# type: ignoretry:yieldfinally:logger.remove=original_remove# type: ignore