@@ -1192,14 +1192,12 @@ def _tree_repr(self, tree):
11921192 # super()._tree_repr() for nice formatting.
11931193 arg_list = []
11941194 for arg in tree [1 :]:
1195- if arg == ():
1196- arg_list .append ('[]' )
1197- elif not isinstance (arg , tuple ):
1195+ if not isinstance (arg , tuple ):
11981196 arg_list .append (_type_repr (arg ))
11991197 else :
12001198 arg_list .append (arg [0 ]._tree_repr (arg ))
1201- if len ( arg_list ) == 2 :
1202- return repr (tree [0 ]) + '[%s]' % ', ' . join ( arg_list )
1199+ if arg_list [ 0 ] == '...' :
1200+ return repr (tree [0 ]) + '[..., %s]' % arg_list [ 1 ]
12031201 return (repr (tree [0 ]) +
12041202 '[[%s], %s]' % (', ' .join (arg_list [:- 1 ]), arg_list [- 1 ]))
12051203
@@ -1214,26 +1212,22 @@ def __getitem__(self, parameters):
12141212 raise TypeError ("Callable must be used as "
12151213 "Callable[[arg, ...], result]." )
12161214 args , result = parameters
1217- if args is ...:
1218- parameters = (..., result )
1219- elif args == []:
1220- parameters = ((), result )
1215+ if args is Ellipsis :
1216+ parameters = (Ellipsis , result )
12211217 else :
12221218 if not isinstance (args , list ):
12231219 raise TypeError ("Callable[args, result]: args must be a list."
12241220 " Got %.100r." % (args ,))
1225- parameters = tuple (args ) + ( result , )
1221+ parameters = ( tuple (args ), result )
12261222 return self .__getitem_inner__ (parameters )
12271223
12281224 @_tp_cache
12291225 def __getitem_inner__ (self , parameters ):
1230- * args , result = parameters
1226+ args , result = parameters
12311227 msg = "Callable[args, result]: result must be a type."
12321228 result = _type_check (result , msg )
1233- if args == [...,] :
1229+ if args is Ellipsis :
12341230 return super ().__getitem__ ((_TypingEllipsis , result ))
1235- if args == [(),]:
1236- return super ().__getitem__ ((_TypingEmpty , result ))
12371231 msg = "Callable[[arg, ...], result]: each arg must be a type."
12381232 args = tuple (_type_check (arg , msg ) for arg in args )
12391233 parameters = args + (result ,)
0 commit comments