Framework: Refactor where the python version check happens.

Fixes issue #181.
This commit is contained in:
Mike Auty
2020-01-22 19:05:06 +00:00
parent 9fe6e6ba37
commit ddfd5ec2d2
+10 -10
View File
@@ -2,11 +2,20 @@
# which is available at https://www.volatilityfoundation.org/license/vsl-v1.0
#
"""Volatility 3 framework."""
# Check the python version to ensure it's suitable
# We currently require 3.5.3 since 3.5.1 has no typing.Type and 3.5.2 is broken for ''/delayed encapsulated types
import sys
required_python_version = (3, 5, 3)
if (sys.version_info.major != required_python_version[0] or sys.version_info.minor < required_python_version[1] or
(sys.version_info.minor == required_python_version[1] and sys.version_info.micro < required_python_version[2])):
raise RuntimeError(
"Volatility framework requires python version {}.{}.{} or greater".format(*required_python_version))
import importlib
import inspect
import logging
import os
import sys
from typing import Any, Dict, Generator, List, Type, TypeVar
from volatility.framework import constants, interfaces
@@ -116,12 +125,3 @@ def list_plugins() -> Dict[str, Type[interfaces.plugins.PluginInterface]]:
plugin_name = plugin_name[len("volatility.plugins."):]
plugin_list[plugin_name] = plugin
return plugin_list
# Check the python version to ensure it's suitable
# We currently require 3.5.3 since 3.5.1 has no typing.Type and 3.5.2 is broken for ''/delayed encapsulated types
required_python_version = (3, 5, 3)
if (sys.version_info.major != required_python_version[0] or sys.version_info.minor < required_python_version[1] or
(sys.version_info.minor == required_python_version[1] and sys.version_info.micro < required_python_version[2])):
raise RuntimeError(
"Volatility framework requires python version {}.{}.{} or greater".format(*required_python_version))