
    Vpf                     P     G d  d          Z  e             Z G d de          ZdS )c                       e Zd Zd ZdS ) _UnconstrainedPartitionSingletonc                     dS )NUNCONSTRAINED selfs    W/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/partition_spec.py__repr__z)_UnconstrainedPartitionSingleton.__repr__   s    ?    N)__name__
__module____qualname__r
   r   r   r	   r   r      s#            r   r   c                   .    e Zd ZdZeZd Zd Zd Zd Z	dS )PartitionSpecah  Tuple describing how to partition an array across a mesh of devices.

  Each element is either ``None``, a string, or a tuple of strings.
  See the documentation of :class:`jax.sharding.NamedSharding` for more details.

  This class exists so JAX's pytree utilities can distinguish a partition
  specifications from tuples that should be treated as pytrees.
  c                     d S Nr   )r   
partitionss     r	   __init__zPartitionSpec.__init__(   s    Dr   c                 B    t                               t          |          S r   )tuple__new__r   )clsr   s     r	   r   zPartitionSpec.__new__+   s    ==
333r   c                 <    dt                               |           z  S )NzPartitionSpec%s)r   r
   r   s    r	   r
   zPartitionSpec.__repr__.   s    u~~d3333r   c                 .    t           t          |           fS r   )r   r   r   s    r	   
__reduce__zPartitionSpec.__reduce__1   s    5;;''r   N)
r   r   r   __doc___UNCONSTRAINED_PARTITIONr   r   r   r
   r   r   r   r	   r   r      sa          +-	 	 	4 4 44 4 4( ( ( ( (r   r   N)r   r   r   r   r   r   r	   <module>r      sr           <;== ( ( ( ( (E ( ( ( ( (r   