src/eric7/QScintilla/DocstringGenerator/SphinxdocGenerator.py

Mon, 07 Nov 2022 17:19:58 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 07 Nov 2022 17:19:58 +0100
branch
eric7
changeset 9482
a2bc06a54d9d
parent 9221
bf71ee032bb4
child 9486
5a8179763e38
permissions
-rw-r--r--

Corrected/acknowledged some bad import style and removed some obsolete code.

7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
3 # Copyright (c) 2021 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the docstring generator for the 'sphinxdoc' style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 def generateSphinxDoc(functionInfo):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 Function to generate the docstring line list iaw. Sphinx documentation
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 style.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
15
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 Note: Text is created with DESCRIPTION placeholders for descriptions and
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 TYPE placeholders for type information
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
18
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 @param functionInfo object containing the function information to base
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 the docstring on
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 @type FunctionInfo
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 @return list of docstring lines
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
25 # __IGNORE_WARNING_D202__
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 lines = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 # function description
8000
47b15df088e4 Editor: extended the docstring functionality to be invocable via a keyboard shortcut (Ctrl+Alt+D).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7998
diff changeset
29 lines.append("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 # remove 'self', 'this' or 'cls' from arguments list
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32 if len(functionInfo.argumentsList) > 0 and functionInfo.argumentsList[0][0] in (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
33 "self",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34 "cls",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35 "this",
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 del functionInfo.argumentsList[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
38
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 # add an empty line if there is one of the other sections
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41 functionInfo.argumentsList
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42 or functionInfo.hasYield
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
43 or functionInfo.returnTypeAnnotated
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44 or functionInfo.returnValueInBody
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45 or functionInfo.raiseList
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 ):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 lines.append("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
48
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 # add the parameters section
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 for argName, argType, argValue in functionInfo.argumentsList:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 argLine = ":param {0}: DESCRIPTION".format(argName)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 if argValue:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 argLine += ", defaults to {0}".format(argValue)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 lines.append(argLine)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 argLine = ":type {0}: ".format(argName)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 if argType:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 argLine += "{0}".format(argType)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 argLine += "TYPE"
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 if argValue:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 argLine += ", optional"
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 lines.append(argLine)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 # add an exceptions section, if function raises something
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 if functionInfo.raiseList:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 for exc in sorted(functionInfo.raiseList):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 lines.append(":raises {0}: DESCRIPTION".format(exc))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
69
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 # add return section
8005
94a6a1bd5f80 Docstring: corrected the return section generation for ericdoc and sphinxdoc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8000
diff changeset
71 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
72 functionInfo.hasYield
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
73 or functionInfo.returnValueInBody
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74 or functionInfo.returnTypeAnnotated
8005
94a6a1bd5f80 Docstring: corrected the return section generation for ericdoc and sphinxdoc.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8000
diff changeset
75 ):
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 if functionInfo.hasYield:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 lines.append(":yield: DESCRIPTION")
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 lines.append(":return: DESCRIPTION")
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if functionInfo.returnTypeAnnotated:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81 lines.append(":rtype: {0}".format(functionInfo.returnTypeAnnotated))
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 lines.append(":rtype: TYPE")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 lines.append("")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 return lines

eric ide

mercurial