summaryrefslogtreecommitdiff
path: root/doc/user_guide/output.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user_guide/output.rst')
-rw-r--r--doc/user_guide/output.rst120
1 files changed, 120 insertions, 0 deletions
diff --git a/doc/user_guide/output.rst b/doc/user_guide/output.rst
new file mode 100644
index 000000000..ea31d3cc3
--- /dev/null
+++ b/doc/user_guide/output.rst
@@ -0,0 +1,120 @@
+
+Pylint output
+-------------
+
+The default format for the output is raw text. You can change this by passing
+pylint the ``--output-format=<value>`` option. Possible values are: json,
+parseable, colorized and msvs (visual studio).
+
+Moreover you can customize the exact way information are displayed using the
+`--msg-template=<format string>` option. The `format string` uses the
+`Python new format syntax`_ and the following fields are available :
+
+path
+ relative path to the file
+abspath
+ absolute path to the file
+line
+ line number
+column
+ column number
+module
+ module name
+obj
+ object within the module (if any)
+msg
+ text of the message
+msg_id
+ the message code (eg. I0011)
+symbol
+ symbolic name of the message (eg. locally-disabled)
+C
+ one letter indication of the message category
+category
+ fullname of the message category
+
+For example, the former (pre 1.0) default format can be obtained with::
+
+ pylint --msg-template='{msg_id}:{line:3d},{column}: {obj}: {msg}'
+
+A few other examples:
+
+* the new default format::
+
+ {C}:{line:3d},{column:2d}: {msg} ({symbol})
+
+* Visual Studio compatible format (former 'msvs' output format)::
+
+ {path}({line}): [{msg_id}{obj}] {msg}
+
+* Parseable (Emacs and all, former 'parseable' output format) format::
+
+ {path}:{line}: [{msg_id}({symbol}), {obj}] {msg}
+
+
+.. _Python new format syntax: http://docs.python.org/2/library/string.html#formatstrings
+
+Source code analysis section
+''''''''''''''''''''''''''''
+
+For each python module, Pylint will first display a few '*' characters followed
+by the name of the module. Then, a number of messages with the following format:
+::
+
+ MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE
+
+You can get another output format, useful since it's recognized by
+most editors or other development tools using the ``--output-format=parseable``
+option.
+
+The message type can be:
+
+ * [R]efactor for a "good practice" metric violation
+ * [C]onvention for coding standard violation
+ * [W]arning for stylistic problems, or minor programming issues
+ * [E]rror for important programming issues (i.e. most probably bug)
+ * [F]atal for errors which prevented further processing
+
+Sometimes the line of code which caused the error is displayed with
+a caret pointing to the error. This may be generalized in future
+versions of Pylint.
+
+Example (extracted from a run of Pylint on itself...):
+
+::
+
+ ************* Module pylint.checkers.format
+ W: 50: Too long line (86/80)
+ W:108: Operator not followed by a space
+ print >>sys.stderr, 'Unable to match %r', line
+ ^
+ W:141: Too long line (81/80)
+ W: 74:searchall: Unreachable code
+ W:171:FormatChecker.process_tokens: Redefining built-in (type)
+ W:150:FormatChecker.process_tokens: Too many local variables (20/15)
+ W:150:FormatChecker.process_tokens: Too many branches (13/12)
+
+
+Reports section
+'''''''''''''''
+
+Following the analysis message, Pylint can display a set of reports,
+each one focusing on a particular aspect of the project, such as number
+of messages by categories, modules dependencies. These features can
+be enabled through the ``--report=y`` option, or its shorthand
+version ``-rn``.
+
+For instance, the metrics report displays summaries gathered from the
+current run.
+
+ * the number of processed modules
+ * for each module, the percentage of errors and warnings
+ * the total number of errors and warnings
+ * percentage of classes, functions and modules with docstrings, and
+ a comparison from the previous run
+ * percentage of classes, functions and modules with correct name
+ (according to the coding standard), and a comparison from the
+ previous run
+ * a list of external dependencies found in the code, and where they appear
+
+Also, a global evaluation for the code is computed.