Sun, 22 Sep 2013 19:47:04 +0200
Started enhancing the docstring checker to include the eric docstring style.
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 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
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 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a checker for PEP-257 documentation string conventions. |
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 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | try: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | # Python 2 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from StringIO import StringIO # __IGNORE_EXCEPTION__ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | except ImportError: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | # Python 3 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from io import StringIO # __IGNORE_WARNING__ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | import tokenize |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
22 | import ast |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | from PyQt4.QtCore import QT_TRANSLATE_NOOP, QCoreApplication |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | class Pep257Context(object): |
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 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | 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
|
32 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | Constructor |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @param source source code of the context (list of string or string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @param startLine line number the context starts in the source (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @param contextType type of the context object (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | if isinstance(source, str): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.__source = source.splitlines(True) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | self.__source = source[:] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.__start = startLine |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__indent = "" |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.__type = contextType |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | # 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
|
48 | if self.__source: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.__indent = self.__source[0].replace( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__source[0].lstrip(), "") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__source[0] = self.__source[0].lstrip() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | def source(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | Public method to get the source. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | @return source (list of string) |
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 | return self.__source |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | def ssource(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | Public method to get the joined source lines. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | @return source (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | return "".join(self.__source) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | def start(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | Public method to get the start line number. |
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 start line number (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | return self.__start |
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 | def end(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | Public method to get the end line number. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | @return end line number (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | return self.__start + len(self.__source) - 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | def indent(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | Public method to get the indentation of the first line. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | @return indentation string (string) |
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.__indent |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | def contextType(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 context type. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | @return context type (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | return self.__type |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | class Pep257Checker(object): |
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 | Class implementing a checker for PEP-257 documentation string conventions. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | Codes = [ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | "D101", "D102", "D103", "D104", "D105", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | "D111", "D112", "D113", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | "D121", "D122", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | "D131", "D132", "D133", "D134", |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
111 | "D141", "D142", "D143", "D144", "D145", |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
112 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
113 | "D203", "D205", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
114 | "D221", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
115 | "D231", "D234", "D235", "D236", "D237", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
116 | "D242", "D243", "D244", "D245", |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | ] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | Messages = { |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | "D101": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | "Pep257Checker", "module is missing a docstring"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | "D102": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | "Pep257Checker", "public function/method is missing a docstring"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | "D103": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | "Pep257Checker", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | "private function/method may be missing a docstring"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | "D104": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | "Pep257Checker", "public class is missing a docstring"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | "D105": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | "Pep257Checker", "private class may be missing a docstring"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | "D111": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | "Pep257Checker", 'docstring not surrounded by """'), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | "D112": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | "Pep257Checker", 'docstring containing \\ not surrounded by r"""'), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | "D113": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | "Pep257Checker", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | 'docstring containing unicode character not surrounded by u"""'), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | "D121": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | "Pep257Checker", "one-liner docstring on multiple lines"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | "D122": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | "Pep257Checker", "docstring has wrong indentation"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | "D131": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | "Pep257Checker", "docstring summary does not end with a period"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | "D132": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | "Pep257Checker", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | "docstring summary is not in imperative mood" |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | " (Does instead of Do)"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | "D133": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | "Pep257Checker", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | "docstring summary looks like a function's/method's signature"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | "D134": QT_TRANSLATE_NOOP( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | "Pep257Checker", |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | "docstring does not mention the return value type"), |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | "D141": QT_TRANSLATE_NOOP( |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
155 | "Pep257Checker", |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
156 | "function/method docstring is separated by a blank line"), |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
157 | "D142": QT_TRANSLATE_NOOP( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
158 | "Pep257Checker", |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
159 | "class docstring is not preceded by a blank line"), |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
160 | "D143": QT_TRANSLATE_NOOP( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
161 | "Pep257Checker", |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
162 | "class docstring is not followed by a blank line"), |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
163 | "D144": QT_TRANSLATE_NOOP( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
164 | "Pep257Checker", |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
165 | "docstring summary is not followed by a blank line"), |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
166 | "D145": QT_TRANSLATE_NOOP( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
167 | "Pep257Checker", |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
168 | "last paragraph of docstring is not followed by a blank line"), |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
169 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
170 | "D203": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
171 | "Pep257Checker", "private function/method is missing a docstring"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
172 | "D205": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
173 | "Pep257Checker", "private class is missing a docstring"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
174 | "D221": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
175 | "Pep257Checker", "one-liner docstring not on three lines"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
176 | "D231": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
177 | "Pep257Checker", "docstring summary does not end with a period"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
178 | "D234": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
179 | "Pep257Checker", "docstring does not contain a @return line"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
180 | "D235": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
181 | "Pep257Checker", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
182 | "docstring does not contain enough @param/@keyparam lines"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
183 | "D236": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
184 | "Pep257Checker", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
185 | "docstring contains too many @param/@keyparam lines"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
186 | "D237": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
187 | "Pep257Checker", "order of @param/@keyparam lines does" |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
188 | " not match the function/method signature"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
189 | "D242": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
190 | "Pep257Checker", "class docstring is preceded by a blank line"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
191 | "D243": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
192 | "Pep257Checker", "class docstring is followed by a blank line"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
193 | "D244": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
194 | "Pep257Checker", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
195 | "docstring summary is not followed by a blank line"), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
196 | "D245": QT_TRANSLATE_NOOP( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
197 | "Pep257Checker", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
198 | "last paragraph of docstring is followed by a blank line"), |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | } |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
201 | def __init__(self, source, filename, select, ignore, expected, repeat, |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
202 | maxLineLength=79, docType="pep257"): |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | """ |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
204 | Constructor |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | @param source source code to be checked (list of string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | @param filename name of the source file (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | @param select list of selected codes (list of string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | @param ignore list of codes to be ignored (list of string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | @param expected list of expected codes (list of string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | @param repeat flag indicating to report each occurrence of a code |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | (boolean) |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
213 | @keyparam maxLineLength allowed line length (integer) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
214 | @keyparam docType type of the documentation strings |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
215 | (string, one of 'eric' or 'pep257') |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | """ |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
217 | assert docType in ("eric", "pep257") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
218 | |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | self.__select = tuple(select) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | self.__ignore = tuple(ignore) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | self.__expected = expected[:] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | self.__repeat = repeat |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
223 | 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
|
224 | self.__docType = docType |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | self.__filename = filename |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | self.__source = source[:] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | self.__isScript = self.__source[0].startswith('#!') |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | # statistics counters |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.counters = {} |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | # collection of detected errors |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | self.errors = [] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | self.__lineNumber = 0 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | # caches |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.__functionsCache = None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | self.__classesCache = None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | self.__methodsCache = None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | self.__keywords = [ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | 'moduleDocstring', 'functionDocstring', |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | 'classDocstring', 'methodDocstring', |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | 'defDocstring', 'docstring' |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | ] |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
247 | 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
|
248 | checkersWithCodes = { |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
249 | "moduleDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
250 | (self.__checkModulesDocstrings, ("D101",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
251 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
252 | "functionDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
253 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
254 | "classDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
255 | (self.__checkClassDocstring, ("D104", "D105")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
256 | (self.__checkBlankBeforeAndAfterClass, ("D142", "D143")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
257 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
258 | "methodDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
259 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
260 | "defDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
261 | (self.__checkFunctionDocstring, ("D102", "D103")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
262 | (self.__checkImperativeMood, ("D132",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
263 | (self.__checkNoSignature, ("D133",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
264 | (self.__checkReturnType, ("D134",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
265 | (self.__checkNoBlankLineBefore, ("D141",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
266 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
267 | "docstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
268 | (self.__checkTripleDoubleQuotes, ("D111",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
269 | (self.__checkBackslashes, ("D112",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
270 | (self.__checkUnicode, ("D113",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
271 | (self.__checkOneLiner, ("D121",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
272 | (self.__checkIndent, ("D122",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
273 | (self.__checkEndsWithPeriod, ("D131",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
274 | (self.__checkBlankAfterSummary, ("D144",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
275 | (self.__checkBlankAfterLastParagraph, ("D145",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
276 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
277 | } |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
278 | elif self.__docType == "eric": |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
279 | checkersWithCodes = { |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
280 | "moduleDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
281 | (self.__checkModulesDocstrings, ("D101",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
282 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
283 | "functionDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
284 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
285 | "classDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
286 | (self.__checkClassDocstring, ("D104", "D205")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
287 | (self.__checkEricNoBlankBeforeAndAfterClass, |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
288 | ("D242", "D243")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
289 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
290 | "methodDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
291 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
292 | "defDocstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
293 | (self.__checkFunctionDocstring, ("D102", "D203")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
294 | (self.__checkImperativeMood, ("D132",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
295 | (self.__checkNoSignature, ("D133",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
296 | (self.__checkEricReturn, ("D234",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
297 | (self.__checkEricFunctionArguments, |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
298 | ("D235", "D236", "D237")), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
299 | (self.__checkNoBlankLineBefore, ("D141",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
300 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
301 | "docstring": [ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
302 | (self.__checkTripleDoubleQuotes, ("D111",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
303 | (self.__checkBackslashes, ("D112",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
304 | (self.__checkUnicode, ("D113",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
305 | (self.__checkEricOneLiner, ("D221",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
306 | (self.__checkIndent, ("D122",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
307 | (self.__checkEricEndsWithPeriod, ("D231",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
308 | (self.__checkEricBlankAfterSummary, ("D244",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
309 | (self.__checkEricNBlankAfterLastParagraph, ("D245",)), |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
310 | ], |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
311 | } |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
312 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
313 | 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
|
314 | 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
|
315 | for checker, codes in checkers: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | if any(not (code and self.__ignoreCode(code)) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | for code in codes): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | 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
|
319 | self.__checkers[key] = [] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | self.__checkers[key].append(checker) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | def __ignoreCode(self, code): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | 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
|
325 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | @param code message code to check for (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | @return flag indicating to ignore the given code (boolean) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | return (code.startswith(self.__ignore) and |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | not code.startswith(self.__select)) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | 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
|
333 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | Private method to record an issue. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | @param lineNumber line number of the issue (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | @param offset position within line of the issue (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | @param code message code (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | @param args arguments for the message (list) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | if self.__ignoreCode(code): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | return |
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 | if code in self.counters: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | self.counters[code] += 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | self.counters[code] = 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | # 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
|
350 | if code in self.__expected: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | 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
|
354 | if code in Pep257Checker.Codes: |
2917
fe82710d02cb
Did the Python2 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2916
diff
changeset
|
355 | text = self.getMessage(code, *args) |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
356 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
357 | text = code + " " + QCoreApplication.translate("Pep257Checker", |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
358 | "no message for this code defined") |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | # record the issue with one based line number |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | self.errors.append((self.__filename, lineNumber + 1, offset, text)) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | |
2917
fe82710d02cb
Did the Python2 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2916
diff
changeset
|
362 | def getMessage(self, code, *args): |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | """ |
2917
fe82710d02cb
Did the Python2 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2916
diff
changeset
|
364 | Public method to get a translated and formatted message for a |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | given code. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | @param code message code (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | @param args arguments for a formatted message (list) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
369 | @return translated and formatted message (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
370 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | if code in Pep257Checker.Messages: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | return code + " " + QCoreApplication.translate( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | "Pep257Checker", Pep257Checker.Messages[code]).format(*args) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | return code + " " + QCoreApplication.translate( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | "Pep257Checker", "no message for this code defined") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
377 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
378 | def __resetReadline(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
380 | 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
|
381 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
382 | self.__lineNumber = 0 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
383 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
384 | def __readline(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
385 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
386 | Private method to get the next line from the source. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
387 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
388 | @return next line of source (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
389 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
390 | self.__lineNumber += 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
391 | if self.__lineNumber > len(self.__source): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | return '' |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | return self.__source[self.__lineNumber - 1] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | def run(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | Public method to check the given source for violations of doc string |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
398 | conventions according to PEP-257. |
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 | if not self.__source or not self.__filename: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | # 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
|
402 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | for keyword in self.__keywords: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
405 | if keyword in self.__checkers: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | 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
|
407 | 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
|
408 | docstring = self.__parseDocstring(context, keyword) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | check(docstring, context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | def __getSummaryLine(self, docstringContext): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | Private method to extract the summary line. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | @return summary line (string) and the line it was found on (integer) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | lines = docstringContext.source() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | line = (lines[0] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | .replace('r"""', "", 1) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | .replace('u"""', "", 1) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | .replace('"""', "") |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
424 | .replace("r'''", "", 1) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
425 | .replace("u'''", "", 1) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
426 | .replace("'''", "") |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | .strip()) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | 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
|
430 | 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
|
431 | return lines[1].strip().replace('"""', "").replace("'''", ""), 1 |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
432 | |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
433 | 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
|
434 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
435 | Private method to extract the summary lines. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
436 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
437 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
438 | @return summary lines (list of string) and the line it was found on |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
439 | (integer) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
440 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
441 | summaries = [] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
442 | lines = docstringContext.source() |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
443 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
444 | line0 = (lines[0] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
445 | .replace('r"""', "", 1) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
446 | .replace('u"""', "", 1) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
447 | .replace('"""', "") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
448 | .replace("r'''", "", 1) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
449 | .replace("u'''", "", 1) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
450 | .replace("'''", "") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
451 | .strip()) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
452 | if len(lines) > 1: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
453 | line1 = lines[1].strip().replace('"""', "").replace("'''", "") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
454 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
455 | line1 = "" |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
456 | if len(lines) > 2: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
457 | line2 = lines[2].strip().replace('"""', "").replace("'''", "") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
458 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
459 | line2 = "" |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
460 | if line0: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
461 | lineno = 0 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
462 | 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
|
463 | 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
|
464 | # 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
|
465 | 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
|
466 | elif line1: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
467 | lineno = 1 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
468 | 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
|
469 | 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
|
470 | # 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
|
471 | 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
|
472 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
473 | lineno = 2 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
474 | 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
|
475 | return summaries, lineno |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
476 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
477 | def __getArgNames(self, node): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
478 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
479 | Private method to get the argument names of a function node. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
480 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
481 | @param node AST node to extract arguments names from |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
482 | @return list of argument names (list of string) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
483 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
484 | arguments = [] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
485 | arguments.extend([arg.arg for arg in node.args.args]) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
486 | if node.args.vararg is not None: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
487 | arguments.append(node.args.vararg) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
488 | arguments.extend([arg.arg for arg in node.args.kwonlyargs]) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
489 | if node.args.kwarg is not None: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
490 | arguments.append(node.args.kwarg) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
491 | return arguments |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
492 | |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
493 | ################################################################## |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
494 | ## Parsing functionality below |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
495 | ################################################################## |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
496 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | def __parseModuleDocstring(self, source): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | Private method to extract a docstring given a module source. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | @param source source to parse (list of string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | @return context of extracted docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | for kind, value, (line, char), _, _ in tokenize.generate_tokens( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | StringIO("".join(source)).readline): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
506 | 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
|
507 | continue |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | elif kind == tokenize.STRING: # first STRING should be docstring |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | return Pep257Context(value, line - 1, "docstring") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | return None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | def __parseDocstring(self, context, what=''): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
515 | Private method to extract a docstring given `def` or `class` source. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
516 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
517 | @param context context data to get the docstring from (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
518 | @return context of extracted docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | moduleDocstring = self.__parseModuleDocstring(context.source()) |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
521 | 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
|
522 | return moduleDocstring |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | if moduleDocstring: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | return moduleDocstring |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | tokenGenerator = tokenize.generate_tokens( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | StringIO(context.ssource()).readline) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | try: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | kind = None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | while kind != tokenize.INDENT: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | kind, _, _, _, _ = next(tokenGenerator) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | 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
|
533 | if kind == tokenize.STRING: # STRING after INDENT is a docstring |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | return Pep257Context( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
535 | value, context.start() + line - 1, "docstring") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
536 | except StopIteration: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
537 | pass |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
538 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
539 | return None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | def __parseTopLevel(self, keyword): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | Private method to extract top-level functions or classes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | @param keyword keyword signaling what to extract (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | @return extracted function or class contexts (list of Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | self.__resetReadline() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | 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
|
550 | 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
|
551 | contexts = [] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | try: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | while True: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
554 | start, end = None, None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | while not (kind == tokenize.NAME and |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | value == keyword and |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | char == 0): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | 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
|
559 | start = line - 1, char |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | while not (kind == tokenize.DEDENT and |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | value == '' and |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | char == 0): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | 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
|
564 | end = line - 1, char |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | contexts.append(Pep257Context( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | self.__source[start[0]:end[0]], start[0], keyword)) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | except StopIteration: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | return contexts |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | def __parseFunctions(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | Private method to extract top-level functions. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
574 | @return extracted function contexts (list of Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
575 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | if not self.__functionsCache: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | self.__functionsCache = self.__parseTopLevel('def') |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | return self.__functionsCache |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
579 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
580 | def __parseClasses(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
581 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
582 | Private method to extract top-level classes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
583 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
584 | @return extracted class contexts (list of Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
585 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
586 | if not self.__classesCache: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
587 | self.__classesCache = self.__parseTopLevel('class') |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | return self.__classesCache |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | def __skipIndentedBlock(self, tokenGenerator): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
592 | Private method to skip over an indented block of source code. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
594 | @param tokenGenerator token generator |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
595 | @return last token of the indented block |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
597 | 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
|
598 | while kind != tokenize.INDENT: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
599 | 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
|
600 | indent = 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
601 | 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
|
602 | if kind == tokenize.INDENT: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
603 | indent += 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
604 | elif kind == tokenize.DEDENT: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
605 | indent -= 1 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
606 | if indent == 0: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
607 | return kind, value, start, end, raw |
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 | def __parseMethods(self): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
610 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
611 | Private method to extract methods of all classes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | @return extracted method contexts (list of Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | if not self.__methodsCache: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
616 | contexts = [] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
617 | for classContext in self.__parseClasses(): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | tokenGenerator = tokenize.generate_tokens( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
619 | StringIO(classContext.ssource()).readline) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
620 | 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
|
621 | try: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
622 | while True: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
623 | start, end = None, None |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
624 | while not (kind == tokenize.NAME and value == 'def'): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
625 | kind, value, (line, char), _, _ = \ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
626 | next(tokenGenerator) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
627 | start = line - 1, char |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
628 | kind, value, (line, char), _, _ = \ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | self.__skipIndentedBlock(tokenGenerator) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | end = line - 1, char |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
631 | startLine = classContext.start() + start[0] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | endLine = classContext.start() + end[0] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | contexts.append( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
634 | Pep257Context(self.__source[startLine:endLine], |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
635 | startLine, "def")) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
636 | except StopIteration: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
637 | pass |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
638 | self.__methodsCache = contexts |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | return self.__methodsCache |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | def __parseContexts(self, kind): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | Private method to extract a context from the source. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | @param kind kind of context to extract (string) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | @return requested contexts (list of Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
648 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | if kind == 'moduleDocstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
650 | return [Pep257Context(self.__source, 0, "module")] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | if kind == 'functionDocstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | return self.__parseFunctions() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | if kind == 'classDocstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | return self.__parseClasses() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | if kind == 'methodDocstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
656 | return self.__parseMethods() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | if kind == 'defDocstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
658 | return self.__parseFunctions() + self.__parseMethods() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | if kind == 'docstring': |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | return ([Pep257Context(self.__source, 0, "module")] + |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | self.__parseFunctions() + |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
662 | self.__parseClasses() + |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
663 | self.__parseMethods()) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
664 | return [] # fall back |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | ################################################################## |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
667 | ## 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
|
668 | ################################################################## |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
669 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
670 | def __checkModulesDocstrings(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
671 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
672 | Private method to check, if the module has a docstring. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
673 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
674 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
675 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
676 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
677 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
678 | self.__error(context.start(), 0, "D101") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
679 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
680 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
681 | docstring = docstringContext.ssource() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
682 | if (not docstring or not docstring.strip() or |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
683 | not docstring.strip('\'"')): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
684 | self.__error(context.start(), 0, "D101") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
685 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
686 | def __checkFunctionDocstring(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
687 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
688 | 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
|
689 | have a docstring. |
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 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
692 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
693 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
694 | if self.__isScript: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
695 | # assume nothing is exported |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
696 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
697 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
698 | 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
|
699 | 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
|
700 | if self.__docType == "eric": |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
701 | code = "D203" |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
702 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
703 | code = "D103" |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
704 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
705 | code = "D102" |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
706 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
707 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
708 | 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
|
709 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
710 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
711 | docstring = docstringContext.ssource() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
712 | if (not docstring or not docstring.strip() or |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
713 | not docstring.strip('\'"')): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
714 | 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
|
715 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
716 | def __checkClassDocstring(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
717 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
718 | 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
|
719 | have a docstring. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
720 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
721 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
722 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
723 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
724 | if self.__isScript: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
725 | # assume nothing is exported |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
726 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
727 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
728 | className = 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
|
729 | 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
|
730 | if self.__docType == "eric": |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
731 | code = "D205" |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
732 | else: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
733 | code = "D105" |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
734 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
735 | code = "D104" |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
736 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
737 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
738 | 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
|
739 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
740 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
741 | docstring = docstringContext.ssource() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
742 | if (not docstring or not docstring.strip() or |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
743 | not docstring.strip('\'"')): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
744 | 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
|
745 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
746 | def __checkTripleDoubleQuotes(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
747 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
748 | 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
|
749 | by triple double quotes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
750 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
751 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
752 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
753 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
754 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
755 | return |
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 | docstring = docstringContext.ssource().strip() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
758 | if not docstring.startswith(('"""', 'r"""', 'u"""')): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
759 | self.__error(docstringContext.start(), 0, "D111") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
760 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
761 | def __checkBackslashes(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
762 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
763 | 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
|
764 | backslashes are surrounded by raw triple double quotes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
765 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
766 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
767 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
768 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
769 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
770 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
771 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
772 | docstring = docstringContext.ssource().strip() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
773 | if "\\" in docstring and not docstring.startswith('r"""'): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
774 | self.__error(docstringContext.start(), 0, "D112") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
775 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
776 | def __checkUnicode(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
777 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
778 | Private method to check, that all docstrings containing unicode |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
779 | characters are surrounded by unicode triple double quotes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
780 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
781 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
782 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
783 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
784 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
785 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
786 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
787 | docstring = docstringContext.ssource().strip() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
788 | if not docstring.startswith('u"""') and \ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
789 | any(ord(char) > 127 for char in docstring): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
790 | self.__error(docstringContext.start(), 0, "D113") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
791 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
792 | def __checkOneLiner(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
793 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
794 | 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
|
795 | one line with quotes. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
796 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
797 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
798 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
799 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
800 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
801 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
802 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
803 | lines = docstringContext.source() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
804 | if len(lines) > 1: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
805 | nonEmptyLines = [l for l in lines if l.strip().strip('\'"')] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
806 | if len(nonEmptyLines) == 1: |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
807 | modLen = len(context.indent() + '"""' + |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
808 | nonEmptyLines[0].strip() + '"""') |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
809 | if context.contextType() != "module": |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
810 | 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
|
811 | 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
|
812 | # 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
|
813 | modLen += 1 |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
814 | if modLen <= self.__maxLineLength: |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
815 | self.__error(docstringContext.start(), 0, "D121") |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
816 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
817 | def __checkIndent(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
818 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
819 | Private method to check, that docstrings are properly indented. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
820 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
821 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
822 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
823 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
824 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
825 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
826 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
827 | lines = docstringContext.source() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
828 | if len(lines) == 1: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
829 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
830 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
831 | nonEmptyLines = [l.rstrip() for l in lines[1:] if l.strip()] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
832 | if not nonEmptyLines: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
833 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
834 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
835 | indent = min([len(l) - len(l.strip()) for l in nonEmptyLines]) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
836 | if context.contextType() == "module": |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
837 | expectedIndent = 0 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
838 | else: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
839 | expectedIndent = len(context.indent()) + 4 |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
840 | if indent != expectedIndent: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
841 | self.__error(docstringContext.start(), 0, "D122") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
842 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
843 | def __checkEndsWithPeriod(self, docstringContext, context): |
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 | Private method to check, that docstring summaries end with a period. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
846 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
847 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
848 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
849 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
850 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
851 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
852 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
853 | summary, lineNumber = self.__getSummaryLine(docstringContext) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
854 | if not summary.endswith("."): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
855 | self.__error(docstringContext.start() + lineNumber, 0, "D131") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
856 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
857 | def __checkImperativeMood(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
858 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
859 | 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
|
860 | imperative mood. |
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 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
863 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
864 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
865 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
866 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
867 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
868 | summary, lineNumber = self.__getSummaryLine(docstringContext) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
869 | firstWord = summary.strip().split()[0] |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
870 | if firstWord.endswith("s") and not firstWord.endswith("ss"): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
871 | self.__error(docstringContext.start() + lineNumber, 0, "D132") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
872 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
873 | def __checkNoSignature(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
874 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
875 | 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
|
876 | the function's signature. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
877 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
878 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
879 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
880 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
881 | if docstringContext is None: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
882 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
883 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
884 | 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
|
885 | summary, lineNumber = self.__getSummaryLine(docstringContext) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
886 | if functionName + "(" in summary.replace(" ", ""): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
887 | self.__error(docstringContext.start() + lineNumber, 0, "D133") |
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 | def __checkReturnType(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
890 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
891 | Private method to check, that docstrings mention the return value type. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
892 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
893 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
894 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
895 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
896 | if docstringContext is None or self.__isScript: |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
897 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
898 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
899 | 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
|
900 | tokens = list( |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
901 | tokenize.generate_tokens(StringIO(context.ssource()).readline)) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
902 | return_ = [tokens[i + 1][0] for i, token in enumerate(tokens) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
903 | if token[1] == "return"] |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
904 | if (set(return_) - |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
905 | set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) != |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
906 | set([])): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
907 | self.__error(docstringContext.end(), 0, "D134") |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
908 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
909 | def __checkNoBlankLineBefore(self, docstringContext, context): |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
910 | """ |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
911 | 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
|
912 | preceded by a blank line. |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
913 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
914 | @param docstringContext docstring context (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
915 | @param context context of the docstring (Pep257Context) |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
916 | """ |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
917 | if docstringContext is None: |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
918 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
919 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
920 | contextLines = context.source() |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
921 | cti = 0 |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
922 | while cti < len(contextLines) and \ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
923 | not contextLines[cti].strip().startswith( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
924 | ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
925 | cti += 1 |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
926 | if cti == len(contextLines): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
927 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
928 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
929 | if not contextLines[cti - 1].strip(): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
930 | self.__error(docstringContext.start(), 0, "D141") |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
931 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
932 | 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
|
933 | """ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
934 | 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
|
935 | blank line around them. |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
936 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
937 | @param docstringContext docstring context (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
938 | @param context context of the docstring (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
939 | """ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
940 | if docstringContext is None: |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
941 | return |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
942 | |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
943 | contextLines = context.source() |
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
944 | cti = 0 |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
945 | while cti < len(contextLines) and \ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
946 | not contextLines[cti].strip().startswith( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
947 | ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
948 | cti += 1 |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
949 | if cti == len(contextLines): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
950 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
951 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
952 | start = cti |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
953 | if contextLines[cti].strip() in ( |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
954 | '"""', 'r"""', 'u"""', "'''", "r'''", "u'''"): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
955 | # 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
|
956 | cti += 1 |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
957 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
958 | while cti < len(contextLines) and \ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
959 | not contextLines[cti].strip().endswith(('"""', "'''")): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
960 | cti += 1 |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
961 | end = cti |
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
|
962 | if cti == len(contextLines): |
01ac1f364b38
Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2917
diff
changeset
|
963 | return |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
964 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
965 | if contextLines[start - 1].strip(): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
966 | self.__error(docstringContext.start(), 0, "D142") |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
967 | if contextLines[end + 1].strip(): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
968 | self.__error(docstringContext.end(), 0, "D143") |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
969 | |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
970 | def __checkBlankAfterSummary(self, docstringContext, context): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
971 | """ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
972 | 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
|
973 | by a blank line. |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
974 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
975 | @param docstringContext docstring context (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
976 | @param context context of the docstring (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
977 | """ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
978 | if docstringContext is None: |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
979 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
980 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
981 | docstrings = docstringContext.source() |
2925
04896af1b0e1
Completed the PEP-257 fixes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2923
diff
changeset
|
982 | 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
|
983 | # correct/invalid one-liner |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
984 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
985 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
986 | summary, lineNumber = self.__getSummaryLine(docstringContext) |
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
|
987 | if len(docstrings) > 2: |
01ac1f364b38
Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2917
diff
changeset
|
988 | if docstrings[lineNumber + 1].strip(): |
01ac1f364b38
Started extending the PEP-8 fixer to correct PEP-257 issues as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2917
diff
changeset
|
989 | self.__error(docstringContext.start() + lineNumber, 0, "D144") |
2915
9da653363d07
Started implementing a checker for PEP-257 docstring conventions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
990 | |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
991 | def __checkBlankAfterLastParagraph(self, docstringContext, context): |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
992 | """ |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
993 | 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
|
994 | followed by a blank line. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
995 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
996 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
997 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
998 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
999 | 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
|
1000 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1001 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1002 | 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
|
1003 | 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
|
1004 | # 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
|
1005 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1006 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1007 | if docstrings[-2].strip(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1008 | self.__error(docstringContext.end(), 0, "D145") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1009 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1010 | ################################################################## |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1011 | ## 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
|
1012 | ################################################################## |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1013 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1014 | def __checkEricOneLiner(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
|
1015 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1016 | Private method to check, that one-liner docstrings are on |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1017 | three lines (quotes, docstring, quotes). |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1018 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1019 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1020 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1021 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1022 | 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
|
1023 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1024 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1025 | lines = docstringContext.source() |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1026 | if len(lines) != 3: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1027 | nonEmptyLines = [l for l in lines if l.strip().strip('\'"')] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1028 | if len(nonEmptyLines) == 1: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1029 | self.__error(docstringContext.start(), 0, "D221") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1030 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1031 | def __checkEricEndsWithPeriod(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
|
1032 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1033 | Private method to check, that docstring summaries end with a period. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1034 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1035 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1036 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1037 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1038 | 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
|
1039 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1040 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1041 | summaryLines, lineNumber = self.__getSummaryLines(docstringContext) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1042 | summary = " ".join([s.strip() for s in summaryLines if s]) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1043 | if not summary.endswith(".") and \ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1044 | not summary.split(None, 1)[0].lower() == "constructor": |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1045 | self.__error( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1046 | docstringContext.start() + lineNumber + len(summaryLines) - 1, |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1047 | 0, "D231") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1048 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1049 | 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
|
1050 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1051 | Private method to check, that docstrings contain an @return line. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1052 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1053 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1054 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1055 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1056 | if docstringContext is None or self.__isScript: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1057 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1058 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1059 | if "@return" not in docstringContext.ssource(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1060 | tokens = list( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1061 | tokenize.generate_tokens(StringIO(context.ssource()).readline)) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1062 | return_ = [tokens[i + 1][0] for i, token in enumerate(tokens) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1063 | if token[1] == "return"] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1064 | if (set(return_) - |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1065 | set([tokenize.COMMENT, tokenize.NL, tokenize.NEWLINE]) != |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1066 | set([])): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1067 | self.__error(docstringContext.end(), 0, "D234") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1068 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1069 | 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
|
1070 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1071 | Private method to check, that docstrings contain an @param line |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1072 | for each argument. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1073 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1074 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1075 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1076 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1077 | if docstringContext is None or self.__isScript: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1078 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1079 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1080 | try: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1081 | 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
|
1082 | 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
|
1083 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1084 | if (isinstance(tree, ast.Module) and len(tree.body) == 1 and |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1085 | isinstance(tree.body[0], ast.FunctionDef)): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1086 | functionDef = tree.body[0] |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1087 | argNames = self.__getArgNames(functionDef) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1088 | 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
|
1089 | 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
|
1090 | 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
|
1091 | argNames.remove("cls") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1092 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1093 | docstring = docstringContext.ssource() |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1094 | if (docstring.count("@param") + docstring.count("@keyparam") < |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1095 | len(argNames)): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1096 | self.__error(docstringContext.end(), 0, "D235") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1097 | elif (docstring.count("@param") + docstring.count("@keyparam") > |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1098 | len(argNames)): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1099 | self.__error(docstringContext.end(), 0, "D236") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1100 | # TODO: check order (args, vararg, kwonlyargs, kwarg |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1101 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1102 | def __checkEricBlankAfterSummary(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
|
1103 | """ |
2916
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1104 | 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
|
1105 | by a blank line. |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1106 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1107 | @param docstringContext docstring context (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1108 | @param context context of the docstring (Pep257Context) |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1109 | """ |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1110 | if docstringContext is None: |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1111 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1112 | |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1113 | 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
|
1114 | 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
|
1115 | # correct/invalid one-liner |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1116 | return |
a8628dfdfe04
Finished the Python3 variant of the PEP-257 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2915
diff
changeset
|
1117 | |
2928
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1118 | summaryLines, lineNumber = self.__getSummaryLines(docstringContext) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1119 | if len(docstrings) > lineNumber + len(summaryLines) - 1: |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1120 | if docstrings[lineNumber + len(summaryLines)].strip(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1121 | self.__error(docstringContext.start() + lineNumber, 0, "D244") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1122 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1123 | def __checkEricNoBlankBeforeAndAfterClass(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
|
1124 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1125 | Private method to check, that class docstrings have no blank line |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1126 | around them. |
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 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1129 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1130 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1131 | 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
|
1132 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1133 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1134 | contextLines = context.source() |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1135 | cti = 0 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1136 | while cti < len(contextLines) and \ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1137 | not contextLines[cti].strip().startswith( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1138 | ('"""', 'r"""', 'u"""', "'''", "r'''", "u'''")): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1139 | cti += 1 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1140 | 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
|
1141 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1142 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1143 | start = cti |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1144 | if contextLines[cti].strip() in ( |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1145 | '"""', 'r"""', 'u"""', "'''", "r'''", "u'''"): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1146 | # 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
|
1147 | cti += 1 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1148 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1149 | while cti < len(contextLines) and \ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1150 | not contextLines[cti].strip().endswith(('"""', "'''")): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1151 | cti += 1 |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1152 | end = cti |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1153 | 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
|
1154 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1155 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1156 | if not contextLines[start - 1].strip(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1157 | self.__error(docstringContext.start(), 0, "D242") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1158 | if not contextLines[end + 1].strip(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1159 | self.__error(docstringContext.end(), 0, "D243") |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1160 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1161 | def __checkEricNBlankAfterLastParagraph(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
|
1162 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1163 | 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
|
1164 | not followed by a blank line. |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1165 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1166 | @param docstringContext docstring context (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1167 | @param context context of the docstring (Pep257Context) |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1168 | """ |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1169 | 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
|
1170 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1171 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1172 | 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
|
1173 | 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
|
1174 | # 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
|
1175 | return |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1176 | |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1177 | if not docstrings[-2].strip(): |
4f74d3f595ce
Started enhancing the docstring checker to include the eric docstring style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2925
diff
changeset
|
1178 | self.__error(docstringContext.end(), 0, "D245") |