ó
    Eñi…  ã                   óB   • S SK r S SKJr   " S S\ R                  5      rg)é    Nc                   óp   • \ rS rSrSr\R                  S\R                  S\R                  4S j5       r	Sr
g)ÚSharderé   aT  
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.
ÚmoduleÚreturnc                 ó   • g)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     Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/distributed/_shard/sharder.pyÚshardÚSharder.shard   s   � ó    r	   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚabcÚabstractmethodÚnnÚModuler   Ú__static_attributes__r	   r   r   r   r      s7   † ñð 	×Ñð˜BŸI™Ið ¨"¯)©)ó ó ór   r   )r   Útorch.nnr   ÚABCr   r	   r   r   Ú<module>r      s   ðÛ 
å ôˆc�g‰gõ r   