+
    –°³j…  ã                   óD   € ^ RI t ^ RIHt  ! R R] P                  4      tR# )é    Nc                   óT   a € ] tR t^t o Rt]P                  V 3R lR l4       tRtV t	R# )ÚSharderaT  
This is an interface which allows user to create more advanced
sharding strategies that are not easily be composed by the
`ShardingSpec`.

:class:`torch.distributed._shard.sharding_plan.ShardingPlan` could
take an object of the `Sharder` and call `shard` to shard the module,
then replace the original module with sharded module returned.
c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )é   ÚmoduleÚreturn)ÚnnÚModule)ÚformatÚ__classdict__s   "€Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/distributed/_shard/sharder.pyÚ__annotate__ÚSharder.__annotate__   s#   ø€ ÷ ñ ™BŸI™Ið ©"¯)©)ñ ó    c                ó   € R# )a)  
Shard a module base on the implementation of this method, and
return the sharded version of the module.

Args:
    module (:class:`torch.nn.Module`):
        The module to apply sharding to.
Returns:
    A :class:`torch.nn.Module` object that represents a module
    that's already been sharded.
N© )Úselfr   s   &&r   ÚshardÚSharder.shard   s   ‚ r   r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚabcÚabstractmethodr   Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r      s$   ø‡ € ñð 	×Ñ÷ó ör   r   )r   Útorch.nnr	   ÚABCr   r   r   r   Ú<module>r!      s   ðÛ 
å ôˆc�g‰gö r   