@@ -226,20 +226,39 @@ def __rtruediv__(self, other: Self | ScalarLike) -> Self: ...
226226Scalar = ScalarLike
227227ScalarLikeT = TypeVar ("ScalarLikeT" , bound = ScalarLike )
228228
229+ # NOTE: I'm kind of not sure about the *Tc versions of these type variables.
230+ # mypy seems better at understanding arithmetic performed on the *Tc versions
231+ # than the *T, versions, whereas pyright doesn't seem to care.
232+ #
233+ # This issue seems to be part of it:
234+ # https://github.com/python/mypy/issues/18203
235+ # but there is likely other stuff lurking.
236+ #
237+ # For now, they're purposefully not in the main arraycontext.* name space.
229238ArrayT = TypeVar ("ArrayT" , bound = Array )
230239ArrayOrScalar : TypeAlias = "Array | ScalarLike"
231240ArrayOrContainer : TypeAlias = "Array | ArrayContainer"
232241ArrayOrArithContainer : TypeAlias = "Array | ArithArrayContainer"
233242ArrayOrContainerT = TypeVar ("ArrayOrContainerT" , bound = ArrayOrContainer )
243+ ArrayOrContainerTc = TypeVar ("ArrayOrContainerTc" ,
244+ Array , "ArrayContainer" , "ArithArrayContainer" )
234245ArrayOrArithContainerT = TypeVar ("ArrayOrArithContainerT" , bound = ArrayOrArithContainer )
246+ ArrayOrArithContainerTc = TypeVar ("ArrayOrArithContainerTc" ,
247+ Array , "ArithArrayContainer" )
235248ArrayOrContainerOrScalar : TypeAlias = "Array | ArrayContainer | ScalarLike"
236249ArrayOrArithContainerOrScalar : TypeAlias = "Array | ArithArrayContainer | ScalarLike"
237250ArrayOrContainerOrScalarT = TypeVar (
238251 "ArrayOrContainerOrScalarT" ,
239252 bound = ArrayOrContainerOrScalar )
240253ArrayOrArithContainerOrScalarT = TypeVar (
241254 "ArrayOrArithContainerOrScalarT" ,
242- bound = ArrayOrContainerOrScalar )
255+ bound = ArrayOrArithContainerOrScalar )
256+ ArrayOrContainerOrScalarTc = TypeVar (
257+ "ArrayOrContainerOrScalarTc" ,
258+ ScalarLike , Array , "ArrayContainer" , "ArithArrayContainer" )
259+ ArrayOrArithContainerOrScalarTc = TypeVar (
260+ "ArrayOrArithContainerOrScalarTc" ,
261+ ScalarLike , Array , "ArithArrayContainer" )
243262
244263
245264ContainerOrScalarT = TypeVar ("ContainerOrScalarT" , bound = "ArrayContainer | ScalarLike" )
0 commit comments