From 7dff41c6b7a1fb8c53d796ca73d6cfb3a27a71fa Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 13 Jan 2014 21:40:16 +0100 Subject: [PATCH] added a utils.version_info function to make it easy to check Jedi's version. #350 --- jedi/utils.py | 13 +++++++++++++ test/test_utils.py | 4 ++++ 2 files changed, 17 insertions(+) diff --git a/jedi/utils.py b/jedi/utils.py index 3b946eee..9b04bde8 100644 --- a/jedi/utils.py +++ b/jedi/utils.py @@ -4,6 +4,8 @@ Utilities for end-users. from __future__ import absolute_import import __main__ +from collections import namedtuple +import re from jedi import Interpreter @@ -95,3 +97,14 @@ def setup_readline(namespace_module=__main__): readline.parse_and_bind("set completion-prefix-display-length 2") # No delimiters, Jedi handles that. readline.set_completer_delims('') + + +def version_info(): + """ + Returns a namedtuple of Jedi's version, similar to Python's + ``sys.version_info``. + """ + Version = namedtuple('Version', 'major, minor, micro, releaselevel, serial') + from jedi import __version__ + tupl = re.findall('[a-z]+|\d+', __version__) + return Version(*[x if i == 3 else int(x) for i, x in enumerate(tupl)]) diff --git a/test/test_utils.py b/test/test_utils.py index 14e9d4f6..393d2d83 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -98,3 +98,7 @@ class TestSetupReadline(TestCase): assert self.completions('colorama') assert self.completions('colorama.Fore.BLACK') == ['colorama.Fore.BLACK'] del self.namespace.colorama + + +def test_version_info(): + assert utils.version_info()[:2] > 0.7