PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Monday, August 15, 2022

[FIXED] How to get report + score from Pylint when run Python code?

 August 15, 2022     output, pylint, python, report     No comments   

Issue

I can't seem to get any return value when running pylint from Python code directly. Running it from the command line generates a nice report, with a summarized score at the bottom.

I've tried putting the return value of "Run" into a variable, and getting it's "reports" field - but it looks like some default template.

this is what I have:

from io import StringIO
from pylint.reporters import text
from pylint.lint import Run


def main():
    print("I will verify you build!")
    pylint_opts = ['--rcfile=pylintrc.txt', '--reports=n', 'utilities']
    pylint_output = StringIO()
    reporter = text.TextReporter(pylint_output)
    Run(pylint_opts, reporter=reporter, do_exit=False)
    print(pylint_output.read())


if __name__ == '__main__':
    main()

I'd expect some report here, but all I get is: " I will verify you build!

Process finished with exit code 0 "


Solution

I investigated the pylint issue. We ended up keeping current behavior because your code works with a slight adjustment:

def main():
    print("I will verify you build!")
    pylint_opts = ['--rcfile=pylintrc.txt', '--reports=n', 'utilities']
    pylint_output = StringIO()
    reporter = text.TextReporter(pylint_output)
    Run(pylint_opts, reporter=reporter, do_exit=False)
    print(pylint_output.getvalue())

StringIO is a stream that doesn't hide the stream position. Pylint writes to pylint_output correctly, but leaves the cursor at the end of the stream. pylint_output.read() only reads starting at the cursor.

You can call pylint_output.seek(0) to reset the stream position before calling pylint_output.read(). Alternatively, as demonstrated in the code block above, StringIO offers a method getvalue which will return the entire contents of the buffer regardless of cursor position.

The Pylint documentation will be updated with this example, so thanks for raising it.



Answered By - areveny
Answer Checked By - Clifford M. (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing