+
    ˜°³jI  ã                   ó¢   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 RR.t
 ! R R]4      t ! R	 R
]	4      t]! R4       ! R R]4      4       tR# )é    )ÚSized)ÚIntEnum)ÚNoReturn)Úfunctional_datapipe©ÚIterDataPipeÚSHARDING_PRIORITIESÚShardingFilterIterDataPipec                   ó"   € ] tR t^t^t^t^tRtR# )r	   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚDEFAULTÚDISTRIBUTEDÚMULTIPROCESSINGÚ__static_attributes__r   ó    Úi/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/utils/data/datapipes/iter/sharding.pyr	   r	      s   † Ø€GØ€KØ„Or   c                   ó2   a € ] tR t^t o V 3R lR ltRtV tR# )Ú_ShardingIterDataPipec                ó2   <€ V ^8„  d   QhRS[ RS[ RS[RS[/# )é   Únum_of_instancesÚinstance_idÚsharding_groupÚreturn)Úintr	   r   )ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú"_ShardingIterDataPipe.__annotate__   s3   ø€ ÷ "ñ "áð"ñ ð"ñ ,ð	"ñ
 
ñ"r   c                ó   € \         h©N)ÚNotImplementedError©Úselfr   r   r   s   &&&&r   Úapply_shardingÚ$_ShardingIterDataPipe.apply_sharding   s
   € ô "Ð!r   r   N)r   r   r   r   r)   r   Ú__classdictcell__)r!   s   @r   r   r      s   ø‡ € ÷"ö "r   r   Úsharding_filterc                   ó�   a a€ ] tR t^ t oRtRV3R lV 3R lllt]P                  3R ltV3R lR lt	R t
V3R lR	 ltR
tVtV ;t# )r
   aW  
Wrapper that allows DataPipe to be sharded (functional name: ``sharding_filter``).

After ``apply_sharding`` is called, each instance of the DataPipe (on different workers) will have every `n`-th element of the
original DataPipe, where `n` equals to the number of instances.

Args:
    source_datapipe: Iterable DataPipe that will be sharded
c                ó$   <€ V ^8„  d   QhRS[ RR/# )r   Úsource_datapiper   Nr   )r    r!   s   "€r   r"   Ú'ShardingFilterIterDataPipe.__annotate__,   s   ø€ ÷ 	(ñ 	(Ù+ð	(à	ñ	(r   c                ó†   <€ \         SV `  4        Wn        W n        / V n        ^V n        ^ V n        V P                  4        R# )é   N)ÚsuperÚ__init__r/   Úsharding_group_filterÚgroupsr   r   Ú_update_num_of_instances)r(   r/   r5   Ú	__class__s   &&&€r   r4   Ú#ShardingFilterIterDataPipe.__init__,   s?   ø€ ô 	‰ÑÔØ.ÔØ%:Ô"Ø24ˆŒØ !ˆÔØˆÔØ×%Ñ%Ö'r   c                ó€  € W!8¼  d   \        R V RV R24      hV\        P                  8X  dG   \        V P                  4      '       d+   \        P                  V P                  9  d   \        R4      hM*\        P                  V P                  9   d   \        R4      hW3V P                  V&   V P                  4        R# )zinstance_id(z*) should be smaller than num_of_instances(Ú)z8ShardingFilter cannot mix DEFAULT and non DEFAULT groupsN)Ú
ValueErrorr	   r   Úlenr6   ÚRuntimeErrorr7   r'   s   &&&&r   r)   Ú)ShardingFilterIterDataPipe.apply_sharding7   s³   € ð Ô*ÜØ˜{˜mÐ+UÐVfÐUgÐghÐióð ð Ô0×8Ñ8Ô8Ü�4—;‘;×ÒÔ$7×$?Ñ$?ÀtÇ{Á{Ô$RÜ"ØNóð øô #×*Ñ*¨d¯k©kÔ9Ü"ØNóð ð (8Ð&Eˆ�‰�NÑ#Ø×%Ñ%Ö'r   c                ó   <€ V ^8„  d   QhRR/# )r   r   Nr   )r    r!   s   "€r   r"   r0   K   s   ø€ ÷ <ñ <¨$ñ <r   c                ó®  € \        V P                  P                  4       4       Uu. uF6  pV P                  e   WP                  8X  g   K#  V P                  V,          NK8  	  ppVP	                  4        ^V n        ^ V n        V FH  w  r4V ;P                  V P
                  V,          ,          un        V ;P
                  V,          un        KJ  	  R # u upi r%   )Úsortedr6   Úkeysr5   Úreverser   r   )r(   ÚkeyÚsorted_sharding_groupsÚgroup_num_of_instancesÚgroup_instance_ids   &    r   r7   Ú3ShardingFilterIterDataPipe._update_num_of_instancesK   s¼   € ô ˜dŸk™k×.Ñ.Ó0Ô1ó"
á1�Ø×)Ñ)Ò1°S×<VÑ<VÑ5Vô ˆD�K‰K˜×ÐÙ1ð 	ð "
ð 	×&Ñ&Ô(à !ˆÔØˆÔã9OÑ5Ð"Ø×Ò × 5Ñ 5Ð8IÕ IÕIÕØ×!Ò!Ð%;Õ;×!ó :Pùò"
s   ¦ CÁCc              #  ó˜   "  € \        V P                  4       F,  w  rWP                  ,          V P                  8X  g   K(  Vx € K.  	  R # 5ir%   )Ú	enumerater/   r   r   )r(   ÚiÚitems   &  r   Ú__iter__Ú#ShardingFilterIterDataPipe.__iter__[   s8   é € Ü  ×!5Ñ!5Ö6‰GˆAØ×(Ñ(Õ(¨D×,<Ñ,<Ö<Ø”
ó 7ùs   ‚9A
Á 
A
c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )r   )r    r!   s   "€r   r"   r0   `   s   ø€ ÷ 
Uñ 
U™ñ 
Ur   c                óX  € \        V P                  \        4      '       dk   \        V P                  4      V P                  ,          V P
                  \        V P                  4      V P                  ,          8  d	   ^,           # ^ ,           # \        \        V 4      P                   R24      h)r2   z# instance doesn't have valid length)	Ú
isinstancer/   r   r=   r   r   Ú	TypeErrorÚtyper   )r(   s   &r   Ú__len__Ú"ShardingFilterIterDataPipe.__len__`   s’   € ä�d×*Ñ*¬E×2Ò2Ü�t×+Ñ+Ó,°×0EÑ0EÕEð ×$Ñ$¤s¨4×+?Ñ+?Ó'@À4×CXÑCXÕ'XÔXð õð ð
 õð ô œ4 ›:×.Ñ.Ð/Ð/RÐSÓTÐTr   )r6   r   r   r5   r/   r%   )r   r   r   r   Ú__doc__r4   r	   r   r)   r7   rN   rU   r   r+   Ú__classcell__)r8   r!   s   @@r   r
   r
       sF   ù‡ € ñ÷	(õ 	(ð =P×<WÑ<Wô(÷(<ð <ò ÷

U÷ 
Uð 
Ur   N)Úcollections.abcr   Úenumr   Útypingr   Ú%torch.utils.data.datapipes._decoratorr   Ú#torch.utils.data.datapipes.datapiper   Ú__all__r	   r   r
   r   r   r   Ú<module>r_      sc   ðå !Ý Ý å EÝ <ð Ø ð€ô˜'ô ô"˜Lô "ñ Ð&Ó'ôIUÐ!6ó IUó (òIUr   