src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/DocStyle/DocStyleChecker.py

Mon, 24 Feb 2025 15:43:49 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Feb 2025 15:43:49 +0100
branch
eric7
changeset 11148
15e30f0c76a8
parent 11147
dee6e106b4d3
child 11150
73d80859079c
permissions
-rw-r--r--

Adjusted the code to the modified issue codes.

2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
3 # Copyright (c) 2013 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2984
031cceaa8b01 Continued changing the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2982
diff changeset
7 Module implementing a checker for documentation string conventions.
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 #
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 # The routines of the checker class are modeled after the ones found in
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 # pep257.py (version 0.2.4).
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 #
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
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: 9221
diff changeset
15 import ast
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
16 import contextlib
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import tokenize
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
18
7639
422fd05e9c91 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7637
diff changeset
19 from io import StringIO
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
4465
2fbb5bdb8ddf Prepared eric for Python 3.5 to support the new 'async def' function definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
21 try:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
22 ast.AsyncFunctionDef # __IGNORE_EXCEPTION__
4465
2fbb5bdb8ddf Prepared eric for Python 3.5 to support the new 'async def' function definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
23 except AttributeError:
2fbb5bdb8ddf Prepared eric for Python 3.5 to support the new 'async def' function definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
24 ast.AsyncFunctionDef = ast.FunctionDef
2fbb5bdb8ddf Prepared eric for Python 3.5 to support the new 'async def' function definition.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
25
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
8207
d359172d11be Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
27 class DocStyleContext:
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Class implementing the source context.
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 def __init__(self, source, startLine, contextType):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
35
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
36 @param source source code of the context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
37 @type list of str or str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
38 @param startLine line number the context starts in the source
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
39 @type int
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
40 @param contextType type of the context object
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
41 @type str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
43 if isinstance(source, str):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__source = source.splitlines(True)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 else:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__source = source[:]
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__start = startLine
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.__indent = ""
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__type = contextType
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
50 self.__special = ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
51
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 # ensure first line is left justified
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 if self.__source:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54 self.__indent = self.__source[0].replace(self.__source[0].lstrip(), "")
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__source[0] = self.__source[0].lstrip()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
56
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def source(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public method to get the source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
60
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
61 @return source
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
62 @rtype list of str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 return self.__source
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
65
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 def ssource(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 Public method to get the joined source lines.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
69
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
70 @return source
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
71 @rtype str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 return "".join(self.__source)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
74
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 def start(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Public method to get the start line number.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
78
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
79 @return start line number
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
80 @rtype int
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 return self.__start
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
83
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def end(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Public method to get the end line number.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
88 @return end line number
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
89 @rtype int
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 return self.__start + len(self.__source) - 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
92
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 def indent(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 Public method to get the indentation of the first line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
97 @return indentation string
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
98 @rtype str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return self.__indent
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def contextType(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Public method to get the context type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
105
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
106 @return context type
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
107 @rtype str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 return self.__type
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
111 def setSpecial(self, special):
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
112 """
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
113 Public method to set a special attribute for the context.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
114
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
115 @param special attribute string
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
116 @type str
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
117 """
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
118 self.__special = special
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
120 def special(self):
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
121 """
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
122 Public method to get the special context attribute string.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
123
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
124 @return attribute string
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
125 @rtype str
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
126 """
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
127 return self.__special
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129
8207
d359172d11be Applied some more code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8205
diff changeset
130 class DocStyleChecker:
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 """
2984
031cceaa8b01 Continued changing the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2982
diff changeset
132 Class implementing a checker for documentation string conventions.
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
134
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Codes = [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
136 "D-101",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
137 "D-102",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
138 "D-103",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
139 "D-104",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
140 "D-105",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
141 "D-111",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
142 "D-112",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
143 "D-121",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
144 "D-122",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
145 "D-130",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
146 "D-131",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
147 "D-132",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
148 "D-133",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
149 "D-134",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
150 "D-141",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
151 "D-142",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
152 "D-143",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
153 "D-144",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
154 "D-145",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
155 "D-201",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
156 "D-202.1",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
157 "D-202.2",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
158 "D-203",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
159 "D-205",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
160 "D-206",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
161 "D-221",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
162 "D-222",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
163 "D-231",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
164 "D-232",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
165 "D-234r",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
166 "D-234y",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
167 "D-235r",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
168 "D-235y",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
169 "D-236",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
170 "D-237",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
171 "D-238",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
172 "D-239",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
173 "D-242",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
174 "D-243",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
175 "D-244",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
176 "D-245",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
177 "D-246",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
178 "D-247",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
179 "D-250",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
180 "D-251",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
181 "D-252",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
182 "D-253",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
183 "D-260",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
184 "D-261",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
185 "D-262",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
186 "D-263",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
187 "D-270",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
188 "D-271",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
189 "D-272",
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
190 "D-273",
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 ]
3083
6382a74d9599 Guarded the doc style checker against files with invalid syntax.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3036
diff changeset
192
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
193 def __init__(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
194 self,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
195 source,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 filename,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
197 select,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
198 ignore,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
199 expected,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200 repeat,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
201 maxLineLength=88,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202 docType="pep257",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203 ):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 """
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
205 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
206
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
207 @param source source code to be checked
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
208 @type list of str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
209 @param filename name of the source file
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
210 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
211 @param select list of selected codes
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
212 @type list of str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
213 @param ignore list of codes to be ignored
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
214 @type list of str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
215 @param expected list of expected codes
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
216 @type list of str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 @param repeat flag indicating to report each occurrence of a code
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
218 @type bool
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
219 @param maxLineLength allowed line length
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
220 @type int
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
221 @param docType type of the documentation strings (one of 'eric' or 'pep257')
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
222 @type str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 self.__select = tuple(select)
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
225 self.__ignore = tuple(ignore)
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.__expected = expected[:]
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 self.__repeat = repeat
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
228 self.__maxLineLength = maxLineLength
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
229 self.__docType = docType
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 self.__filename = filename
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 self.__source = source[:]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
232
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 # statistics counters
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 self.counters = {}
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
235
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 # collection of detected errors
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 self.errors = []
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
238
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 self.__lineNumber = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 # caches
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 self.__functionsCache = None
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 self.__classesCache = None
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 self.__methodsCache = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
245
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 self.__keywords = [
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
247 "moduleDocstring",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
248 "functionDocstring",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249 "classDocstring",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
250 "methodDocstring",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
251 "defDocstring",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
252 "docstring",
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 ]
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
254 if self.__docType == "pep257":
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
255 checkersWithCodes = {
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
256 "moduleDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
257 (self.__checkModulesDocstrings, ("D-101",)),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
258 ],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
259 "functionDocstring": [],
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
260 "classDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
261 (self.__checkClassDocstring, ("D-104", "D-105")),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
262 (self.__checkBlankBeforeAndAfterClass, ("D-142", "D-143")),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
263 ],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
264 "methodDocstring": [],
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
265 "defDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
266 (self.__checkFunctionDocstring, ("D-102", "D-103")),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
267 (self.__checkImperativeMood, ("D-132",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
268 (self.__checkNoSignature, ("D-133",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
269 (self.__checkReturnType, ("D-134",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
270 (self.__checkNoBlankLineBefore, ("D-141",)),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
271 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
272 "docstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
273 (self.__checkTripleDoubleQuotes, ("D-111",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
274 (self.__checkBackslashes, ("D-112",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
275 (self.__checkOneLiner, ("D-121",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
276 (self.__checkIndent, ("D-122",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
277 (self.__checkSummary, ("D-130",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
278 (self.__checkEndsWithPeriod, ("D-131",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
279 (self.__checkBlankAfterSummary, ("D-144",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
280 (self.__checkBlankAfterLastParagraph, ("D-145",)),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
281 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
282 }
9182
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
283 elif self.__docType in ("eric", "eric_black"):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
284 checkersWithCodes = {
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
285 "moduleDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
286 (self.__checkModulesDocstrings, ("D-101", "D-201")),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
287 ],
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
288 "functionDocstring": [],
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
289 "classDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
290 (self.__checkClassDocstring, ("D-104", "D-205", "D-206")),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
292 self.__checkEricNoBlankBeforeAndAfterClassOrFunction,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
293 ("D-242", "D-243"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
294 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
295 (self.__checkEricSignal, ("D-260", "D-261", "D-262", "D-263")),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
296 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
297 "methodDocstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
298 (self.__checkEricSummary, ("D-232")),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
299 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
300 "defDocstring": [
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
301 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
302 self.__checkFunctionDocstring,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
303 ("D-102", "D-202.1", "D-202.2", "D-203"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
305 (self.__checkImperativeMood, ("D-132",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
306 (self.__checkNoSignature, ("D-133",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
307 (self.__checkEricReturn, ("D-234r", "D-235r")),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
308 (self.__checkEricYield, ("D-234y", "D-235y")),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
309 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
310 self.__checkEricFunctionArguments,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
311 ("D-236", "D-237", "D-238", "D-239"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
312 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
313 (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
314 self.__checkEricNoBlankBeforeAndAfterClassOrFunction,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
315 ("D-244", "D-245"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
316 ),
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
317 (self.__checkEricException, ("D-250", "D-251", "D-252", "D-253")),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
318 (self.__checkEricDocumentationSequence, ("D-270", "D-271")),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
319 (self.__checkEricDocumentationDeprecatedTags, ("D-272",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
320 (self.__checkEricDocumentationIndent, ("D-273",)),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
321 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
322 "docstring": [
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
323 (self.__checkTripleDoubleQuotes, ("D-111",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
324 (self.__checkBackslashes, ("D-112",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
325 (self.__checkIndent, ("D-122",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
326 (self.__checkSummary, ("D-130",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
327 (self.__checkEricEndsWithPeriod, ("D-231",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
328 (self.__checkEricBlankAfterSummary, ("D-246",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
329 (self.__checkEricNBlankAfterLastParagraph, ("D-247",)),
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
330 (self.__checkEricQuotesOnSeparateLines, ("D-222", "D-223")),
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
331 ],
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
332 }
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
333
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 self.__checkers = {}
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
335 for key, checkers in checkersWithCodes.items():
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 for checker, codes in checkers:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
337 if any(not (code and self.__ignoreCode(code)) for code in codes):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 if key not in self.__checkers:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 self.__checkers[key] = []
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 self.__checkers[key].append(checker)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
341
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
342 def __ignoreCode(self, code):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 Private method to check if the error code should be ignored.
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
346 @param code message code to check for
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
347 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
348 @return flag indicating to ignore the given code
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
349 @rtype bool
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 """
11145
d328a7b74fd8 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
351 return code in self.__ignore or (
d328a7b74fd8 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11142
diff changeset
352 code.startswith(self.__ignore) and not code.startswith(self.__select)
11142
2f0fb22c1d63 Fixed a few issues in the code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
353 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
354
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 def __error(self, lineNumber, offset, code, *args):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 Private method to record an issue.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
358
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
359 @param lineNumber line number of the issue
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
360 @type int
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
361 @param offset position within line of the issue
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
362 @type int
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
363 @param code message code
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
364 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
365 @param args arguments for the message
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
366 @type list
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 if self.__ignoreCode(code):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
370
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 if code in self.counters:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 self.counters[code] += 1
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 else:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
374 self.counters[code] = 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
375
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 # Don't care about expected codes
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 if code in self.__expected:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
379
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 if code and (self.counters[code] == 1 or self.__repeat):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 # record the issue with one based line number
3413
5e63f809732a Code style checker: Translations extracted and refactored.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3209
diff changeset
382 self.errors.append(
7610
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
383 {
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
384 "file": self.__filename,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
385 "line": lineNumber + 1,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
386 "offset": offset,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
387 "code": code,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
388 "args": args,
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
389 }
df7025fe26a3 Code Style Checker: reworked the API between frontend and backend to get some more flexibility for the future.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
390 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
391
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 def __resetReadline(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 Private method to reset the internal readline function.
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
396 self.__lineNumber = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
397
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 def __readline(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 Private method to get the next line from the source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
401
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
402 @return next line of source
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
403 @rtype str
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 self.__lineNumber += 1
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 if self.__lineNumber > len(self.__source):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
407 return ""
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 return self.__source[self.__lineNumber - 1]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
409
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 def run(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 Public method to check the given source for violations of doc string
2984
031cceaa8b01 Continued changing the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2982
diff changeset
413 conventions.
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 """
3822
1faf52d8f2bd Changed doc style checker to perform checks on empty files as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3622
diff changeset
415 if not self.__filename:
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 # don't do anything, if essential data is missing
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
418
2967
f9acd647f881 Some little optimization in the doc style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2961
diff changeset
419 if not self.__checkers:
f9acd647f881 Some little optimization in the doc style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2961
diff changeset
420 # don't do anything, if no codes were selected
f9acd647f881 Some little optimization in the doc style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2961
diff changeset
421 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
422
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 for keyword in self.__keywords:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 if keyword in self.__checkers:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 for check in self.__checkers[keyword]:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 for context in self.__parseContexts(keyword):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 docstring = self.__parseDocstring(context, keyword)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 check(docstring, context)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
429
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 def __getSummaryLine(self, docstringContext):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 Private method to extract the summary line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
433
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
434 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
435 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
436 @return summary line (string) and the line it was found on
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
437 @rtype int
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 lines = docstringContext.source()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
440
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
441 line = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442 lines[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
443 .replace('r"""', "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
444 .replace('u"""', "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 .replace('"""', "")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 .replace("r'''", "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447 .replace("u'''", "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
448 .replace("'''", "")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449 .strip()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
451
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 if len(lines) == 1 or len(line) > 0:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 return line, 0
2923
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
454 return lines[1].strip().replace('"""', "").replace("'''", ""), 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
455
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
456 def __getSummaryLines(self, docstringContext):
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
457 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
458 Private method to extract the summary lines.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
459
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
460 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
461 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
462 @return summary lines (list of string) and the line it was found on
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
463 @rtype int
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
464 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
465 summaries = []
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
466 lines = docstringContext.source()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
467
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468 line0 = (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
469 lines[0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
470 .replace('r"""', "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
471 .replace('u"""', "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
472 .replace('"""', "")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
473 .replace("r'''", "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
474 .replace("u'''", "", 1)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
475 .replace("'''", "")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
476 .strip()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
477 )
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
478 line1 = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
479 lines[1].strip().replace('"""', "").replace("'''", "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
480 if len(lines) > 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
481 else ""
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
482 )
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
483 line2 = (
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
484 lines[2].strip().replace('"""', "").replace("'''", "")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
485 if len(lines) > 2
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
486 else ""
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
487 )
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
488 if line0:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
489 lineno = 0
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
490 summaries.append(line0)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
491 if not line0.endswith(".") and line1:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
492 # two line summary
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
493 summaries.append(line1)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
494 elif line1:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
495 lineno = 1
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
496 summaries.append(line1)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
497 if not line1.endswith(".") and line2:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
498 # two line summary
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
499 summaries.append(line2)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
500 else:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
501 lineno = 2
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
502 summaries.append(line2)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
503 return summaries, lineno
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
504
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
505 def __getArgNames(self, node):
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
506 """
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
507 Private method to get the argument names of a function node.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
508
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
509 @param node AST node to extract arguments names from
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
510 @type ast.AST
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
511 @return tuple of two list of argument names, one for arguments
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
512 and one for keyword arguments
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
513 @rtype tuple of (list of str, list of str)
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
514 """
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
515 arguments = []
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
516 arguments.extend([arg.arg for arg in node.args.args])
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
517 if node.args.vararg is not None:
7894
4370a8b30648 Changed the minimum supported Python version to 3.6.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7784
diff changeset
518 arguments.append(node.args.vararg.arg)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
519
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
520 kwarguments = []
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
521 kwarguments.extend([arg.arg for arg in node.args.kwonlyargs])
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
522 if node.args.kwarg is not None:
7894
4370a8b30648 Changed the minimum supported Python version to 3.6.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7784
diff changeset
523 kwarguments.append(node.args.kwarg.arg)
7637
c878e8255972 Removed some more Python2 related code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7628
diff changeset
524 return arguments, kwarguments
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
525
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
526 ##################################################################
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 ## Parsing functionality below
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528 ##################################################################
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
529
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
530 def __parseModuleDocstring(self, source):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
531 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
532 Private method to extract a docstring given a module source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
533
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
534 @param source source to parse
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
535 @type list of str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
536 @return context of extracted docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
537 @rtype DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
538 """
6188
5a6ae3be31e6 Fixed some loop related coding issues detected by the extended code style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6170
diff changeset
539 for kind, value, (line, _char), _, _ in tokenize.generate_tokens(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
540 StringIO("".join(source)).readline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
541 ):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542 if kind in [tokenize.COMMENT, tokenize.NEWLINE, tokenize.NL]:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543 continue
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 elif kind == tokenize.STRING: # first STRING should be docstring
2971
efd4a4343019 Started to change the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2968
diff changeset
545 return DocStyleContext(value, line - 1, "docstring")
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 else:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
548
6891
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
549 return None
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
551 def __parseDocstring(self, context, what=""):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 Private method to extract a docstring given `def` or `class` source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
554
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
555 @param context context data to get the docstring from
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
556 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
557 @param what string denoting what is being parsed
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
558 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
559 @return context of extracted docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
560 @rtype DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
561 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
562 moduleDocstring = self.__parseModuleDocstring(context.source())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
563 if what.startswith("module") or context.contextType() == "module":
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
564 return moduleDocstring
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
565 if moduleDocstring:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
566 return moduleDocstring
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
567
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
568 tokenGenerator = tokenize.generate_tokens(StringIO(context.ssource()).readline)
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
569 with contextlib.suppress(StopIteration):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 kind = None
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 while kind != tokenize.INDENT:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
572 kind, _, _, _, _ = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
573 kind, value, (line, char), _, _ = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
574 if kind == tokenize.STRING: # STRING after INDENT is a docstring
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
575 return DocStyleContext(value, context.start() + line - 1, "docstring")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
576
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
577 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
578
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
579 def __parseTopLevel(self, keyword):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
580 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
581 Private method to extract top-level functions or classes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
582
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
583 @param keyword keyword signaling what to extract
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
584 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
585 @return extracted function or class contexts
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
586 @rtype list of DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
587 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
588 self.__resetReadline()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
589 tokenGenerator = tokenize.generate_tokens(self.__readline)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
590 kind, value, char = None, None, None
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
591 contexts = []
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
592 try:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
593 while True:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
594 start, end = None, None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
595 while not (kind == tokenize.NAME and value == keyword and char == 0):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
596 kind, value, (line, char), _, _ = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
597 start = line - 1, char
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
598 while not (kind == tokenize.DEDENT and value == "" and char == 0):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
599 kind, value, (line, char), _, _ = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600 end = line - 1, char
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
601 contexts.append(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
602 DocStyleContext(self.__source[start[0] : end[0]], start[0], keyword)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
603 )
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 except StopIteration:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 return contexts
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
606
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
607 def __parseFunctions(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
608 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
609 Private method to extract top-level functions.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
610
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
611 @return extracted function contexts
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
612 @rtype list of DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 if not self.__functionsCache:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
615 self.__functionsCache = self.__parseTopLevel("def")
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616 return self.__functionsCache
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
617
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
618 def __parseClasses(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
620 Private method to extract top-level classes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
621
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
622 @return extracted class contexts
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
623 @rtype list of DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
624 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
625 if not self.__classesCache:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
626 self.__classesCache = self.__parseTopLevel("class")
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
627 return self.__classesCache
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
628
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
629 def __skipIndentedBlock(self, tokenGenerator):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
630 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 Private method to skip over an indented block of source code.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
632
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
633 @param tokenGenerator token generator
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
634 @type str iterator
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
635 @return last token of the indented block
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
636 @rtype tuple
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 kind, value, start, end, raw = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639 while kind != tokenize.INDENT:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 kind, value, start, end, raw = next(tokenGenerator)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 indent = 1
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642 for kind, value, start, end, raw in tokenGenerator:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
643 if kind == tokenize.INDENT:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 indent += 1
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 elif kind == tokenize.DEDENT:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646 indent -= 1
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 if indent == 0:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648 return kind, value, start, end, raw
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
649
6891
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
650 return None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
651
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 def __parseMethods(self):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 Private method to extract methods of all classes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
655
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
656 @return extracted method contexts
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
657 @rtype list of DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 if not self.__methodsCache:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 contexts = []
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
661 for classContext in self.__parseClasses():
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 tokenGenerator = tokenize.generate_tokens(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
663 StringIO(classContext.ssource()).readline
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
664 )
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 kind, value, char = None, None, None
8243
cc717c2ae956 Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8222
diff changeset
666 with contextlib.suppress(StopIteration):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 while True:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 start, end = None, None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
669 while not (kind == tokenize.NAME and value == "def"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
670 kind, value, (line, char), _, _ = next(tokenGenerator)
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671 start = line - 1, char
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
672 kind, value, (line, char), _, _ = self.__skipIndentedBlock(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
673 tokenGenerator
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
674 )
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 end = line - 1, char
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
676 startLine = classContext.start() + start[0]
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677 endLine = classContext.start() + end[0]
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
678 context = DocStyleContext(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
679 self.__source[startLine:endLine], startLine, "def"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
680 )
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
681 if startLine > 0:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
682 if self.__source[startLine - 1].strip() == "@staticmethod":
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
683 context.setSpecial("staticmethod")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
684 elif self.__source[startLine - 1].strip() == "@classmethod":
5812
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
685 context.setSpecial("classmethod")
ffc31e1cff4e Extended the documentation style checker to check for @classmethod and @staticmethod.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5732
diff changeset
686 contexts.append(context)
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 self.__methodsCache = contexts
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
688
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 return self.__methodsCache
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
691 def __parseContexts(self, kind):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 Private method to extract a context from the source.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
694
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
695 @param kind kind of context to extract
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
696 @type str
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
697 @return requested contexts
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
698 @rtype list of DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
700 if kind == "moduleDocstring":
2971
efd4a4343019 Started to change the names of the various code style checkers to make them more appropriate to the broadened scope.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2968
diff changeset
701 return [DocStyleContext(self.__source, 0, "module")]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
702 if kind == "functionDocstring":
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
703 return self.__parseFunctions()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
704 if kind == "classDocstring":
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705 return self.__parseClasses()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
706 if kind == "methodDocstring":
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
707 return self.__parseMethods()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
708 if kind == "defDocstring":
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
709 return self.__parseFunctions() + self.__parseMethods()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
710 if kind == "docstring":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
711 return (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
712 [DocStyleContext(self.__source, 0, "module")]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
713 + self.__parseFunctions()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
714 + self.__parseClasses()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
715 + self.__parseMethods()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
716 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
717 return [] # fall back
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
718
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
719 ##################################################################
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
720 ## Checking functionality below (PEP-257)
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
721 ##################################################################
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 def __checkModulesDocstrings(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
725 Private method to check, if the module has a docstring.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
726
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
727 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
728 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
729 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
730 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 if docstringContext is None:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
733 self.__error(context.start(), 0, "D-101")
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
735
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736 docstring = docstringContext.ssource()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
737 if not docstring or not docstring.strip() or not docstring.strip("'\""):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
738 self.__error(context.start(), 0, "D-101")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
739
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
740 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
741 self.__docType == "eric"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
742 and docstring.strip("'\"").strip() == "Module documentation goes here."
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
743 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
744 self.__error(docstringContext.end(), 0, "D-201")
6170
2bcf6e5637e7 Code Style Checker: added checks for default docstring in functions and modules
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6051
diff changeset
745 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
746
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
747 def __checkFunctionDocstring(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
748 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
749 Private method to check, that all public functions and methods
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
750 have a docstring.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
751
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
752 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
753 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
754 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
755 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
756 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 functionName = context.source()[0].lstrip().split()[1].split("(")[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
758 if functionName.startswith("_") and not functionName.endswith("__"):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
759 if self.__docType == "eric":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
760 code = "D-203"
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
761 else:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
762 code = "D-103"
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763 else:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
764 code = "D-102"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
765
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
766 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
767 self.__error(context.start(), 0, code)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
769
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 docstring = docstringContext.ssource()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
771 if not docstring or not docstring.strip() or not docstring.strip("'\""):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 self.__error(context.start(), 0, code)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
773
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7987
diff changeset
774 if self.__docType == "eric":
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
775 if docstring.strip("'\"").strip() == "Function documentation goes here.":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
776 self.__error(docstringContext.end(), 0, "D-202.1")
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7987
diff changeset
777 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
778
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
779 if "DESCRIPTION" in docstring or "TYPE" in docstring:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
780 self.__error(docstringContext.end(), 0, "D-202.2")
7998
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7987
diff changeset
781 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
782
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
783 def __checkClassDocstring(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
784 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 Private method to check, that all public functions and methods
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
786 have a docstring.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
787
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
788 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
789 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
790 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
791 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 className = context.source()[0].lstrip().split()[1].split("(")[0]
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
794 if className.startswith("_"):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
795 if self.__docType == "eric":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
796 code = "D-205"
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
797 else:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
798 code = "D-105"
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 else:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
800 code = "D-104"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
801
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
802 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 self.__error(context.start(), 0, code)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
805
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
806 docstring = docstringContext.ssource()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
807 if not docstring or not docstring.strip() or not docstring.strip("'\""):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
808 self.__error(context.start(), 0, code)
6051
6e09a9a73cb7 Added a documentation style check for a template class documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
809 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
810
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
811 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
812 self.__docType == "eric"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
813 and docstring.strip("'\"").strip() == "Class documentation goes here."
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
814 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
815 self.__error(docstringContext.end(), 0, "D-206")
6051
6e09a9a73cb7 Added a documentation style check for a template class documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
816 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
817
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
818 def __checkTripleDoubleQuotes(self, docstringContext, _context):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
819 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 Private method to check, that all docstrings are surrounded
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 by triple double quotes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
822
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
823 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
824 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
825 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
826 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
830
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 docstring = docstringContext.ssource().strip()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832 if not docstring.startswith(('"""', 'r"""', 'u"""')):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
833 self.__error(docstringContext.start(), 0, "D-111")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
834
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
835 def __checkBackslashes(self, docstringContext, _context):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
837 Private method to check, that all docstrings containing
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
838 backslashes are surrounded by raw triple double quotes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
839
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
840 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
841 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
842 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
843 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
847
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 docstring = docstringContext.ssource().strip()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 if "\\" in docstring and not docstring.startswith('r"""'):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
850 self.__error(docstringContext.start(), 0, "D-112")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
851
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 def __checkOneLiner(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
853 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 Private method to check, that one-liner docstrings fit on
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 one line with quotes.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
856
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
857 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
858 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
859 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
860 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
862 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
863 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
864
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
865 lines = docstringContext.source()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
866 if len(lines) > 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
867 nonEmptyLines = [line for line in lines if line.strip().strip("'\"")]
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
868 if len(nonEmptyLines) == 1:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
869 modLen = len(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
870 context.indent() + '"""' + nonEmptyLines[0].strip() + '"""'
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
871 )
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
872 if context.contextType() != "module":
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
873 modLen += 4
2923
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
874 if not nonEmptyLines[0].strip().endswith("."):
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
875 # account for a trailing dot
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
876 modLen += 1
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
877 if modLen <= self.__maxLineLength:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
878 self.__error(docstringContext.start(), 0, "D-121")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
879
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
880 def __checkIndent(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
881 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
882 Private method to check, that docstrings are properly indented.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
883
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
884 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
885 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
886 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
887 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
888 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
889 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
890 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
891
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
892 lines = docstringContext.source()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
893 if len(lines) == 1:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
894 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
895
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7610
diff changeset
896 nonEmptyLines = [line.rstrip() for line in lines[1:] if line.strip()]
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 if not nonEmptyLines:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
898 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
899
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7610
diff changeset
900 indent = min(len(line) - len(line.strip()) for line in nonEmptyLines)
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
901 expectedIndent = (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
902 0 if context.contextType() == "module" else len(context.indent()) + 4
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8243
diff changeset
903 )
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
904 if indent != expectedIndent:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
905 self.__error(docstringContext.start(), 0, "D-122")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
906
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
907 def __checkSummary(self, docstringContext, _context):
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
908 """
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
909 Private method to check, that docstring summaries contain some text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
910
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
911 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
912 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
913 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
914 @type DocStyleContext
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
915 """
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
916 if docstringContext is None:
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
917 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
918
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
919 summary, lineNumber = self.__getSummaryLine(docstringContext)
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
920 if summary == "":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
921 self.__error(docstringContext.start() + lineNumber, 0, "D-130")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
922
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
923 def __checkEndsWithPeriod(self, docstringContext, _context):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
924 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
925 Private method to check, that docstring summaries end with a period.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
926
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
927 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
928 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
929 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
930 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
932 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
933 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
934
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
935 summary, lineNumber = self.__getSummaryLine(docstringContext)
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
936 if not summary.endswith("."):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
937 self.__error(docstringContext.start() + lineNumber, 0, "D-131")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
938
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
939 def __checkImperativeMood(self, docstringContext, _context):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
940 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
941 Private method to check, that docstring summaries are in
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 imperative mood.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
943
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
944 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
945 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
946 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
947 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
951
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
952 summary, lineNumber = self.__getSummaryLine(docstringContext)
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
953 if summary:
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
954 firstWord = summary.strip().split()[0]
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
955 if firstWord.endswith("s") and not firstWord.endswith("ss"):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
956 self.__error(docstringContext.start() + lineNumber, 0, "D-132")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
957
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 def __checkNoSignature(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
959 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
960 Private method to check, that docstring summaries don't repeat
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 the function's signature.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
962
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
963 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
964 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
965 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
966 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 if docstringContext is None:
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
969 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
970
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
971 functionName = context.source()[0].lstrip().split()[1].split("(")[0]
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
972 summary, lineNumber = self.__getSummaryLine(docstringContext)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
973 if functionName + "(" in summary.replace(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
974 " ", ""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
975 ) and functionName + "()" not in summary.replace(" ", ""):
2948
ea04689ee599 Some more tweaks to the doc style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2945
diff changeset
976 # report only, if it is not an abbreviated form (i.e. function() )
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
977 self.__error(docstringContext.start() + lineNumber, 0, "D-133")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
978
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
979 def __checkReturnType(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
980 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981 Private method to check, that docstrings mention the return value type.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
982
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
983 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
984 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
985 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
986 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
987 """
2968
b109ff4678bc Removed the check for a module being a script because scripts should be well documented as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2967
diff changeset
988 if docstringContext is None:
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
989 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
990
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
991 if "return" not in docstringContext.ssource().lower():
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
992 tokens = list(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
993 tokenize.generate_tokens(StringIO(context.ssource()).readline)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
994 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
995 return_ = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
996 tokens[i + 1][0]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
997 for i, token in enumerate(tokens)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
998 if token[1] == "return"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
999 ]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1000 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1001 set(return_) - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE}
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1002 != set()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1003 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1004 self.__error(docstringContext.end(), 0, "D-134")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1005
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1006 def __checkNoBlankLineBefore(self, docstringContext, context):
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1007 """
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1008 Private method to check, that function/method docstrings are not
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1009 preceded by a blank line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1010
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1011 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1012 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1013 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1014 @type DocStyleContext
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1015 """
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1016 if docstringContext is None:
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1017 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1018
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1019 contextLines = context.source()
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1020 cti = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1021 while cti < len(contextLines) and not contextLines[cti].strip().startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1022 ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1023 ):
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1024 cti += 1
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1025 if cti == len(contextLines):
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1026 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1027
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1028 if not contextLines[cti - 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1029 self.__error(docstringContext.start(), 0, "D-141")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1030
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1031 def __checkBlankBeforeAndAfterClass(self, docstringContext, context):
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1032 """
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1033 Private method to check, that class docstrings have one
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1034 blank line around them.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1035
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1036 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1037 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1038 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1039 @type DocStyleContext
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1040 """
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1041 if docstringContext is None:
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1042 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1043
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044 contextLines = context.source()
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 cti = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1046 while cti < len(contextLines) and not contextLines[cti].strip().startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1047 ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1048 ):
2915
9da653363d07 Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1049 cti += 1
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1050 if cti == len(contextLines):
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1051 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1052
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1053 start = cti
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1054 if contextLines[cti].strip() in ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''"):
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1055 # it is a multi line docstring
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1056 cti += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1057
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1058 while cti < len(contextLines) and not contextLines[cti].strip().endswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1059 ('"""', "'''")
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1060 ):
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1061 cti += 1
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1062 end = cti
2944
dcca9f5c701d Fixed a few bugs in the documantation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2937
diff changeset
1063 if cti >= len(contextLines) - 1:
2923
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
1064 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1065
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1066 if contextLines[start - 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1067 self.__error(docstringContext.start(), 0, "D-142")
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1068 if contextLines[end + 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1069 self.__error(docstringContext.end(), 0, "D-143")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1070
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1071 def __checkBlankAfterSummary(self, docstringContext, _context):
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1072 """
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1073 Private method to check, that docstring summaries are followed
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1074 by a blank line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1075
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1076 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1077 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1078 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1079 @type DocStyleContext
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1080 """
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1081 if docstringContext is None:
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1082 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1083
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1084 docstrings = docstringContext.source()
2925
04896af1b0e1 Completed the PEP-257 fixes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2923
diff changeset
1085 if len(docstrings) <= 3:
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1086 # correct/invalid one-liner
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1087 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1088
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1089 summary, lineNumber = self.__getSummaryLine(docstringContext)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1090 if len(docstrings) > 2 and docstrings[lineNumber + 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1091 self.__error(docstringContext.start() + lineNumber, 0, "D-144")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1092
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1093 def __checkBlankAfterLastParagraph(self, docstringContext, _context):
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1094 """
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1095 Private method to check, that the last paragraph of docstrings is
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1096 followed by a blank line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1097
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1098 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1099 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1100 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1101 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1102 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1103 if docstringContext is None:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1104 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1105
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1106 docstrings = docstringContext.source()
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1107 if len(docstrings) <= 3:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1108 # correct/invalid one-liner
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1109 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1110
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1111 if docstrings[-2].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1112 self.__error(docstringContext.end(), 0, "D-145")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1113
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1114 ##################################################################
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1115 ## Checking functionality below (eric specific ones)
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1116 ##################################################################
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1117
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1118 def __checkEricQuotesOnSeparateLines(self, docstringContext, _context):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1119 """
2937
de26bc76d6ee Finished implementing fixer method for eric style docstring issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2935
diff changeset
1120 Private method to check, that leading and trailing quotes are on
de26bc76d6ee Finished implementing fixer method for eric style docstring issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2935
diff changeset
1121 a line by themselves.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1122
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1123 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1124 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1125 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1126 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1127 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1128 if docstringContext is None:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1129 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1130
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1131 lines = docstringContext.source()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1132 if lines[0].strip().strip("ru\"'"):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1133 self.__error(docstringContext.start(), 0, "D-221")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1134 if lines[-1].strip().strip("\"'"):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1135 self.__error(docstringContext.end(), 0, "D-222")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1136
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1137 def __checkEricEndsWithPeriod(self, docstringContext, _context):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1138 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1139 Private method to check, that docstring summaries end with a period.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1140
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1141 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1142 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1143 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1144 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1145 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1146 if docstringContext is None:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1147 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1148
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1149 summaryLines, lineNumber = self.__getSummaryLines(docstringContext)
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1150 if summaryLines:
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1151 if summaryLines[-1].lstrip().startswith("@"):
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1152 summaryLines.pop(-1)
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1153 summary = " ".join([s.strip() for s in summaryLines if s])
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1154 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1155 summary
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1156 and not summary.endswith(".")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1157 and summary.split(None, 1)[0].lower() != "constructor"
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1158 ):
3165
400234200cd6 Fixed a serious bug in the doc style checker and made the style checker for Python2 more robust against exceptions in the external process.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1159 self.__error(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1160 docstringContext.start() + lineNumber + len(summaryLines) - 1,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1161 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1162 "D-231",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1163 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1164
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1165 def __checkEricReturn(self, docstringContext, context):
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1166 """
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1167 Private method to check, that docstrings contain an &#64;return line
2945
0005e6314aea Fixed some more issues in the doc style checker and extended the checks for the eric doc style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2944
diff changeset
1168 if they return anything and don't otherwise.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1169
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1170 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1171 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1172 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1173 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1174 """
2968
b109ff4678bc Removed the check for a module being a script because scripts should be well documented as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2967
diff changeset
1175 if docstringContext is None:
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1176 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1177
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1178 tokens = list(tokenize.generate_tokens(StringIO(context.ssource()).readline))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1179 return_ = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1180 tokens[i + 1][0] for i, token in enumerate(tokens) if token[1] == "return"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1181 ]
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1182 if "@return" not in docstringContext.ssource():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1183 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1184 set(return_) - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE}
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1185 != set()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1186 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1187 self.__error(docstringContext.end(), 0, "D-234r")
2945
0005e6314aea Fixed some more issues in the doc style checker and extended the checks for the eric doc style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2944
diff changeset
1188 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1189 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1190 set(return_) - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE}
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1191 == set()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1192 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1193 self.__error(docstringContext.end(), 0, "D-235r")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1194
7987
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1195 def __checkEricYield(self, docstringContext, context):
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1196 """
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1197 Private method to check, that docstrings contain an &#64;yield line
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1198 if they return anything and don't otherwise.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1199
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1200 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1201 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1202 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1203 @type DocStyleContext
7987
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1204 """
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1205 if docstringContext is None:
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1206 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1207
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1208 tokens = list(tokenize.generate_tokens(StringIO(context.ssource()).readline))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1209 yield_ = [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1210 tokens[i + 1][0] for i, token in enumerate(tokens) if token[1] == "yield"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1211 ]
7987
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1212 if "@yield" not in docstringContext.ssource():
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1213 if set(yield_) - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE} != set():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1214 self.__error(docstringContext.end(), 0, "D-234y")
7987
e8eb8370ea94 Source code documentation generator, doc checker: added support for @yield and @ytype.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
1215 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1216 if set(yield_) - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE} == set():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1217 self.__error(docstringContext.end(), 0, "D-235y")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1218
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1219 def __checkEricFunctionArguments(self, docstringContext, context):
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1220 """
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1221 Private method to check, that docstrings contain an &#64;param and/or
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1222 &#64;keyparam line for each argument.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1223
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1224 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1225 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1226 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1227 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1228 """
2968
b109ff4678bc Removed the check for a module being a script because scripts should be well documented as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2967
diff changeset
1229 if docstringContext is None:
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1230 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1231
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1232 try:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1233 tree = ast.parse(context.ssource())
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1234 except (SyntaxError, TypeError):
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1235 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1236 if (
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1237 isinstance(tree, ast.Module)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1238 and len(tree.body) == 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1239 and isinstance(tree.body[0], (ast.FunctionDef, ast.AsyncFunctionDef))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1240 ):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1241 functionDef = tree.body[0]
2929
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1242 argNames, kwNames = self.__getArgNames(functionDef)
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1243 if "self" in argNames:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1244 argNames.remove("self")
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1245 if "cls" in argNames:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1246 argNames.remove("cls")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1247
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1248 tagstring = "".join(
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1249 line.lstrip()
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1250 for line in docstringContext.source()
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1251 if line.lstrip().startswith("@")
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1252 )
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1253 if tagstring.count("@param") + tagstring.count("@keyparam") < len(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1254 argNames + kwNames
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1255 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1256 self.__error(docstringContext.end(), 0, "D-236")
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1257 elif tagstring.count("@param") + tagstring.count("@keyparam") > len(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1258 argNames + kwNames
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1259 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1260 self.__error(docstringContext.end(), 0, "D-237")
2929
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1261 else:
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1262 # extract @param and @keyparam from docstring
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1263 args = []
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1264 kwargs = []
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1265 for line in docstringContext.source():
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1266 if line.strip().startswith(("@param", "@keyparam")):
5898
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1267 paramParts = line.strip().split(None, 2)
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1268 if len(paramParts) >= 2:
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1269 at, name = paramParts[:2]
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1270 if at == "@keyparam":
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1271 kwargs.append(name.lstrip("*"))
fc96d49f5fbf Fixed an issue in the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5815
diff changeset
1272 args.append(name.lstrip("*"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1273
2929
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1274 # do the checks
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1275 for name in kwNames:
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1276 if name not in kwargs:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1277 self.__error(docstringContext.end(), 0, "D-238")
2929
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1278 return
28ab0bc63d69 Finished enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2928
diff changeset
1279 if argNames + kwNames != args:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1280 self.__error(docstringContext.end(), 0, "D-239")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1281
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1282 def __checkEricException(self, docstringContext, context):
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1283 """
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1284 Private method to check, that docstrings contain an &#64;exception line
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1285 if they raise an exception and don't otherwise.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1286
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1287 Note: This method also checks the raised and documented exceptions for
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1288 completeness (i.e. raised exceptions that are not documented or
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1289 documented exceptions that are not raised)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1290
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1291 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1292 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1293 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1294 @type DocStyleContext
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1295 """
2968
b109ff4678bc Removed the check for a module being a script because scripts should be well documented as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2967
diff changeset
1296 if docstringContext is None:
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1297 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1298
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1299 tokens = list(tokenize.generate_tokens(StringIO(context.ssource()).readline))
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1300 exceptions = set()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1301 raisedExceptions = set()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1302 tokensLen = len(tokens)
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1303 for i, token in enumerate(tokens):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1304 if token[1] == "raise":
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1305 exceptions.add(tokens[i + 1][0])
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1306 if tokens[i + 1][0] == tokenize.NAME:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1307 if tokensLen > (i + 2) and tokens[i + 2][1] == ".":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1308 raisedExceptions.add(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1309 "{0}.{1}".format(tokens[i + 1][1], tokens[i + 3][1])
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1310 )
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1311 else:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1312 raisedExceptions.add(tokens[i + 1][1])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1313
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1314 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1315 "@exception" not in docstringContext.ssource()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1316 and "@throws" not in docstringContext.ssource()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1317 and "@raise" not in docstringContext.ssource()
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1318 ):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1319 if exceptions - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE} != set():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1320 self.__error(docstringContext.end(), 0, "D-250")
2949
e8f41288a688 Added a check for the @exception line of the eric doc strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2948
diff changeset
1321 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1322 if exceptions - {tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE} == set():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1323 self.__error(docstringContext.end(), 0, "D-251")
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1324 else:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1325 # step 1: extract documented exceptions
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1326 documentedExceptions = set()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1327 for line in docstringContext.source():
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1328 line = line.strip()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1329 if line.startswith(("@exception", "@throws", "@raise")):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1330 exceptionTokens = line.split(None, 2)
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1331 if len(exceptionTokens) >= 2:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1332 documentedExceptions.add(exceptionTokens[1])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1333
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1334 # step 2: report undocumented exceptions
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1335 for exception in raisedExceptions:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1336 if exception not in documentedExceptions:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1337 self.__error(docstringContext.end(), 0, "D-252", exception)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1338
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1339 # step 3: report undefined signals
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1340 for exception in documentedExceptions:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1341 if exception not in raisedExceptions:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1342 self.__error(docstringContext.end(), 0, "D-253", exception)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1343
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1344 def __checkEricSignal(self, docstringContext, context):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1345 """
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1346 Private method to check, that docstrings contain an &#64;signal line
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1347 if they define signals and don't otherwise.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1348
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1349 Note: This method also checks the defined and documented signals for
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1350 completeness (i.e. defined signals that are not documented or
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1351 documented signals that are not defined)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1352
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1353 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1354 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1355 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1356 @type DocStyleContext
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1357 """
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1358 if docstringContext is None:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1359 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1360
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1361 tokens = list(tokenize.generate_tokens(StringIO(context.ssource()).readline))
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1362 definedSignals = set()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1363 for i, token in enumerate(tokens):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1364 if token[1] in ("pyqtSignal", "Signal"):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1365 if tokens[i - 1][1] == "." and tokens[i - 2][1] == "QtCore":
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1366 definedSignals.add(tokens[i - 4][1])
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1367 elif tokens[i - 1][1] == "=":
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1368 definedSignals.add(tokens[i - 2][1])
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1369
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1370 if "@signal" not in docstringContext.ssource() and definedSignals:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1371 self.__error(docstringContext.end(), 0, "D-260")
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1372 elif "@signal" in docstringContext.ssource():
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1373 if not definedSignals:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1374 self.__error(docstringContext.end(), 0, "D-261")
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1375 else:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1376 # step 1: extract documented signals
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1377 documentedSignals = set()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1378 for line in docstringContext.source():
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1379 line = line.strip()
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1380 if line.startswith("@signal"):
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1381 signalTokens = line.split(None, 2)
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1382 if len(signalTokens) >= 2:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1383 signal = signalTokens[1]
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1384 if "(" in signal:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1385 signal = signal.split("(", 1)[0]
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1386 documentedSignals.add(signal)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1387
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1388 # step 2: report undocumented signals
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1389 for signal in definedSignals:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1390 if signal not in documentedSignals:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1391 self.__error(docstringContext.end(), 0, "D-262", signal)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1392
5732
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1393 # step 3: report undefined signals
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1394 for signal in documentedSignals:
34041e56ec42 Extended the source documentation checker to check for raised/documented exceptions and defined/documented signals.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5588
diff changeset
1395 if signal not in definedSignals:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1396 self.__error(docstringContext.end(), 0, "D-263", signal)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1397
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1398 def __checkEricBlankAfterSummary(self, docstringContext, _context):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1399 """
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1400 Private method to check, that docstring summaries are followed
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1401 by a blank line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1402
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1403 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1404 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1405 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1406 @type DocStyleContext
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1407 """
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1408 if docstringContext is None:
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1409 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1410
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1411 docstrings = docstringContext.source()
2923
01ac1f364b38 Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2917
diff changeset
1412 if len(docstrings) <= 3:
2916
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1413 # correct/invalid one-liner
a8628dfdfe04 Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2915
diff changeset
1414 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1415
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1416 summaryLines, lineNumber = self.__getSummaryLines(docstringContext)
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8207
diff changeset
1417 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1418 len(docstrings) - 2 > lineNumber + len(summaryLines) - 1
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1419 and docstrings[lineNumber + len(summaryLines)].strip()
8222
5994b80b8760 Applied some more code simplifications suggested by the new Simplify checker (Y102: use single if) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8207
diff changeset
1420 ):
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1421 self.__error(docstringContext.start() + lineNumber, 0, "D-246")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1422
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1423 def __checkEricNoBlankBeforeAndAfterClassOrFunction(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1424 self, docstringContext, context
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1425 ):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1426 """
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1427 Private method to check, that class and function/method docstrings
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1428 have no blank line around them.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1429
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1430 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1431 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1432 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1433 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1434 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1435 if docstringContext is None:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1436 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1437
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1438 contextLines = context.source()
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1439 isClassContext = contextLines[0].lstrip().startswith("class ")
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1440 cti = 0
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1441 while cti < len(contextLines) and not contextLines[cti].strip().startswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1442 ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1443 ):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1444 cti += 1
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1445 if cti == len(contextLines):
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1446 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1447
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1448 start = cti
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1449 if contextLines[cti].strip() in ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''"):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1450 # it is a multi line docstring
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1451 cti += 1
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1452
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1453 while cti < len(contextLines) and not contextLines[cti].strip().endswith(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1454 ('"""', "'''")
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1455 ):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1456 cti += 1
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1457 end = cti
2944
dcca9f5c701d Fixed a few bugs in the documantation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2937
diff changeset
1458 if cti >= len(contextLines) - 1:
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1459 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1460
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1461 if isClassContext:
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1462 if not contextLines[start - 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1463 self.__error(docstringContext.start(), 0, "D-242")
9182
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
1464 if not contextLines[end + 1].strip() and self.__docType == "eric":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1465 self.__error(docstringContext.end(), 0, "D-243")
9182
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
1466 elif contextLines[end + 1].strip() and self.__docType == "eric_black":
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1467 self.__error(docstringContext.end(), 0, "D-143")
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1468 else:
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1469 if not contextLines[start - 1].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1470 self.__error(docstringContext.start(), 0, "D-244")
2934
82811ddafea2 Extended the eric doc string checks for functions not surrounded by blank lines.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2929
diff changeset
1471 if not contextLines[end + 1].strip():
9182
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
1472 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1473 self.__docType == "eric_black"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1474 and len(contextLines) > end + 2
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1475 and contextLines[end + 2].strip().startswith("def ")
9182
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
1476 ):
bc72e2fc0d8e Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9179
diff changeset
1477 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1478
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1479 self.__error(docstringContext.end(), 0, "D-245")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1480
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1481 def __checkEricNBlankAfterLastParagraph(self, docstringContext, _context):
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1482 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1483 Private method to check, that the last paragraph of docstrings is
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1484 not followed by a blank line.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1485
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1486 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1487 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1488 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1489 @type DocStyleContext
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1490 """
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1491 if docstringContext is None:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1492 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1493
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1494 docstrings = docstringContext.source()
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1495 if len(docstrings) <= 3:
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1496 # correct/invalid one-liner
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1497 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1498
2928
4f74d3f595ce Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2925
diff changeset
1499 if not docstrings[-2].strip():
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1500 self.__error(docstringContext.end(), 0, "D-247")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1501
3582
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1502 def __checkEricSummary(self, docstringContext, context):
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1503 """
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1504 Private method to check, that method docstring summaries start with
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1505 specific words.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1506
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1507 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1508 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1509 @param context context of the docstring
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1510 @type DocStyleContext
3582
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1511 """
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1512 if docstringContext is None:
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1513 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1514
3582
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1515 summary, lineNumber = self.__getSummaryLine(docstringContext)
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1516 if summary:
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1517 # check, if the first word is 'Constructor', 'Public',
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1518 # 'Protected' or 'Private'
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1519 functionName, arguments = (
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1520 context.source()[0].lstrip().split()[1].split("(", 1)
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1521 )
3582
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1522 firstWord = summary.strip().split(None, 1)[0].lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1523 if functionName == "__init__":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1524 if firstWord != "constructor":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1525 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1526 docstringContext.start() + lineNumber, 0, "D-232", "constructor"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1527 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1528 elif functionName.startswith("__") and functionName.endswith("__"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1529 if firstWord != "special":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1530 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1531 docstringContext.start() + lineNumber, 0, "D-232", "special"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1532 )
5813
82349b9ceb4d Refined the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5812
diff changeset
1533 elif context.special() == "staticmethod":
5815
223fa32b3a32 Extended the doc style checker again and corrected some doc style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5813
diff changeset
1534 secondWord = summary.strip().split(None, 2)[1].lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1535 if firstWord != "static" and secondWord != "static":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1536 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1537 docstringContext.start() + lineNumber, 0, "D-232", "static"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1538 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1539 elif secondWord == "static":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1540 if functionName.startswith(("__", "on_")):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1541 if firstWord != "private":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1542 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1543 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1544 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1545 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1546 "private static",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1547 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1548 elif functionName.startswith("_") or functionName.endswith("Event"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1549 if firstWord != "protected":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1550 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1551 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1552 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1553 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1554 "protected static",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1555 )
5815
223fa32b3a32 Extended the doc style checker again and corrected some doc style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5813
diff changeset
1556 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1557 if firstWord != "public":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1558 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1559 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1560 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1561 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1562 "public static",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1563 )
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1564 elif (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1565 arguments.startswith(("cls,", "cls)"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1566 or context.special() == "classmethod"
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7243
diff changeset
1567 ):
5813
82349b9ceb4d Refined the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5812
diff changeset
1568 secondWord = summary.strip().split(None, 2)[1].lower()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1569 if firstWord != "class" and secondWord != "class":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1570 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1571 docstringContext.start() + lineNumber, 0, "D-232", "class"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1572 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1573 elif secondWord == "class":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1574 if functionName.startswith(("__", "on_")):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1575 if firstWord != "private":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1576 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1577 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1578 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1579 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1580 "private class",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1581 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1582 elif functionName.startswith("_") or functionName.endswith("Event"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1583 if firstWord != "protected":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1584 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1585 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1586 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1587 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1588 "protected class",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1589 )
5813
82349b9ceb4d Refined the documentation style checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5812
diff changeset
1590 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1591 if firstWord != "public":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1592 self.__error(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1593 docstringContext.start() + lineNumber,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1594 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1595 "D-232",
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1596 "public class",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1597 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1598 elif functionName.startswith(("__", "on_")):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1599 if firstWord != "private":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1600 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1601 docstringContext.start() + lineNumber, 0, "D-232", "private"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1602 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1603 elif functionName.startswith("_") or functionName.endswith("Event"):
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1604 if firstWord != "protected":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1605 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1606 docstringContext.start() + lineNumber, 0, "D-232", "protected"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1607 )
3582
49f9c3695ef5 Extended the doc style checker by another eric style check.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3539
diff changeset
1608 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1609 if firstWord != "public":
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1610 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1611 docstringContext.start() + lineNumber, 0, "D-232", "public"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
1612 )
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1613
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1614 def __checkEricDocumentationSequence(
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1615 self,
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1616 docstringContext,
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1617 _context,
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1618 ):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1619 """
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1620 Private method to check, that method docstring follows the correct sequence
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1621 of entries (e.g. @param is followed by @type).
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1622
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1623 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1624 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1625 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1626 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1627 """
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1628 if docstringContext is None:
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1629 return
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1630
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1631 docTokens = []
10440
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1632 lines = docstringContext.source()
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1633 for lineno, line in enumerate(lines):
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1634 strippedLine = line.lstrip()
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1635 if strippedLine.startswith("@"):
10440
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1636 docToken = strippedLine.split(None, 1)[0]
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1637 docTokens.append((docToken, lineno))
10458
2074b8393649 Corrected some code documentation style and code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10457
diff changeset
1638
10455
bed8a0c90d11 Corrected some typos in the documentation checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10440
diff changeset
1639 # check, that a type tag is not preceded by an empty line
10440
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1640 if (
10455
bed8a0c90d11 Corrected some typos in the documentation checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10440
diff changeset
1641 docToken in ("@type", "@rtype", "@ytype")
10440
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1642 and lineno > 0
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1643 and lines[lineno - 1].strip() == ""
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1644 ):
11148
15e30f0c76a8 Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
1645 self.__error(
15e30f0c76a8 Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
1646 docstringContext.start() + lineno, 0, "D-271", docToken
15e30f0c76a8 Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11147
diff changeset
1647 )
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1648
10440
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1649 # check the correct sequence of @param/@return/@yield and their accompanying
2c1289d82881 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
1650 # type tag
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1651 for index in range(len(docTokens)):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1652 docToken, lineno = docTokens[index]
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1653 try:
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1654 docToken2, _ = docTokens[index + 1]
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1655 except IndexError:
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1656 docToken2 = ""
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1657
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1658 if docToken in ("@param", "@keyparam") and docToken2 != "@type":
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1659 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1660 docstringContext.start() + lineno, 0, "D-270", docToken, "@type"
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1661 )
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1662 elif docToken == "@return" and docToken2 != "@rtype":
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1663 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1664 docstringContext.start() + lineno, 0, "D-270", docToken, "@rtype"
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1665 )
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1666 elif docToken == "@yield" and docToken2 != "@ytype":
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1667 self.__error(
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1668 docstringContext.start() + lineno, 0, "D-270", docToken, "@ytype"
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1669 )
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1670
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1671 def __checkEricDocumentationDeprecatedTags(
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1672 self,
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1673 docstringContext,
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1674 _context,
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1675 ):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1676 """
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1677 Private method to check the use of deprecated documentation tags.
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1678
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1679 @param docstringContext docstring context
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1680 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1681 @param _context context of the docstring (unused)
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1682 @type DocStyleContext
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1683 """
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1684 if docstringContext is None:
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1685 return
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1686
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1687 deprecationsList = {
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1688 # key is deprecated tag, value is the tag to be used
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1689 "@ireturn": "@return",
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1690 "@ptype": "@type",
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1691 "@raise": "@exception",
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1692 "@throws": "@exception",
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1693 }
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1694
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1695 for lineno, line in enumerate(docstringContext.source()):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1696 strippedLine = line.lstrip()
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1697 if strippedLine.startswith("@"):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1698 # it is a tag line
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1699 tag = strippedLine.split(None, 1)[0]
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1700 with contextlib.suppress(KeyError):
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1701 self.__error(
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1702 docstringContext.start() + lineno,
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1703 0,
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1704 "D-272",
10418
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1705 tag,
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1706 deprecationsList[tag],
4573827e9815 Code Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
1707 )
10457
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1708
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1709 def __checkEricDocumentationIndent(
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1710 self,
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1711 docstringContext,
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1712 _context,
10457
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1713 ):
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1714 """
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1715 Private method to check the the correct indentation of the tag lines.
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1716
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1717 @param docstringContext docstring context
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1718 @type DocStyleContext
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10458
diff changeset
1719 @param _context context of the docstring (unused)
10457
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1720 @type DocStyleContext
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1721 """
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1722 if docstringContext is None or not docstringContext.source():
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1723 return
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1724
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1725 lines = docstringContext.source()
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1726 for line in lines[1:]:
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1727 if line.strip():
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1728 indentationLength = len(line) - len(line.lstrip())
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1729 break
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1730 else:
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1731 # only empty lines except the first one
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1732 return
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1733
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1734 for lineno, line in enumerate(lines):
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1735 strippedLine = line.lstrip()
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1736 if strippedLine.startswith("@"):
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1737 tag = strippedLine.split(None, 1)[0]
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1738 currentIndentation = len(line) - len(strippedLine)
4bef44d7a378 Style Checker
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10455
diff changeset
1739 if currentIndentation != indentationLength:
11147
dee6e106b4d3 Modified the code style checker such, that the issue category and issue number are separated by a '-' to make up the issue code (e.g E-901).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11145
diff changeset
1740 self.__error(docstringContext.start() + lineno, 0, "D-273", tag)

eric ide

mercurial