Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(394)

Unified Diff: plaso/dependencies.py

Issue 317610043: [plaso] Changed dependency management to use configuration file (Closed)
Patch Set: Changed dependency management to use configuration file Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dependencies.ini ('k') | plaso/parsers/esedb.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « dependencies.ini ('k') | plaso/parsers/esedb.py » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b