예제 #1
0
파일: typing.py 프로젝트: ambv/MonkeyType
 def _rewrite_to_tuple(self, union):
     """Union[Tuple[V, ..., V], Tuple[V, ..., V], ...] -> Tuple[V, ...]"""
     value_type = None
     for t in union.__args__:
         if not is_generic_of(t, Tuple):
             return None
         value_type = value_type or t.__args__[0]
         if not all(vt is value_type for vt in t.__args__):
             return None
     return Tuple[value_type, ...]
예제 #2
0
파일: typing.py 프로젝트: ambv/MonkeyType
 def rewrite_Union(self, union):
     key_type = None
     value_types = []
     for e in union.__args__:
         if not is_generic_of(e, Dict):
             return union
         key_type = key_type or e.__args__[0]
         if key_type != e.__args__[0]:
             return union
         value_types.extend(e.__args__[1:])
     return Dict[key_type, Union[tuple(value_types)]]