Files
psa_car_controller/libs/requirements.py
T
2021-10-23 18:05:39 +02:00

28 lines
942 B
Python

import sys
import pkg_resources
from pathlib import Path
from mylogger import logger
class TestRequirements:
"""Test availability of required packages."""
def __init__(self, requirement_path):
self.requirement_path = Path(requirement_path)
def test_requirements(self):
"""Test that each required package is available."""
requirements = pkg_resources.parse_requirements(self.requirement_path.open())
missing_requirement = False
for requirement in requirements:
requirement = str(requirement)
try:
pkg_resources.require(requirement)
except (pkg_resources.VersionConflict, pkg_resources.DistributionNotFound) as ex:
logger.error("%s\nYou need to install or update %s: pip3 install -U %s", ex, requirement, requirement)
missing_requirement = True
if missing_requirement:
sys.exit(10)