@@ -152,6 +152,36 @@ def size(self) -> int | None:
152152        ...
153153
154154
155+ class  HasTranspose (Protocol ):
156+     """Protocol for array classes that support the transpose operation.""" 
157+ 
158+     @property  
159+     def  T (self ) ->  Self :  # noqa: N802 
160+         """Transpose of the array. 
161+ 
162+         The array instance must be two-dimensional. If the array instance is not 
163+         two-dimensional, an error should be raised. 
164+ 
165+         Returns: 
166+             Self: two-dimensional array whose first and last dimensions (axes) 
167+                 are permuted in reverse order relative to original array. The 
168+                 returned array must have the same data type as the original 
169+                 array. 
170+ 
171+         Notes: 
172+             Limiting the transpose to two-dimensional arrays (matrices) deviates 
173+             from the NumPy et al practice of reversing all axes for arrays 
174+             having more than two-dimensions. This is intentional, as reversing 
175+             all axes was found to be problematic (e.g., conflicting with the 
176+             mathematical definition of a transpose which is limited to matrices; 
177+             not operating on batches of matrices; et cetera). In order to 
178+             reverse all axes, one is recommended to use the functional 
179+             `PermuteDims` interface found in this specification. 
180+ 
181+         """ 
182+         ...
183+ 
184+ 
155185class  Array (
156186    # ------ Attributes ------- 
157187    HasDType [DTypeT_co ],
@@ -160,6 +190,7 @@ class Array(
160190    HasNDim ,
161191    HasShape ,
162192    HasSize ,
193+     HasTranspose ,
163194    # ------- Methods --------- 
164195    HasArrayNamespace [NamespaceT_co ],
165196    # ------------------------- 
0 commit comments