src/eric7/QScintilla/DocstringGenerator/BaseDocstringGenerator.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 9473
3f23dbf37dbe
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: 8358
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 a docstring generator base class.
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 import re
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
12 from PyQt6.QtCore import Qt
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
13 from PyQt6.QtWidgets import QMenu
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
15 from eric7 import Preferences
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
16 from eric7.EricWidgets.EricApplication import ericApp
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 def getIndentStr(text):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Function to get the indentation of a text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
22
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 @param text text to extract indentation from
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 @return indentation string
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
28 indent = ""
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
30 ret = re.match(r"(\s*)", text)
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 if ret:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 indent = ret.group(1)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 return indent
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36
8207
d359172d11be Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
37 class BaseDocstringGenerator:
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Class implementing a docstring generator base class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 def __init__(self, editor):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
45
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param editor reference to the editor widget
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @type Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.editor = editor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 def isFunctionStart(self, text):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 Public method to test, if a text is the start of a function or method
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 definition.
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 @param text line of text to be tested
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @type str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @return flag indicating that the given text starts a function or
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 method definition (always False)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
63
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def hasFunctionDefinition(self, cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 Public method to test, if the cursor is right below a function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 definition.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
68
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 @param cursorPosition current cursor position (line and column)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @return flag indicating cursor is right below a function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
75
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 def isDocstringIntro(self, cursorPosition):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 Public function to test, if the line up to the cursor position might be
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 introducing a docstring.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 @param cursorPosition current cursor position (line and column)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 @return flag indicating a potential start of a docstring
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 @rtype bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 def insertDocstring(self, cursorPosition, fromStart=True):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 Public method to insert a docstring for the function at the cursor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 position.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
92
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 @param cursorPosition position of the cursor (line and index)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @type tuple of (int, int)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @param fromStart flag indicating that the editor text cursor is placed
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 on the line starting the function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @type bool
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 # just do nothing in the base class
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101
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
102 def insertDocstringFromShortcut(self, cursorPosition):
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
103 """
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
104 Public method to insert a docstring for the function at the cursor
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
105 position initiated via a keyboard shortcut.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106
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
107 @param cursorPosition position of the cursor (line and index)
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
108 @type tuple of (int, int)
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
109 """
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
110 # just do nothing in the base class
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
111 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
112
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 def getDocstringType(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 Public method to determine the docstring type to be generated.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
116
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 @return docstring type (one of 'ericdoc', 'numpydoc', 'googledoc',
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 'sphinxdoc')
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 docstringStyle = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
123 project = ericApp().getObject("Project")
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 filename = self.editor.getFileName()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125 if filename and project.isOpen() and project.isProjectFile(filename):
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 docstringStyle = project.getDocstringType().lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 if docstringStyle == "":
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 docstringStyle = Preferences.getEditor("DocstringType")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
130
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 return docstringStyle
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
132
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def _generateDocstringList(self, functionInfo, docstringType):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Protected method to generate type specific docstrings based on the
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 extracted function information.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
137
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 @param functionInfo reference to the function info object
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @type FunctionInfo
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @param docstringType kind of docstring to be generated
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @return list of docstring lines
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @rtype str
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 if docstringType == "ericdoc":
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
145 from .EricdocGenerator import generateEricDoc # __IGNORE_WARNING_I101__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
146
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 return generateEricDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 elif docstringType == "numpydoc":
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
149 from .NumpydocGenerator import generateNumpyDoc # __IGNORE_WARNING_I101__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
150
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 return generateNumpyDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 elif docstringType == "googledoc":
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
153 from .GoogledocGenerator import generateGoogleDoc # __IGNORE_WARNING_I101__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 return generateGoogleDoc(functionInfo, self.editor)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 elif docstringType == "sphinxdoc":
9482
a2bc06a54d9d Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
157 from .SphinxdocGenerator import generateSphinxDoc # __IGNORE_WARNING_I101__
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
158
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 return generateSphinxDoc(functionInfo)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 else:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 return []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163
8207
d359172d11be Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
164 class FunctionInfo:
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 Class implementing an object to store function information.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 Methods to extract the relevant information need to be implemented in
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 language specific subclasses.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
171
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 def __init__(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 Constructor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.hasInfo = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 self.funcionText = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 self.argumentsText = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
179
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 self.functionIndent = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # indentation fo function definition
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 self.argumentsList = []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 # list of tuples with name, type and value
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.returnTypeAnnotated = None
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 # return type extracted from type annotation
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.returnValueInBody = []
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 # return values extracted from function body
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 self.raiseList = None
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 # exceptions raised by function
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 self.hasYield = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 # function is a generator
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.functionType = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 # function type with these values
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 # classmethod, staticmethod, qtslot, constructor or empty (i.e.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 # standard)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 self.isAsync = False
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 # function is an asynchronous function, i.e. async def f():
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 self.visibility = ""
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 # function visibility with allowed values:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 # public, protected, private or special (i.e. starting and
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 # ending with '__'
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 class DocstringMenuForEnterOnly(QMenu):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 Class implementing a special menu reacting to the enter/return keys only.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 If a keyboard input is not the "enter key", the menu is closed and the
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 input is inserted to the code editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
211
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 def __init__(self, editor):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
215
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 @param editor reference to the editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 @type Editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8207
diff changeset
219 super().__init__(editor)
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 self.__editor = editor
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 def keyPressEvent(self, evt):
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 Protected method to handle key press events.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
225
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 @param evt reference to the key press event object
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 @type QKeyEvent
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 key = evt.key()
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8000
diff changeset
230 if key not in (Qt.Key.Key_Enter, Qt.Key.Key_Return):
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 self.__editor.keyPressEvent(evt)
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 self.close()
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 else:
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8207
diff changeset
234 super().keyPressEvent(evt)

eric ide

mercurial