From f29330c7b2ea2e998c73d9a0433387cd924de0bc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 1 Oct 2025 17:01:56 +1000 Subject: [PATCH] PyDoc: correct type links in bmesh Python module Type links without a leading module weren't recognized, links to the types were not created in generated docs. --- source/blender/python/bmesh/bmesh_py_types.cc | 150 ++++++++++-------- .../python/bmesh/bmesh_py_types_customdata.cc | 42 ++--- .../python/bmesh/bmesh_py_types_select.cc | 4 +- 3 files changed, 105 insertions(+), 91 deletions(-) diff --git a/source/blender/python/bmesh/bmesh_py_types.cc b/source/blender/python/bmesh/bmesh_py_types.cc index 0fe64678ab8..da61ab5e4d7 100644 --- a/source/blender/python/bmesh/bmesh_py_types.cc +++ b/source/blender/python/bmesh/bmesh_py_types.cc @@ -164,7 +164,7 @@ PyDoc_STRVAR( "\n" " It's also possible to assign any number to this attribute for a scripts internal logic.\n" "\n" - " To ensure the value is up to date - see :class:`BMElemSeq.index_update`.\n"); + " To ensure the value is up to date - see :class:`bmesh.types.BMElemSeq.index_update`.\n"); static PyObject *bpy_bm_elem_index_get(BPy_BMElem *self, void * /*flag*/) { BPY_BM_CHECK_OBJ(self); @@ -204,7 +204,7 @@ PyDoc_STRVAR( bpy_bmvertseq_doc, "This meshes vert sequence (read-only).\n" "\n" - ":type: :class:`BMVertSeq`\n"); + ":type: :class:`bmesh.types.BMVertSeq`\n"); static PyObject *bpy_bmvertseq_get(BPy_BMesh *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -216,7 +216,7 @@ PyDoc_STRVAR( bpy_bmedgeseq_doc, "This meshes edge sequence (read-only).\n" "\n" - ":type: :class:`BMEdgeSeq`\n"); + ":type: :class:`bmesh.types.BMEdgeSeq`\n"); static PyObject *bpy_bmedgeseq_get(BPy_BMesh *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -228,7 +228,7 @@ PyDoc_STRVAR( bpy_bmfaceseq_doc, "This meshes face sequence (read-only).\n" "\n" - ":type: :class:`BMFaceSeq`\n"); + ":type: :class:`bmesh.types.BMFaceSeq`\n"); static PyObject *bpy_bmfaceseq_get(BPy_BMesh *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -240,7 +240,7 @@ PyDoc_STRVAR( bpy_bmloopseq_doc, "This meshes loops (read-only).\n" "\n" - ":type: :class:`BMLoopSeq`\n" + ":type: :class:`bmesh.types.BMLoopSeq`\n" "\n" ".. note::\n" "\n" @@ -257,65 +257,65 @@ PyDoc_STRVAR( bpy_bmvert_link_edges_doc, "Edges connected to this vertex (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMEdge`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmvert_link_faces_doc, "Faces connected to this vertex (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMFace`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmvert_link_loops_doc, "Loops that use this vertex (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n"); /* edge */ PyDoc_STRVAR( /* Wrap. */ bpy_bmedge_verts_doc, "Verts this edge uses (always 2), (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of " - ":class:`BMVert`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of " + ":class:`bmesh.types.BMVert`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmedge_link_faces_doc, "Faces connected to this edge, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMFace`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMFace`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmedge_link_loops_doc, "Loops connected to this edge, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n"); /* face */ PyDoc_STRVAR( /* Wrap. */ bpy_bmface_verts_doc, "Verts of this face, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMVert`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMVert`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmface_edges_doc, "Edges of this face, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMEdge`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMEdge`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmface_loops_doc, "Loops of this face, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n"); /* loop */ PyDoc_STRVAR( /* Wrap. */ bpy_bmloops_link_loops_doc, "Loops connected to this loop, (read-only).\n" "\n" - ":type: :class:`BMElemSeq` of :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMElemSeq` of :class:`bmesh.types.BMLoop`\n"); static PyObject *bpy_bmelemseq_elem_get(BPy_BMElem *self, void *itype) { @@ -386,7 +386,7 @@ PyDoc_STRVAR( "Sequence of selected items (the last is displayed as active).\n" "\n" ":type: " - ":class:`BMEditSelSeq`\n"); + ":class:`bmesh.types.BMEditSelSeq`\n"); static PyObject *bpy_bmesh_select_history_get(BPy_BMesh *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -618,7 +618,7 @@ PyDoc_STRVAR( bpy_bmloop_vert_doc, "The loop's vertex (read-only).\n" "\n" - ":type: :class:`BMVert`\n"); + ":type: :class:`bmesh.types.BMVert`\n"); static PyObject *bpy_bmloop_vert_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -630,7 +630,7 @@ PyDoc_STRVAR( bpy_bmloop_edge_doc, "The loop's edge (between this loop and the next), (read-only).\n" "\n" - ":type: :class:`BMEdge`\n"); + ":type: :class:`bmesh.types.BMEdge`\n"); static PyObject *bpy_bmloop_edge_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -642,7 +642,7 @@ PyDoc_STRVAR( bpy_bmloop_face_doc, "The face this loop makes (read-only).\n" "\n" - ":type: :class:`BMFace`\n"); + ":type: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmloop_face_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -654,7 +654,7 @@ PyDoc_STRVAR( bpy_bmloop_link_loop_next_doc, "The next face corner (read-only).\n" "\n" - ":type: :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMLoop`\n"); static PyObject *bpy_bmloop_link_loop_next_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -666,7 +666,7 @@ PyDoc_STRVAR( bpy_bmloop_link_loop_prev_doc, "The previous face corner (read-only).\n" "\n" - ":type: :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMLoop`\n"); static PyObject *bpy_bmloop_link_loop_prev_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -678,7 +678,7 @@ PyDoc_STRVAR( bpy_bmloop_link_loop_radial_next_doc, "The next loop around the edge (read-only).\n" "\n" - ":type: :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMLoop`\n"); static PyObject *bpy_bmloop_link_loop_radial_next_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -690,7 +690,7 @@ PyDoc_STRVAR( bpy_bmloop_link_loop_radial_prev_doc, "The previous loop around the edge (read-only).\n" "\n" - ":type: :class:`BMLoop`\n"); + ":type: :class:`bmesh.types.BMLoop`\n"); static PyObject *bpy_bmloop_link_loop_radial_prev_get(BPy_BMLoop *self, void * /*closure*/) { BPY_BM_CHECK_OBJ(self); @@ -719,25 +719,25 @@ PyDoc_STRVAR( bpy_bmelemseq_layers_vert_doc, "custom-data layers (read-only).\n" "\n" - ":type: :class:`BMLayerAccessVert`\n"); + ":type: :class:`bmesh.types.BMLayerAccessVert`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmelemseq_layers_edge_doc, "custom-data layers (read-only).\n" "\n" - ":type: :class:`BMLayerAccessEdge`\n"); + ":type: :class:`bmesh.types.BMLayerAccessEdge`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmelemseq_layers_face_doc, "custom-data layers (read-only).\n" "\n" - ":type: :class:`BMLayerAccessFace`\n"); + ":type: :class:`bmesh.types.BMLayerAccessFace`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmelemseq_layers_loop_doc, "custom-data layers (read-only).\n" "\n" - ":type: :class:`BMLayerAccessLoop`\n"); + ":type: :class:`bmesh.types.BMLayerAccessLoop`\n"); static PyObject *bpy_bmelemseq_layers_get(BPy_BMElemSeq *self, void *htype) { BPY_BM_CHECK_OBJ(self); @@ -753,7 +753,7 @@ PyDoc_STRVAR( bpy_bmfaceseq_active_doc, "active face.\n" "\n" - ":type: :class:`BMFace` | None\n"); + ":type: :class:`bmesh.types.BMFace` | None\n"); static PyObject *bpy_bmfaceseq_active_get(BPy_BMElemSeq *self, void * /*closure*/) { BMesh *bm = self->bm; @@ -1142,7 +1142,7 @@ PyDoc_STRVAR( ".. method:: copy()\n" "\n" " :return: A copy of this BMesh.\n" - " :rtype: :class:`BMesh`\n"); + " :rtype: :class:`bmesh.types.BMesh`\n"); static PyObject *bpy_bmesh_copy(BPy_BMesh *self) { BPY_BM_CHECK_OBJ(self); @@ -1216,7 +1216,7 @@ PyDoc_STRVAR( " Writes this BMesh data into an existing Mesh data-block.\n" "\n" " :arg mesh: The mesh data to write into.\n" - " :type mesh: :class:`Mesh`\n"); + " :type mesh: :class:`bpy.types.Mesh`\n"); static PyObject *bpy_bmesh_to_mesh(BPy_BMesh *self, PyObject *args) { PyObject *py_mesh; @@ -1270,8 +1270,8 @@ PyDoc_STRVAR( "supported).\n" "\n" " :arg object: The object data to load.\n" - " :type object: :class:`Object`\n" - " :type depsgraph: :class:`Depsgraph`\n" + " :type object: :class:`bpy.types.Object`\n" + " :type depsgraph: :class:`bpy.types.Depsgraph`\n" " :arg cage: Get the mesh as a deformed cage.\n" " :type cage: bool\n" " :arg face_normals: Calculate face normals.\n" @@ -1375,7 +1375,7 @@ PyDoc_STRVAR( " Initialize this bmesh from existing mesh data-block.\n" "\n" " :arg mesh: The mesh data to load.\n" - " :type mesh: :class:`Mesh`\n" + " :type mesh: :class:`bpy.types.Mesh`\n" " :type face_normals: bool\n" " :type vertex_normals: bool\n" " :arg use_shape_key: Use the locations from a shape key.\n" @@ -1437,7 +1437,8 @@ PyDoc_STRVAR( bpy_bmesh_select_flush_mode_doc, ".. method:: select_flush_mode()\n" "\n" - " flush selection based on the current mode current :class:`BMesh.select_mode`.\n"); + " flush selection based on the current mode current " + ":class:`bmesh.types.BMesh.select_mode`.\n"); static PyObject *bpy_bmesh_select_flush_mode(BPy_BMesh *self) { BPY_BM_CHECK_OBJ(self); @@ -1588,7 +1589,9 @@ PyDoc_STRVAR( " Calculate triangle tessellation from quads/ngons.\n" "\n" " :return: The triangulated faces.\n" - " :rtype: list[tuple[:class:`BMLoop`, :class:`BMLoop`, :class:`BMLoop`]]\n"); + " :rtype: list[tuple[:class:`bmesh.types.BMLoop`, " + ":class:`bmesh.types.BMLoop`, " + ":class:`bmesh.types.BMLoop`]]\n"); static PyObject *bpy_bmesh_calc_loop_triangles(BPy_BMElem *self) { int corner_tris_tot; @@ -1746,7 +1749,7 @@ PyDoc_STRVAR( " Interpolate the customdata from a vert between 2 other verts.\n" "\n" " :arg vert_pair: The verts between which to interpolate data from.\n" - " :type vert_pair: Sequence[:class:`BMVert`]\n" + " :type vert_pair: Sequence[:class:`bmesh.types.BMVert`]\n" " :type fac: float\n"); static PyObject *bpy_bmvert_copy_from_vert_interp(BPy_BMVert *self, PyObject *args) { @@ -1785,7 +1788,7 @@ PyDoc_STRVAR( "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" - " :type face: :class:`BMFace`\n"); + " :type face: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmvert_copy_from_face_interp(BPy_BMVert *self, PyObject *args) { const char *error_prefix = "copy_from_face_interp(...)"; @@ -1990,7 +1993,7 @@ PyDoc_STRVAR( " This uses the face normal for calculation.\n" "\n" " :arg loop: The loop used for tangent calculation.\n" - " :type loop: :class:`BMLoop`\n" + " :type loop: :class:`bmesh.types.BMLoop`\n" " :return: a normalized vector.\n" " :rtype: :class:`mathutils.Vector`\n"); static PyObject *bpy_bmedge_calc_tangent(BPy_BMEdge *self, PyObject *args) @@ -2017,9 +2020,9 @@ PyDoc_STRVAR( " Return the other vertex on this edge or None if the vertex is not used by this edge.\n" "\n" " :arg vert: a vert in this edge.\n" - " :type vert: :class:`BMVert`\n" + " :type vert: :class:`bmesh.types.BMVert`\n" " :return: The edges other vert.\n" - " :rtype: :class:`BMVert` | None\n"); + " :rtype: :class:`bmesh.types.BMVert` | None\n"); static PyObject *bpy_bmedge_other_vert(BPy_BMEdge *self, BPy_BMVert *value) { const char *error_prefix = "BMEdge.other_vert(...)"; @@ -2076,7 +2079,7 @@ PyDoc_STRVAR( " Interpolate the customdata from another face onto this one (faces should overlap).\n" "\n" " :arg face: The face to interpolate data from.\n" - " :type face: :class:`BMFace`\n" + " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When True, also copy vertex data.\n" " :type vert: bool\n"); static PyObject *bpy_bmface_copy_from_face_interp(BPy_BMFace *self, PyObject *args) @@ -2118,7 +2121,7 @@ PyDoc_STRVAR( " :arg edges: When set, the faces edges will be duplicated too.\n" " :type edges: bool\n" " :return: The newly created face.\n" - " :rtype: :class:`BMFace`\n"); + " :rtype: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmface_copy(BPy_BMFace *self, PyObject *args, PyObject *kw) { static const char *kwlist[] = {"verts", "edges", nullptr}; @@ -2355,7 +2358,7 @@ PyDoc_STRVAR( "overlap the face).\n" "\n" " :arg face: The face to interpolate data from.\n" - " :type face: :class:`BMFace`\n" + " :type face: :class:`bmesh.types.BMFace`\n" " :arg vert: When enabled, interpolate the loops vertex data (optional).\n" " :type vert: bool\n" " :arg multires: When enabled, interpolate the loops multires data (optional).\n" @@ -2454,9 +2457,9 @@ PyDoc_STRVAR( " :arg co: The initial location of the vertex (optional argument).\n" " :type co: float triplet\n" " :arg example: Existing vert to initialize settings.\n" - " :type example: :class:`BMVert`\n" + " :type example: :class:`bmesh.types.BMVert`\n" " :return: The newly created vertex.\n" - " :rtype: :class:`BMVert`\n"); + " :rtype: :class:`bmesh.types.BMVert`\n"); static PyObject *bpy_bmvertseq_new(BPy_BMElemSeq *self, PyObject *args) { PyObject *py_co = nullptr; @@ -2512,11 +2515,11 @@ PyDoc_STRVAR( " Create a new edge from a given pair of verts.\n" "\n" " :arg verts: Vertex pair.\n" - " :type verts: Sequence[:class:`BMVert`]\n" + " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg example: Existing edge to initialize settings (optional argument).\n" - " :type example: :class:`BMEdge`\n" + " :type example: :class:`bmesh.types.BMEdge`\n" " :return: The newly created edge.\n" - " :rtype: :class:`BMEdge`\n"); + " :rtype: :class:`bmesh.types.BMEdge`\n"); static PyObject *bpy_bmedgeseq_new(BPy_BMElemSeq *self, PyObject *args) { const char *error_prefix = "edges.new(...)"; @@ -2587,11 +2590,11 @@ PyDoc_STRVAR( " Create a new face from a given set of verts.\n" "\n" " :arg verts: Sequence of 3 or more verts.\n" - " :type verts: Sequence[:class:`BMVert`]\n" + " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg example: Existing face to initialize settings (optional argument).\n" - " :type example: :class:`BMFace`\n" + " :type example: :class:`bmesh.types.BMFace`\n" " :return: The newly created face.\n" - " :rtype: :class:`BMFace`\n"); + " :rtype: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmfaceseq_new(BPy_BMElemSeq *self, PyObject *args) { const char *error_prefix = "faces.new(...)"; @@ -2663,7 +2666,7 @@ PyDoc_STRVAR( "\n" " Remove a vert.\n" "\n" - " :type vert: :class:`BMVert`\n"); + " :type vert: :class:`bmesh.types.BMVert`\n"); static PyObject *bpy_bmvertseq_remove(BPy_BMElemSeq *self, BPy_BMVert *value) { const char *error_prefix = "verts.remove(vert)"; @@ -2690,7 +2693,7 @@ PyDoc_STRVAR( "\n" " Remove an edge.\n" "\n" - " :type edge: :class:`BMEdge`\n"); + " :type edge: :class:`bmesh.types.BMEdge`\n"); static PyObject *bpy_bmedgeseq_remove(BPy_BMElemSeq *self, BPy_BMEdge *value) { const char *error_prefix = "edges.remove(...)"; @@ -2717,7 +2720,7 @@ PyDoc_STRVAR( "\n" " Remove a face.\n" "\n" - " :type face: :class:`BMFace`\n"); + " :type face: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmfaceseq_remove(BPy_BMElemSeq *self, BPy_BMFace *value) { const char *error_prefix = "faces.remove(...)"; @@ -2745,10 +2748,10 @@ PyDoc_STRVAR( " Return an edge which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" - " :type verts: Sequence[:class:`BMVert`]\n" + " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The edge found or None\n" - " :rtype: :class:`BMEdge`\n"); + " :rtype: :class:`bmesh.types.BMEdge`\n"); static PyObject *bpy_bmedgeseq_get__method(BPy_BMElemSeq *self, PyObject *args) { const char *error_prefix = "edges.get(...)"; @@ -2793,10 +2796,10 @@ PyDoc_STRVAR( " Return a face which uses the **verts** passed.\n" "\n" " :arg verts: Sequence of verts.\n" - " :type verts: Sequence[:class:`BMVert`]\n" + " :type verts: Sequence[:class:`bmesh.types.BMVert`]\n" " :arg fallback: Return this value if nothing is found.\n" " :return: The face found or None\n" - " :rtype: :class:`BMFace`\n"); + " :rtype: :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmfaceseq_get__method(BPy_BMElemSeq *self, PyObject *args) { const char *error_prefix = "faces.get(...)"; @@ -2850,8 +2853,10 @@ PyDoc_STRVAR( "\n" " .. note::\n" "\n" - " Running this on sequences besides :class:`BMesh.verts`, :class:`BMesh.edges`, " - ":class:`BMesh.faces`\n" + " Running this on sequences besides " + ":class:`bmesh.types.BMesh.verts`, " + ":class:`bmesh.types.BMesh.edges`, " + ":class:`bmesh.types.BMesh.faces`\n" " works but won't result in each element having a valid index, instead its order in the " "sequence will be set.\n"); static PyObject *bpy_bmelemseq_index_update(BPy_BMElemSeq *self) @@ -2916,11 +2921,14 @@ PyDoc_STRVAR( ".. method:: sort(*, key=None, reverse=False)\n" "\n" " Sort the elements of this sequence, using an optional custom sort key.\n" - " Indices of elements are not changed, :class:`BMElemSeq.index_update` can be used for " - "that.\n" + " Indices of elements are not changed, :class:`bmesh.types.BMElemSeq.index_update` " + "can be used for that.\n" "\n" " :arg key: The key that sets the ordering of the elements.\n" - " :type key: Callable[[:class:`BMVert` | :class:`BMEdge` | :class:`BMFace`], int] | None\n" + " :type key: Callable[[" + ":class:`bmesh.types.BMVert` | " + ":class:`bmesh.types.BMEdge` | " + ":class:`bmesh.types.BMFace`], int] | None\n" " :arg reverse: Reverse the order of the elements\n" " :type reverse: bool\n" "\n" @@ -3853,21 +3861,27 @@ PyDoc_STRVAR( PyDoc_STRVAR( /* Wrap. */ bpy_bmloop_doc, - "This is normally accessed from :class:`BMFace.loops` where each face loop " + "This is normally accessed from :class:`bmesh.types.BMFace.loops` where each face loop " "represents a corner of the face.\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmelemseq_doc, "General sequence type used for accessing any sequence of\n" - ":class:`BMVert`, :class:`BMEdge`, :class:`BMFace`, :class:`BMLoop`.\n" + ":class:`bmesh.types.BMVert`, " + ":class:`bmesh.types.BMEdge`, " + ":class:`bmesh.types.BMFace`, " + ":class:`bmesh.types.BMLoop`.\n" "\n" - "When accessed via :class:`BMesh.verts`, :class:`BMesh.edges`, :class:`BMesh.faces`\n" + "When accessed via " + ":class:`bmesh.types.BMesh.verts`, " + ":class:`bmesh.types.BMesh.edges`, " + ":class:`bmesh.types.BMesh.faces`\n" "there are also functions to create/remove items.\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmiter_doc, "Internal BMesh type for looping over verts/faces/edges,\n" - "used for iterating over :class:`BMElemSeq` types.\n"); + "used for iterating over :class:`bmesh.types.BMElemSeq` types.\n"); static PyObject *bpy_bmesh_repr(BPy_BMesh *self) { diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.cc b/source/blender/python/bmesh/bmesh_py_types_customdata.cc index 2eaca7875c5..8f0e173563a 100644 --- a/source/blender/python/bmesh/bmesh_py_types_customdata.cc +++ b/source/blender/python/bmesh/bmesh_py_types_customdata.cc @@ -73,73 +73,73 @@ PyDoc_STRVAR( bpy_bmlayeraccess_collection__float_doc, "Generic float custom-data layer.\n" "\n" - ":type: :class:`BMLayerCollection` of float\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of float\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__int_doc, "Generic int custom-data layer.\n" "\n" - ":type: :class:`BMLayerCollection` of int\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of int\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__bool_doc, "Generic boolean custom-data layer.\n" "\n" - ":type: :class:`BMLayerCollection` of boolean\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of boolean\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__float_vector_doc, "Generic 3D vector with float precision custom-data layer.\n" "\n" ":type: " - ":class:`BMLayerCollection` of :class:`mathutils.Vector`\n"); + ":class:`bmesh.types.BMLayerCollection` of :class:`mathutils.Vector`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__float_color_doc, "Generic RGBA color with float precision custom-data layer.\n" "\n" ":type: " - ":class:`BMLayerCollection` of :class:`mathutils.Vector`\n"); + ":class:`bmesh.types.BMLayerCollection` of :class:`mathutils.Vector`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__color_doc, "Generic RGBA color with 8-bit precision custom-data layer.\n" "\n" ":type: " - ":class:`BMLayerCollection` of :class:`mathutils.Vector`\n"); + ":class:`bmesh.types.BMLayerCollection` of :class:`mathutils.Vector`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__string_doc, "Generic string custom-data layer (exposed as bytes, 255 max length).\n" "\n" ":type: " - ":class:`BMLayerCollection` of bytes\n"); + ":class:`bmesh.types.BMLayerCollection` of bytes\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__deform_doc, - "Vertex deform weight :class:`BMDeformVert` (TODO).\n" + "Vertex deform weight :class:`bmesh.types.BMDeformVert` (TODO).\n" "\n" ":type: " - ":class:`BMLayerCollection` of :class:`bmesh.types.BMDeformVert`" /* TYPE DOESN'T EXIST YET */ -); + /* TYPE DOESN'T EXIST YET */ + ":class:`bmesh.types.BMLayerCollection` of :class:`bmesh.types.BMDeformVert`"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__shape_doc, "Vertex shape-key absolute location (as a 3D Vector).\n" "\n" - ":type: :class:`BMLayerCollection` of :class:`mathutils.Vector`\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of :class:`mathutils.Vector`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__uv_doc, - "Accessor for :class:`BMLoopUV` UV (as a 2D Vector).\n" + "Accessor for :class:`bmesh.types.BMLoopUV` UV (as a 2D Vector).\n" "\n" - ":type: :class:`BMLayerCollection` of :class:`bmesh.types.BMLoopUV`\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of :class:`bmesh.types.BMLoopUV`\n"); PyDoc_STRVAR( /* Wrap. */ bpy_bmlayeraccess_collection__skin_doc, "Accessor for skin layer.\n" "\n" - ":type: :class:`BMLayerCollection` of :class:`bmesh.types.BMVertSkin`\n"); + ":type: :class:`bmesh.types.BMLayerCollection` of :class:`bmesh.types.BMVertSkin`\n"); static PyObject *bpy_bmlayeraccess_collection_get(BPy_BMLayerAccess *self, void *flag) { @@ -155,7 +155,7 @@ PyDoc_STRVAR( bpy_bmlayercollection_active_doc, "The active layer of this type (read-only).\n" "\n" - ":type: :class:`BMLayerItem`\n"); + ":type: :class:`bmesh.types.BMLayerItem`\n"); static PyObject *bpy_bmlayercollection_active_get(BPy_BMLayerItem *self, void * /*flag*/) { CustomData *data; @@ -428,7 +428,7 @@ PyDoc_STRVAR( " Return a copy of the layer\n" "\n" " :arg other: Another layer to copy from.\n" - " :type other: :class:`BMLayerItem`\n"); + " :type other: :class:`bmesh.types.BMLayerItem`\n"); static PyObject *bpy_bmlayeritem_copy_from(BPy_BMLayerItem *self, BPy_BMLayerItem *value) { const char *error_prefix = "layer.copy_from(...)"; @@ -473,7 +473,7 @@ PyDoc_STRVAR( " Create a new layer or return an existing active layer\n" "\n" " :return: The newly verified layer.\n" - " :rtype: :class:`BMLayerItem`\n"); + " :rtype: :class:`bmesh.types.BMLayerItem`\n"); static PyObject *bpy_bmlayercollection_verify(BPy_BMLayerCollection *self) { int index; @@ -511,7 +511,7 @@ PyDoc_STRVAR( " :arg name: Optional name argument (will be made unique).\n" " :type name: str\n" " :return: The newly created layer.\n" - " :rtype: :class:`BMLayerItem`\n"); + " :rtype: :class:`bmesh.types.BMLayerItem`\n"); static PyObject *bpy_bmlayercollection_new(BPy_BMLayerCollection *self, PyObject *args) { const char *name = nullptr; @@ -561,7 +561,7 @@ PyDoc_STRVAR( " Remove a layer\n" "\n" " :arg layer: The layer to remove.\n" - " :type layer: :class:`BMLayerItem`\n"); + " :type layer: :class:`bmesh.types.BMLayerItem`\n"); static PyObject *bpy_bmlayercollection_remove(BPy_BMLayerCollection *self, BPy_BMLayerItem *value) { CustomData *data; @@ -633,7 +633,7 @@ PyDoc_STRVAR( " (matching Python's dict.items() functionality).\n" "\n" " :return: (key, value) pairs for each member of this collection.\n" - " :rtype: list[tuple[str, :class:`BMLayerItem`]]\n"); + " :rtype: list[tuple[str, :class:`bmesh.types.BMLayerItem`]]\n"); static PyObject *bpy_bmlayercollection_items(BPy_BMLayerCollection *self) { PyObject *ret; @@ -670,7 +670,7 @@ PyDoc_STRVAR( " (matching Python's dict.values() functionality).\n" "\n" " :return: the members of this collection.\n" - " :rtype: list[:class:`BMLayerItem`]\n"); + " :rtype: list[:class:`bmesh.types.BMLayerItem`]\n"); static PyObject *bpy_bmlayercollection_values(BPy_BMLayerCollection *self) { PyObject *ret; diff --git a/source/blender/python/bmesh/bmesh_py_types_select.cc b/source/blender/python/bmesh/bmesh_py_types_select.cc index 06dbe4898e3..1f36d69d460 100644 --- a/source/blender/python/bmesh/bmesh_py_types_select.cc +++ b/source/blender/python/bmesh/bmesh_py_types_select.cc @@ -29,8 +29,8 @@ PyDoc_STRVAR( bpy_bmeditselseq_active_doc, "The last selected element or None (read-only).\n" "\n" - ":type: :class:`BMVert`, " - ":class:`BMEdge` or :class:`BMFace`\n"); + ":type: :class:`bmesh.types.BMVert`, " + ":class:`bmesh.types.BMEdge` or :class:`bmesh.types.BMFace`\n"); static PyObject *bpy_bmeditselseq_active_get(BPy_BMEditSelSeq *self, void * /*closure*/) { BMEditSelection *ese;