From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/python~3.12/c-api%2Ftypehints.html | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 devdocs/python~3.12/c-api%2Ftypehints.html (limited to 'devdocs/python~3.12/c-api%2Ftypehints.html') diff --git a/devdocs/python~3.12/c-api%2Ftypehints.html b/devdocs/python~3.12/c-api%2Ftypehints.html new file mode 100644 index 00000000..8ba681f1 --- /dev/null +++ b/devdocs/python~3.12/c-api%2Ftypehints.html @@ -0,0 +1,19 @@ +

Objects for Type Hinting

Various built-in types for type hinting are provided. Currently, two types exist – GenericAlias and Union. Only GenericAlias is exposed to C.

+PyObject *Py_GenericAlias(PyObject *origin, PyObject *args)
+ Part of the Stable ABI since version 3.9.

Create a GenericAlias object. Equivalent to calling the Python class types.GenericAlias. The origin and args arguments set the GenericAlias‘s __origin__ and __args__ attributes respectively. origin should be a PyTypeObject*, and args can be a PyTupleObject* or any PyObject*. If args passed is not a tuple, a 1-tuple is automatically constructed and __args__ is set to (args,). Minimal checking is done for the arguments, so the function will succeed even if origin is not a type. The GenericAlias‘s __parameters__ attribute is constructed lazily from __args__. On failure, an exception is raised and NULL is returned.

Here’s an example of how to make an extension type generic:

...
+static PyMethodDef my_obj_methods[] = {
+    // Other methods.
+    ...
+    {"__class_getitem__", Py_GenericAlias, METH_O|METH_CLASS, "See PEP 585"}
+    ...
+}
+

See also

The data model method __class_getitem__().

New in version 3.9.

+
+PyTypeObject Py_GenericAliasType
+ Part of the Stable ABI since version 3.9.

The C type of the object returned by Py_GenericAlias(). Equivalent to types.GenericAlias in Python.

New in version 3.9.

+
+

+ © 2001–2023 Python Software Foundation
Licensed under the PSF License.
+ https://docs.python.org/3.12/c-api/typehints.html +

+
-- cgit v1.2.3