Index: plaso/dependencies.py |
diff --git a/plaso/dependencies.py b/plaso/dependencies.py |
index 1db4822739794cd0e11750e8265034848497ccae..53648feeb91a363a234ee4dcdefda14adafdd2d9 100644 |
--- a/plaso/dependencies.py |
+++ b/plaso/dependencies.py |
@@ -66,112 +66,6 @@ PYTHON_DEPENDENCIES = { |
u'yara': (u'YARA_VERSION', u'3.4.0', None, True), |
u'zmq': (u'__version__', u'2.1.11', None, True)} |
-PYTHON_TEST_DEPENDENCIES = { |
- u'mock': (u'__version__', u'0.7.1', None, True)} |
- |
-# Maps Python module names to DPKG packages. |
-_DPKG_PACKAGE_NAMES = { |
- u'Crypto': u'python-crypto', |
- u'hachoir_core': u'python-hachoir-core', |
- u'hachoir_metadata': u'python-hachoir-metadata', |
- u'hachoir_parser': u'python-hachoir-parser', |
- u'lzma': u'python-lzma', |
- u'pybde': u'libbde-python', |
- u'pyesedb': u'libesedb-python', |
- u'pyevt': u'libevt-python', |
- u'pyevtx': u'libevtx-python', |
- u'pyewf': u'libewf-python', |
- u'pyfsntfs': u'libfsntfs-python', |
- u'pyfvde': u'libfvde-python', |
- u'pyfwnt': u'libfwnt-python', |
- u'pyfwsi': u'libfwsi-python', |
- u'pylnk': u'liblnk-python', |
- u'pymsiecf': u'libmsiecf-python', |
- u'pyolecf': u'libolecf-python', |
- u'pyqcow': u'libqcow-python', |
- u'pyregf': u'libregf-python', |
- u'pyscca': u'libscca-python', |
- u'pysigscan': u'libsigscan-python', |
- u'pysmdev': u'libsmdev-python', |
- u'pysmraw': u'libsmraw-python', |
- u'pytz': u'python-tz', |
- u'pyvhdi': u'libvhdi-python', |
- u'pyvmdk': u'libvmdk-python', |
- u'pyvshadow': u'libvshadow-python', |
- u'pyvslvm': u'libvslvm-python'} |
- |
-# Maps Python module names to PyPI projects. |
-_PYPI_PROJECT_NAMES = { |
- u'Crypto': u'pycrypto', |
- u'dateutil': u'python-dateutil', |
- u'hachoir_core': u'hachoir-core', |
- u'hachoir_metadata': u'hachoir-metadata', |
- u'hachoir_parser': u'hachoir-parser', |
- u'lzma': u'pyliblzma', |
- u'pybde': u'libbde-python', |
- u'pyesedb': u'libesedb-python', |
- u'pyevt': u'libevt-python', |
- u'pyevtx': u'libevtx-python', |
- u'pyewf': u'libewf-python', |
- u'pyfsntfs': u'libfsntfs-python', |
- u'pyfvde': u'libfvde-python', |
- u'pyfwnt': u'libfwnt-python', |
- u'pyfwsi': u'libfwsi-python', |
- u'pylnk': u'liblnk-python', |
- u'pymsiecf': u'libmsiecf-python', |
- u'pyolecf': u'libolecf-python', |
- u'pyqcow': u'libqcow-python', |
- u'pyregf': u'libregf-python', |
- u'pyscca': u'libscca-python', |
- u'pysigscan': u'libsigscan-python', |
- u'pysmdev': u'libsmdev-python', |
- u'pysmraw': u'libsmraw-python', |
- u'pyvhdi': u'libvhdi-python', |
- u'pyvmdk': u'libvmdk-python', |
- u'pyvshadow': u'libvshadow-python', |
- u'pyvslvm': u'libvslvm-python', |
- u'sqlite3': u'pysqlite', |
- u'xlsxwriter': u'XlsxWriter', |
- u'yaml': u'PyYAML', |
- u'yara': u'yara-python', |
- u'zmq': u'pyzmq'} |
- |
-# Maps Python module names to RPM packages. |
-_RPM_PACKAGE_NAMES = { |
- u'Crypto': u'python-crypto', |
- u'hachoir_core': u'python-hachoir-core', |
- u'hachoir_metadata': u'python-hachoir-metadata', |
- u'hachoir_parser': u'python-hachoir-parser', |
- u'lzma': u'pyliblzma', |
- u'pybde': u'libbde-python', |
- u'pyesedb': u'libesedb-python', |
- u'pyevt': u'libevt-python', |
- u'pyevtx': u'libevtx-python', |
- u'pyewf': u'libewf-python', |
- u'pyfsntfs': u'libfsntfs-python', |
- u'pyfvde': u'libfvde-python', |
- u'pyfwnt': u'libfwnt-python', |
- u'pyfwsi': u'libfwsi-python', |
- u'pylnk': u'liblnk-python', |
- u'pymsiecf': u'libmsiecf-python', |
- u'pyolecf': u'libolecf-python', |
- u'pyqcow': u'libqcow-python', |
- u'pyregf': u'libregf-python', |
- u'pyscca': u'libscca-python', |
- u'pysigscan': u'libsigscan-python', |
- u'pysmdev': u'libsmdev-python', |
- u'pysmraw': u'libsmraw-python', |
- u'pytz': u'pytz', |
- u'pyvhdi': u'libvhdi-python', |
- u'pyvmdk': u'libvmdk-python', |
- u'pyvshadow': u'libvshadow-python', |
- u'pyvslvm': u'libvslvm-python', |
- u'sqlite3': u'python-libs', |
- u'xlsxwriter': u'python-XlsxWriter', |
- u'yaml': u'PyYAML', |
- u'yara': u'python2-yara', |
- u'zmq': u'python2-zmq'} |
- |
_VERSION_SPLIT_REGEX = re.compile(r'\.|\-') |
@@ -352,173 +246,3 @@ def CheckDependencies(verbose_output=True): |
print(u'') |
return check_result |
- |
- |
-def CheckModuleVersion(module_name): |
- """Checks the version requirements of a module. |
- |
- Args: |
- module_name (str): name of the module. |
- |
- Raises: |
- ImportError: if the module does not exists or does not meet |
- the version requirements. |
- """ |
- try: |
- module_object = list(map(__import__, [module_name]))[0] |
- except ImportError: |
- raise |
- |
- if module_name not in PYTHON_DEPENDENCIES: |
- return |
- |
- version_attribute_name, minimum_version, maximum_version, _ = ( |
- PYTHON_DEPENDENCIES[module_name]) |
- |
- module_version = None |
- if not version_attribute_name.endswith(u'()'): |
- module_version = getattr(module_object, version_attribute_name, None) |
- else: |
- version_method = getattr(module_object, version_attribute_name[:-2], None) |
- if version_method: |
- module_version = version_method() |
- |
- if not module_version: |
- raise ImportError(u'Unable to determine version of module: {0:s}'.format( |
- module_name)) |
- |
- # Split the version string and convert every digit into an integer. |
- # A string compare of both version strings will yield an incorrect result. |
- module_version_map = list( |
- map(int, _VERSION_SPLIT_REGEX.split(module_version))) |
- minimum_version_map = list( |
- map(int, _VERSION_SPLIT_REGEX.split(minimum_version))) |
- |
- if module_version_map < minimum_version_map: |
- raise ImportError(( |
- u'Module: {0:s} version: {1!s} is too old, {2!s} or later ' |
- u'required.').format(module_name, module_version, minimum_version)) |
- |
- if maximum_version: |
- maximum_version_map = list( |
- map(int, _VERSION_SPLIT_REGEX.split(maximum_version))) |
- if module_version_map > maximum_version_map: |
- raise ImportError(( |
- u'Module; {0:s} version: {1!s} is too recent, {2!s} or earlier ' |
- u'required.').format(module_name, module_version, maximum_version)) |
- |
- |
-def CheckTestDependencies(verbose_output=True): |
- """Checks the availability of the dependencies when running tests. |
- |
- Args: |
- verbose_output (Optional[bool]): True if output should be verbose. |
- |
- Returns: |
- bool: True if the dependencies are available, False otherwise. |
- """ |
- if not CheckDependencies(verbose_output=verbose_output): |
- return False |
- |
- print(u'Checking availability and versions of test dependencies.') |
- for module_name, version_tuple in sorted(PYTHON_TEST_DEPENDENCIES.items()): |
- if not _CheckPythonModule( |
- module_name, version_tuple[0], version_tuple[1], |
- is_required=version_tuple[3], maximum_version=version_tuple[2], |
- verbose_output=verbose_output): |
- return False |
- |
- return True |
- |
- |
-def GetDPKGDepends(exclude_version=False): |
- """Retrieves the DPKG control file installation requirements. |
- |
- Args: |
- exclude_version (Optional[bool]): True if the version should be excluded |
- from the dependency definitions. |
- |
- Returns: |
- list[str]: dependency definitions for requires for DPKG control file. |
- """ |
- requires = [] |
- for module_name, version_tuple in sorted(PYTHON_DEPENDENCIES.items()): |
- module_version = version_tuple[1] |
- |
- # Map the import name to the DPKG package name. |
- module_name = _DPKG_PACKAGE_NAMES.get( |
- module_name, u'python-{0:s}'.format(module_name)) |
- if module_name == u'python-libs': |
- # Override the python-libs version since it does not match |
- # the sqlite3 version. |
- module_version = None |
- |
- if exclude_version or not module_version: |
- requires.append(module_name) |
- else: |
- requires.append(u'{0:s} (>= {1!s})'.format(module_name, module_version)) |
- |
- return sorted(requires) |
- |
- |
-def GetInstallRequires(): |
- """Retrieves the setup.py installation requirements. |
- |
- Returns: |
- list[str]: dependency definitions for install_requires for setup.py. |
- """ |
- install_requires = [] |
- for module_name, version_tuple in sorted(PYTHON_DEPENDENCIES.items()): |
- module_version = version_tuple[1] |
- maximum_version = version_tuple[2] |
- |
- # Map the import name to the PyPI project name. |
- module_name = _PYPI_PROJECT_NAMES.get(module_name, module_name) |
- if module_name == u'efilter': |
- module_version = u'1-{0:s}'.format(module_version) |
- |
- elif module_name == u'pysqlite': |
- # Override the pysqlite version since it does not match |
- # the sqlite3 version. |
- module_version = None |
- |
- if not module_version: |
- install_requires.append(module_name) |
- elif not maximum_version: |
- install_requires.append(u'{0:s} >= {1!s}'.format( |
- module_name, module_version)) |
- else: |
- install_requires.append(u'{0:s} >= {1!s},<= {2!s}'.format( |
- module_name, module_version, maximum_version)) |
- |
- return sorted(install_requires) |
- |
- |
-def GetRPMRequires(exclude_version=False): |
- """Retrieves the setup.cfg RPM installation requirements. |
- |
- Args: |
- exclude_version (Optional[bool]): True if the version should be excluded |
- from the dependency definitions. |
- |
- Returns: |
- list[str]: dependency definitions for requires for setup.cfg. |
- """ |
- requires = [] |
- for module_name, version_tuple in sorted(PYTHON_DEPENDENCIES.items()): |
- module_version = version_tuple[1] |
- |
- # Map the import name to the RPM package name. |
- module_name = _RPM_PACKAGE_NAMES.get( |
- module_name, u'python-{0:s}'.format(module_name)) |
- if module_name == u'python-libs': |
- # Override the python-libs version since it does not match |
- # the sqlite3 version. |
- module_version = None |
- |
- if exclude_version or not module_version: |
- requires.append(module_name) |
- else: |
- requires.append(u'{0:s} >= {1!s}'.format(module_name, module_version)) |
- |
- return sorted(requires) |