diff --git a/src/flake8/options/manager.py b/src/flake8/options/manager.py index fe3b13b..c6a3fcb 100644 --- a/src/flake8/options/manager.py +++ b/src/flake8/options/manager.py @@ -236,8 +236,10 @@ class OptionManager(object): def update_version_string(self): """Update the flake8 version string.""" - self.parser.version = (self.version + ' (' + - self.generate_versions() + ')') + self.parser.version = ( + self.version + ' (' + self.generate_versions() + ') ' + + utils.get_python_version() + ) def generate_epilog(self): """Create an epilog with the version and name of each of plugin.""" diff --git a/src/flake8/utils.py b/src/flake8/utils.py index fbd15b9..68ed530 100644 --- a/src/flake8/utils.py +++ b/src/flake8/utils.py @@ -4,6 +4,7 @@ import fnmatch as _fnmatch import inspect import io import os +import platform import re import sys @@ -290,3 +291,19 @@ def parameters_for(plugin): parameters.pop('self', None) return parameters + + +def get_python_version(): + """Find and format the python implementation and version. + + :returns: + Implementation name, version, and platform as a string. + :rtype: + str + """ + # The implementation isn't all that important. + try: + impl = platform.python_implementation() + " " + except AttributeError: # Python 2.5 + impl = '' + return '%s%s on %s' % (impl, platform.python_version(), platform.system()) diff --git a/tests/unit/test_option_manager.py b/tests/unit/test_option_manager.py index 53e8bf1..6f6cb17 100644 --- a/tests/unit/test_option_manager.py +++ b/tests/unit/test_option_manager.py @@ -4,6 +4,7 @@ import os import pytest +from flake8 import utils from flake8.options import manager TEST_VERSION = '3.0.0b1' @@ -162,7 +163,8 @@ def test_update_version_string(optmanager): assert optmanager.version == TEST_VERSION assert (optmanager.parser.version == TEST_VERSION + ' (' - 'Testing 100: 0.0.0, Testing 101: 0.0.0, Testing 300: 0.0.0)') + 'Testing 100: 0.0.0, Testing 101: 0.0.0, Testing 300: 0.0.0) ' + + utils.get_python_version()) def test_generate_epilog(optmanager):