| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -2913,6 +2913,9 @@ class C(Generic[T]): pass | |||
| 2913 | 2913 | self.assertIs(get_origin(Generic), Generic) | |
| 2914 | 2914 | self.assertIs(get_origin(Generic[T]), Generic) | |
| 2915 | 2915 | self.assertIs(get_origin(List[Tuple[T, T]][int]), list) | |
| 2916 | + self.assertIs(get_origin(List), list) | ||
| 2917 | + self.assertIs(get_origin(Tuple), tuple) | ||
| 2918 | + self.assertIs(get_origin(Callable), collections.abc.Callable) | ||
| 2916 | 2919 | ||
| 2917 | 2920 | def test_get_args(self): | |
| 2918 | 2921 | T = TypeVar('T') | |
@@ -2928,11 +2931,15 @@ class C(Generic[T]): pass | |||
| 2928 | 2931 | (int, Tuple[str, int])) | |
| 2929 | 2932 | self.assertEqual(get_args(typing.Dict[int, Tuple[T, T]][Optional[int]]), | |
| 2930 | 2933 | (int, Tuple[Optional[int], Optional[int]])) | |
| 2931 | - self.assertEqual(get_args(Callable[[], T][int]), ([], int,)) | ||
| 2934 | + self.assertEqual(get_args(Callable[[], T][int]), ([], int)) | ||
| 2935 | + self.assertEqual(get_args(Callable[..., int]), (..., int)) | ||
| 2932 | 2936 | self.assertEqual(get_args(Union[int, Callable[[Tuple[T, ...]], str]]), | |
| 2933 | 2937 | (int, Callable[[Tuple[T, ...]], str])) | |
| 2934 | 2938 | self.assertEqual(get_args(Tuple[int, ...]), (int, ...)) | |
| 2935 | 2939 | self.assertEqual(get_args(Tuple[()]), ((),)) | |
| 2940 | + self.assertEqual(get_args(List), ()) | ||
| 2941 | + self.assertEqual(get_args(Tuple), ()) | ||
| 2942 | + self.assertEqual(get_args(Callable), ()) | ||
| 2936 | 2943 | ||
| 2937 | 2944 | ||
| 2938 | 2945 | class CollectionsAbcTests(BaseTestCase): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1300,7 +1300,7 @@ def get_args(tp): | |||
| 1300 | 1300 | get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int]) | |
| 1301 | 1301 | get_args(Callable[[], T][int]) == ([], int) | |
| 1302 | 1302 | """ | |
| 1303 | - if isinstance(tp, _GenericAlias): | ||
| 1303 | + if isinstance(tp, _GenericAlias) and not tp._special: | ||
| 1304 | 1304 | res = tp.__args__ | |
| 1305 | 1305 | if get_origin(tp) is collections.abc.Callable and res[0] is not Ellipsis: | |
| 1306 | 1306 | res = (list(res[:-1]), res[-1]) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,2 @@ | |||
| 1 | + :func:`typing.get_args` now always returns an empty tuple for special | ||
| 2 | + generic aliases. | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments