o
    z“©ik  ã                   @   s4   d Z ddlmZmZ ddlmZ G dd„ deƒZdS )z_
Lambda Callback
^^^^^^^^^^^^^^^

Create a simple callback on the fly using lambda functions.

é    )ÚCallableÚOptional)ÚCallbackc                L   @   sŽ  e Zd ZdZ																																					d*dee dee dee dee dee dee d	ee d
ee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee dee d ee d!ee d"ee d#ee d$ee d%ee d&ee d'ee fJd(d)„ZdS )+ÚLambdaCallbackaŒ  Create a simple callback on the fly using lambda functions.

    Args:
        **kwargs: hooks supported by :class:`~pytorch_lightning.callbacks.callback.Callback`

    Example::

        >>> from pytorch_lightning import Trainer
        >>> from pytorch_lightning.callbacks import LambdaCallback
        >>> trainer = Trainer(callbacks=[LambdaCallback(setup=lambda *args: print('setup'))])

    NÚsetupÚteardownÚon_fit_startÚ
on_fit_endÚon_sanity_check_startÚon_sanity_check_endÚon_train_batch_startÚon_train_batch_endÚon_train_epoch_startÚon_train_epoch_endÚon_validation_epoch_startÚon_validation_epoch_endÚon_test_epoch_startÚon_test_epoch_endÚon_validation_batch_startÚon_validation_batch_endÚon_test_batch_startÚon_test_batch_endÚon_train_startÚon_train_endÚon_validation_startÚon_validation_endÚon_test_startÚon_test_endÚon_exceptionÚon_save_checkpointÚon_load_checkpointÚon_before_backwardÚon_after_backwardÚon_before_optimizer_stepÚon_before_zero_gradÚon_predict_startÚon_predict_endÚon_predict_batch_startÚon_predict_batch_endÚon_predict_epoch_startÚon_predict_epoch_endc&           (      C   s6   t ƒ  ¡ D ]\}&}'|&dkrq|'d urt| |&|'ƒ qd S )NÚself)ÚlocalsÚitemsÚsetattr)(r+   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   ÚkÚv© r1   ú_/home/ubuntu/.local/lib/python3.10/site-packages/pytorch_lightning/callbacks/lambda_function.pyÚ__init__)   s   (€üzLambdaCallback.__init__)%NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r3   r1   r1   r1   r2   r      sä    Úþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Úr   N)r7   Útypingr   r   Ú$pytorch_lightning.callbacks.callbackr   r   r1   r1   r1   r2   Ú<module>   s   