bpo-39481: Make os.DirEntry generic (GH-19415)

diff --git a/Lib/test/test_genericalias.py b/Lib/test/test_genericalias.py
index 9d8dbfe..9c5b23e 100644
--- a/Lib/test/test_genericalias.py
+++ b/Lib/test/test_genericalias.py
@@ -7,6 +7,7 @@
 )
 from collections.abc import *
 from contextlib import AbstractContextManager, AbstractAsyncContextManager
+from os import DirEntry
 from re import Pattern, Match
 from types import GenericAlias, MappingProxyType
 import typing
@@ -34,7 +35,7 @@
                   Mapping, MutableMapping, MappingView,
                   KeysView, ItemsView, ValuesView,
                   Sequence, MutableSequence,
-                  MappingProxyType,
+                  MappingProxyType, DirEntry
                   ):
             tname = t.__name__
             with self.subTest(f"Testing {tname}"):
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 4264bf1..57f1487 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -12976,6 +12976,8 @@
     OS_DIRENTRY_STAT_METHODDEF
     OS_DIRENTRY_INODE_METHODDEF
     OS_DIRENTRY___FSPATH___METHODDEF
+    {"__class_getitem__",       (PyCFunction)Py_GenericAlias,
+    METH_O|METH_CLASS,          PyDoc_STR("See PEP 585")},
     {NULL}
 };