Ë
    ÿÍ:j"$  ã                   óB  — d dl mZmZmZ d dlmZ e G d„ d«      «       Ze G d„ de«      «       Ze G d„ de«      «       Ze G d	„ d
e«      «       Z	e G d„ de«      «       Z
e G d„ de
«      «       Ze G d„ de
«      «       Ze G d„ de«      «       Ze G d„ de«      «       Zy)é    )ÚasdictÚ	dataclassÚfield)Úoverridec                   óN   — e Zd ZdZdefd„Zdeddfd„Zededd fd„«       Zd	d„Z	y)
Ú_BaseProgressz>Mixin that implements state-loading utilities for dataclasses.Úreturnc                 ó   — t        | «      S ©N)r   ©Úselfs    úu/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/pytorch_lightning/loops/progress.pyÚ
state_dictz_BaseProgress.state_dict   s   € Ü�d‹|Ðó    r   Nc                 ó:   — | j                   j                  |«       y r   )Ú__dict__Úupdate©r   r   s     r   Úload_state_dictz_BaseProgress.load_state_dict   s   € Ø�‰×Ñ˜ZÕ(r   c                 ó6   —  | «       }|j                  |«       |S r   )r   )Úclsr   Úobjs      r   Úfrom_state_dictz_BaseProgress.from_state_dict   s   € á‹eˆØ×Ñ˜JÔ'Øˆ
r   c                 ó   — t         ‚)zReset the object's state.)ÚNotImplementedErrorr   s    r   Úresetz_BaseProgress.reset#   s   € ä!Ð!r   ©r	   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Údictr   r   Úclassmethodr   r   © r   r   r   r      sK   „ áHð˜Dó ð)¨$ð )°4ó )ð ð¨ð °/ò ó ðô
"r   r   c                   óX   — e Zd ZU dZdZeed<   dZeed<   edd„«       Z	dd„Z
d	eddfd
„Zy)Ú_ReadyCompletedTrackeraF  Track an event's progress.

    Args:
        ready: Intended to track the number of events ready to start.
        completed: Intended to be incremented after the event completes (e.g. after ``on_*_end`` runs).

    These attributes should be increased in order, that is, :attr:`ready` first and :attr:`completed` last.

    r   ÚreadyÚ	completedr	   Nc                 ó    — d| _         d| _        y)zReset the state.r   N©r'   r(   r   s    r   r   z_ReadyCompletedTracker.reset7   s   € ð ˆŒ
Øˆ�r   c                 ó&   — | j                   | _        y)z®Reset the progress on restart.

        If there is a failure before all attributes are increased, restore the attributes to the last fully completed
        value.

        N)r(   r'   r   s    r   Úreset_on_restartz'_ReadyCompletedTracker.reset_on_restart=   s   € ð —^‘^ˆ�
r   Únc                 óX   — | xj                   |z  c_         | xj                  |z  c_        y r   r*   ©r   r-   s     r   Úincrement_byz#_ReadyCompletedTracker.increment_byF   s   € Ø�
Š
�a‰�
Ø�Š˜!ÑŽr   r   )r   r   r    r!   r'   ÚintÚ__annotations__r(   r   r   r,   r0   r$   r   r   r&   r&   (   sF   … ñð €Eˆ3ƒNØ€IˆsÓàòó ðó
$ð˜cð  dô r   r&   c                   ór   ‡ — e Zd ZU dZdZeed<   ed
ˆ fd„«       Zed
ˆ fd„«       Z	ededdfˆ fd	„«       Z
ˆ xZS )Ú_StartedTrackera¯  Track an event's progress.

    Args:
        ready: Intended to track the number of events ready to start.
        started: Intended to be incremented after the event is started (e.g. after ``on_*_start`` runs).
        completed: Intended to be incremented after the event completes (e.g. after ``on_*_end`` runs).

    These attributes should be increased in order, that is, :attr:`ready` first and :attr:`completed` last.

    r   Ústartedr	   Nc                 ó0   •— t         ‰| �  «        d| _        y ©Nr   )Úsuperr   r5   ©r   Ú	__class__s    €r   r   z_StartedTracker.resetZ   s   ø€ ä‰‰ŒØˆ�r   c                 óD   •— t         ‰| �  «        | j                  | _        y r   )r8   r,   r(   r5   r9   s    €r   r,   z _StartedTracker.reset_on_restart_   s   ø€ ä‰Ñ Ô"Ø—~‘~ˆ�r   r-   c                 óN   •— t         ‰| �  |«       | xj                  |z  c_        y r   )r8   r0   r5   ©r   r-   r:   s     €r   r0   z_StartedTracker.increment_byd   s   ø€ ä‰Ñ˜QÔØ�Š˜ÑŽr   r   )r   r   r    r!   r5   r1   r2   r   r   r,   r0   Ú__classcell__©r:   s   @r   r4   r4   K   s\   ø… ñ	ð €GˆSÓàôó ðð ô&ó ð&ð ð˜cð  dô ó ôr   r4   c                   ór   ‡ — e Zd ZU dZdZeed<   ed
ˆ fd„«       Zed
ˆ fd„«       Z	ededdfˆ fd	„«       Z
ˆ xZS )Ú_ProcessedTrackeraû  Track an event's progress.

    Args:
        ready: Intended to track the number of events ready to start.
        started: Intended to be incremented after the event is started (e.g. after ``on_*_start`` runs).
        processed: Intended to be incremented after the event is processed.
        completed: Intended to be incremented after the event completes (e.g. after ``on_*_end`` runs).

    These attributes should be increased in order, that is, :attr:`ready` first and :attr:`completed` last.

    r   Ú	processedr	   Nc                 ó0   •— t         ‰| �  «        d| _        y r7   )r8   r   rB   r9   s    €r   r   z_ProcessedTracker.resetz   s   ø€ ä‰‰ŒØˆ�r   c                 óD   •— t         ‰| �  «        | j                  | _        y r   )r8   r,   r(   rB   r9   s    €r   r,   z"_ProcessedTracker.reset_on_restart   s   ø€ ä‰Ñ Ô"ØŸ™ˆ�r   r-   c                 óN   •— t         ‰| �  |«       | xj                  |z  c_        y r   )r8   r0   rB   r=   s     €r   r0   z_ProcessedTracker.increment_by„   s   ø€ ä‰Ñ˜QÔØ�Š˜!ÑŽr   r   )r   r   r    r!   rB   r1   r2   r   r   r,   r0   r>   r?   s   @r   rA   rA   j   s\   ø… ñ
ð €IˆsÓàôó ðð ô(ó ð(ð ð˜cð  dô ó ôr   rA   c                   óâ   — e Zd ZU dZ ee¬«      Zeed<    ee¬«      Z	eed<   dd„Z
dd„Zdd	„Zdd
„Zdd„Zedee   dedd fd„«       Zedd„«       Zdd„Zdd„Zdeddfd„Zededdfd„«       Zy)Ú	_Progressz½Track aggregated and current progress.

    Args:
        total: Intended to track the total progress of an event.
        current: Intended to track the current progress of an event.

    ©Údefault_factoryÚtotalÚcurrentr	   Nc                 ór   — | j                   j                  | j                  j                  urt        d«      ‚y )Nz?The `total` and `current` instances should be of the same class)rJ   r:   rK   Ú
ValueErrorr   s    r   Ú__post_init__z_Progress.__post_init__—   s/   € Ø�:‰:×Ñ t§|¡|×'=Ñ'=Ñ=ÜÐ^Ó_Ð_ð >r   c                 ó€   — | j                   xj                  dz  c_        | j                  xj                  dz  c_        y ©Né   )rJ   r'   rK   r   s    r   Úincrement_readyz_Progress.increment_ready›   s,   € Ø�
‰
×Ò˜AÑÕØ�‰×Ò˜aÑÖr   c                 ó  — t        | j                  t        «      s-t        d| j                  j                  j
                  › d�«      ‚| j                  xj                  dz  c_        | j                  xj                  dz  c_        y )Nú`z$` doesn't have a `started` attributerQ   )Ú
isinstancerJ   r4   Ú	TypeErrorr:   r   r5   rK   r   s    r   Úincrement_startedz_Progress.increment_startedŸ   s`   € Ü˜$Ÿ*™*¤oÔ6Ü˜a §
¡
× 4Ñ 4× =Ñ =Ð>Ð>bÐcÓdÐdØ�
‰
×Ò˜aÑÕØ�‰×Ò Ñ!Ör   c                 ó  — t        | j                  t        «      s-t        d| j                  j                  j
                  › d�«      ‚| j                  xj                  dz  c_        | j                  xj                  dz  c_        y )NrT   z&` doesn't have a `processed` attributerQ   )rU   rJ   rA   rV   r:   r   rB   rK   r   s    r   Úincrement_processedz_Progress.increment_processed¥   sa   € Ü˜$Ÿ*™*Ô&7Ô8Ü˜a §
¡
× 4Ñ 4× =Ñ =Ð>Ð>dÐeÓfÐfØ�
‰
×Ò Ñ!ÕØ�‰×Ò !Ñ#Ör   c                 ó€   — | j                   xj                  dz  c_        | j                  xj                  dz  c_        y rP   )rJ   r(   rK   r   s    r   Úincrement_completedz_Progress.increment_completed«   s,   € Ø�
‰
×Ò Ñ!ÕØ�‰×Ò !Ñ#Ör   Útracker_clsÚkwargsc                 ó.   —  |  |di |¤Ž |di |¤Ž¬«      S )zZUtility function to easily create an instance from keyword arguments to both ``Tracker``s.)rJ   rK   r$   r$   )r   r\   r]   s      r   Úfrom_defaultsz_Progress.from_defaults¯   s!   € ñ ™Ñ. vÑ.¹Ñ8MÀfÑ8MÔNÐNr   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )rJ   r   rK   r   s    r   r   z_Progress.reset´   s"   € à�
‰
×ÑÔØ�‰×ÑÕr   c                 ó8   — | j                   j                  «        y r   )rK   r   r   s    r   Úreset_on_runz_Progress.reset_on_run¹   s   € Ø�‰×ÑÕr   c                 ó8   — | j                   j                  «        y r   )rK   r,   r   s    r   r,   z_Progress.reset_on_restart¼   s   € Ø�‰×%Ñ%Õ'r   r-   c                 óp   — | j                   j                  |«       | j                  j                  |«       y r   )rJ   r0   rK   r/   s     r   r0   z_Progress.increment_by¿   s&   € Ø�
‰
×Ñ Ô"Ø�‰×!Ñ! !Õ$r   r   c                 ó|   — | j                   j                  |d   «       | j                  j                  |d   «       y )NrJ   rK   )rJ   r   rK   r   s     r   r   z_Progress.load_state_dictÃ   s0   € à�
‰
×"Ñ" :¨gÑ#6Ô7Ø�‰×$Ñ$ Z°	Ñ%:Õ;r   r   )r   r   r    r!   r   rA   rJ   r&   r2   rK   rN   rR   rW   rY   r[   r#   Útyper1   r_   r   r   rb   r,   r0   r"   r   r$   r   r   rG   rG   Š   sÎ   … ññ %*Ð:KÔ$L€EÐ!ÓLÙ&+Ð<MÔ&N€GÐ#ÓNó`ó ó"ó$ó$ð ðO¨Ð-CÑ(Dð OÐPSð OÐXcò Oó ðOð òó ðóó(ð%˜cð % dó %ð ð<¨$ð <°4ò <ó ñ<r   rG   c                   óŒ   ‡ — e Zd ZU dZdZeed<   edˆ fd„«       Zedˆ fd„«       Z	dde
deddfˆ fd	„Zed
eddfˆ fd„«       Zˆ xZS )Ú_BatchProgressaW  Tracks batch progress.

    These counters are local to a trainer rank. By default, they are not globally synced across all ranks.

    Args:
        total: Tracks the total batch progress.
        current: Tracks the current batch progress.
        is_last_batch: Whether the batch is the last one. This is useful for iterable datasets.

    FÚis_last_batchr	   Nc                 ó0   •— t         ‰| �  «        d| _        y ©NF)r8   r   ri   r9   s    €r   r   z_BatchProgress.resetØ   s   ø€ ä‰‰ŒØ"ˆÕr   c                 ó0   •— t         ‰| �  «        d| _        y rk   )r8   rb   ri   r9   s    €r   rb   z_BatchProgress.reset_on_runÝ   s   ø€ ä‰ÑÔØ"ˆÕr   r-   c                 ó2   •— t         ‰| �  |«       || _        y r   )r8   r0   ri   )r   r-   ri   r:   s      €r   r0   z_BatchProgress.increment_byâ   s   ø€ Ü‰Ñ˜QÔØ*ˆÕr   r   c                 ó8   •— t         ‰| �  |«       |d   | _        y )Nri   )r8   r   ri   )r   r   r:   s     €r   r   z_BatchProgress.load_state_dictæ   s   ø€ ä‰Ñ 
Ô+Ø'¨Ñ8ˆÕr   r   )F)r   r   r    r!   ri   Úboolr2   r   r   rb   r1   r0   r"   r   r>   r?   s   @r   rh   rh   É   sv   ø… ñ	ð  €M�4Óàô#ó ð#ð ô#ó ð#ñ+˜cð +°$ð +À4õ +ð ð9¨$ð 9°4ô 9ó ô9r   rh   c                   óJ   — e Zd ZU dZ ee¬«      Zeed<    ee¬«      Zeed<   y)Ú_SchedulerProgressa  Tracks scheduler progress.

    These counters are local to a trainer rank. By default, they are not globally synced across all ranks.

    Args:
        total: Tracks the total scheduler progress.
        current: Tracks the current scheduler progress.

    rH   rJ   rK   N)	r   r   r    r!   r   r&   rJ   r2   rK   r$   r   r   rq   rq   ì   s+   … ññ %*Ð:PÔ$Q€EÐ!ÓQÙ&+Ð<RÔ&S€GÐ#ÔSr   rq   c                   óŠ   — e Zd ZU dZ ed„ ¬«      Zeed<    ed„ ¬«      Zeed<   e	dd	„«       Z
dd
„Zdd„Ze	deddfd„«       Zy)Ú_OptimizerProgressz’Track optimizer progress.

    Args:
        step: Tracks ``optimizer.step`` calls.
        zero_grad: Tracks ``optimizer.zero_grad`` calls.

    c                  ó4   — t         j                  t        «      S r   )rG   r_   r&   r$   r   r   ú<lambda>z_OptimizerProgress.<lambda>  s   € ´I×4KÑ4KÔLbÓ4c€ r   rH   Ústepc                  ó4   — t         j                  t        «      S r   )rG   r_   r4   r$   r   r   ru   z_OptimizerProgress.<lambda>  s   € ¼×9PÑ9PÔQ`Ó9a€ r   Ú	zero_gradr	   Nc                 ól   — | j                   j                  «        | j                  j                  «        y r   )rv   r   rx   r   s    r   r   z_OptimizerProgress.reset	  s    € à�	‰	�‰ÔØ�‰×ÑÕr   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )rv   rb   rx   r   s    r   rb   z_OptimizerProgress.reset_on_run  s"   € Ø�	‰	×ÑÔ Ø�‰×#Ñ#Õ%r   c                 ól   — | j                   j                  «        | j                  j                  «        y r   )rv   r,   rx   r   s    r   r,   z#_OptimizerProgress.reset_on_restart  s"   € Ø�	‰	×"Ñ"Ô$Ø�‰×'Ñ'Õ)r   r   c                 ó|   — | j                   j                  |d   «       | j                  j                  |d   «       y )Nrv   rx   )rv   r   rx   r   s     r   r   z"_OptimizerProgress.load_state_dict  s0   € à�	‰	×!Ñ! *¨VÑ"4Ô5Ø�‰×&Ñ& z°+Ñ'>Õ?r   r   )r   r   r    r!   r   rv   rG   r2   rx   r   r   rb   r,   r"   r   r$   r   r   rs   rs   ü   sk   … ññ Ñ,cÔd€Dˆ)ÓdÙ Ñ1aÔb€IˆyÓbàòó ðó&ó*ð ð@¨$ð @°4ò @ó ñ@r   rs   c                   ó€   — e Zd ZU dZ ee¬«      Zeed<   ede	fd„«       Z
edd„«       Zdd„Zdd	„Zed
eddfd„«       Zy)Ú_OptimizationProgressz[Track optimization progress.

    Args:
        optimizer: Tracks optimizer progress.

    rH   Ú	optimizerr	   c                 óV   — | j                   j                  j                  j                  S r   )r   rv   rJ   r(   r   s    r   Úoptimizer_stepsz%_OptimizationProgress.optimizer_steps'  s   € à�~‰~×"Ñ"×(Ñ(×2Ñ2Ð2r   Nc                 ó8   — | j                   j                  «        y r   )r   r   r   s    r   r   z_OptimizationProgress.reset+  s   € à�‰×ÑÕr   c                 ó8   — | j                   j                  «        y r   )r   rb   r   s    r   rb   z"_OptimizationProgress.reset_on_run/  s   € Ø�‰×#Ñ#Õ%r   c                 ó8   — | j                   j                  «        y r   )r   r,   r   s    r   r,   z&_OptimizationProgress.reset_on_restart2  s   € Ø�‰×'Ñ'Õ)r   r   c                 ó@   — | j                   j                  |d   «       y )Nr   )r   r   r   s     r   r   z%_OptimizationProgress.load_state_dict5  s   € à�‰×&Ñ& z°+Ñ'>Õ?r   r   )r   r   r    r!   r   rs   r   r2   Úpropertyr1   r�   r   r   rb   r,   r"   r   r$   r   r   r~   r~     sw   … ññ %*Ð:LÔ$M€IÐ!ÓMàð3 ò 3ó ð3ð òó ðó&ó*ð ð@¨$ð @°4ò @ó ñ@r   r~   N)Údataclassesr   r   r   Útyping_extensionsr   r   r&   r4   rA   rG   rh   rq   rs   r~   r$   r   r   ú<module>r‰      s  ð÷ 1Ñ 0å &ð ÷"ð "ó ð"ð( ô˜]ó ó ððD ôÐ,ó ó ðð< ô˜ó ó ðð> ô;<�ó ;<ó ð;<ð| ô9�Yó 9ó ð9ðD ôT˜ó Tó ðTð ô@˜ó @ó ð@ð> ô@˜Mó @ó ñ@r   