def try_log_autologging_event(log_fn, *args): try: log_fn(*args) except Exception as e: _logger.debug( "Failed to log autologging event via '%s'. Exception: %s", log_fn, e, )
def log_autolog_called(self, integration, call_args, call_kwargs): """ Called when the `autolog()` method for an autologging integration is invoked (e.g., when a user invokes `mlflow.sklearn.autolog()`) :param integration: The autologging integration for which `autolog()` was called. :param call_args: **DEPRECATED** The positional arguments passed to the `autolog()` call. This field is empty in MLflow > 1.13.1; all arguments are passed in keyword form via `call_kwargs`. :param call_kwargs: The arguments passed to the `autolog()` call in keyword form. Any positional arguments should also be converted to keyword form and passed via `call_kwargs`. """ if len(call_args) > 0: warnings.warn( "Received %d positional arguments via `call_args`. `call_args` is" " deprecated in MLflow > 1.13.1, and all arguments should be passed" " in keyword form via `call_kwargs`." % len(call_args), category=DeprecationWarning, stacklevel=2, ) _logger.debug( "Called autolog() method for %s autologging with args '%s' and kwargs '%s'", integration, call_args, call_kwargs, )
def log_original_function_error(self, session, patch_obj, function_name, call_args, call_kwargs, exception): """ Called during the execution of a patched API associated with an autologging integration when the original / underlying API invocation terminates with an error. For example, when a patched implementation of `sklearn.linear_model.LogisticRegression.fit()` invokes the original / underlying implementation of `LogisticRegression.fit()`, then this function is called if the original / underlying implementation terminates with an exception. :param session: The `AutologgingSession` associated with the patched API call. :param patch_obj: The object (class, module, etc) on which the original API was called. :param function_name: The name of the original API that was called. :param call_args: The positional arguments passed to the original API call. :param call_kwargs: The keyword arguments passed to the original API call. :param exception: The exception that caused the original API call to terminate. """ _logger.debug( "Original function invocation threw exception during execution of patched" " API call '%s.%s' for %s autologging. Original function was invoked with" " args '%s' and kwargs '%s'. Exception: %s", patch_obj, function_name, session.integration, call_args, call_kwargs, exception, )
def update_wrapper_extended(wrapper, wrapped): """ Update a `wrapper` function to look like the `wrapped` function. This is an extension of `functools.update_wrapper` that applies the docstring *and* signature of `wrapped` to `wrapper`, producing a new function. :return: A new function with the same implementation as `wrapper` and the same docstring & signature as `wrapped`. """ updated_wrapper = functools.update_wrapper(wrapper, wrapped) # Assign the signature of the `wrapped` function to the updated wrapper function. # Certain frameworks may disallow signature inspection, causing `inspect.signature()` to throw. # One such example is the `tensorflow.estimator.Estimator.export_savedmodel()` function try: updated_wrapper.__signature__ = inspect.signature(wrapped) except Exception: _logger.debug("Failed to restore original signature for wrapper around %s", wrapped) return updated_wrapper
def log_patch_function_start(self, session, patch_obj, function_name, call_args, call_kwargs): """ Called upon invocation of a patched API associated with an autologging integration (e.g., `sklearn.linear_model.LogisticRegression.fit()`). :param session: The `AutologgingSession` associated with the patched API call. :param patch_obj: The object (class, module, etc) on which the patched API was called. :param function_name: The name of the patched API that was called. :param call_args: The positional arguments passed to the patched API call. :param call_kwargs: The keyword arguments passed to the patched API call. """ _logger.debug( "Invoked patched API '%s.%s' for %s autologging with args '%s' and kwargs '%s'", patch_obj, function_name, session.integration, call_args, call_kwargs, )
def log_original_function_start(self, session, patch_obj, function_name, call_args, call_kwargs): """ Called during the execution of a patched API associated with an autologging integration when the original / underlying API is invoked. For example, this is called when a patched implementation of `sklearn.linear_model.LogisticRegression.fit()` invokes the original implementation of `sklearn.linear_model.LogisticRegression.fit()`. :param session: The `AutologgingSession` associated with the patched API call. :param patch_obj: The object (class, module, etc) on which the original API was called. :param function_name: The name of the original API that was called. :param call_args: The positional arguments passed to the original API call. :param call_kwargs: The keyword arguments passed to the original API call. """ _logger.debug( "Original function invoked during execution of patched API '%s.%s' for %s" " autologging. Original function was invoked with args '%s' and kwargs '%s'", patch_obj, function_name, session.integration, call_args, call_kwargs, )
def log_patch_function_error(self, session, patch_obj, function_name, call_args, call_kwargs, exception): """ Called when execution of a patched API associated with an autologging integration (e.g., `sklearn.linear_model.LogisticRegression.fit()`) terminates with an exception. :param session: The `AutologgingSession` associated with the patched API call. :param patch_obj: The object (class, module, etc) on which the patched API was called. :param function_name: The name of the patched API that was called. :param call_args: The positional arguments passed to the patched API call. :param call_kwargs: The keyword arguments passed to the patched API call. :param exception: The exception that caused the patched API call to terminate. """ _logger.debug( "Patched API call '%s.%s' for %s autologging threw exception. Patched API was" " called with args '%s' and kwargs '%s'. Exception: %s", patch_obj, function_name, session.integration, call_args, call_kwargs, exception, )