From debcf301e21c30211551d2cce891070b0045ed3e Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 21 Feb 2024 15:25:33 +0100 Subject: [PATCH] < python3.8 backward compatible version checking --- scenario_runner.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/scenario_runner.py b/scenario_runner.py index c52a25018..66aad16e4 100755 --- a/scenario_runner.py +++ b/scenario_runner.py @@ -28,7 +28,21 @@ import sys import time import json -from importlib.metadata import metadata +try: + # requires Python 3.8+ + from importlib.metadata import metadata + def assert_min_carla_version(v='0.9.15'): + md = metadata("carla") + if Version(md["Version"]) < Version(v): + raise ImportError("CARLA version {} or newer required. CARLA version found: {}".format(v, md["Version"])) +except ModuleNotFoundError: + # backport checking for older Python versions + import pkg_resources + def assert_min_carla_version(v='0.9.15'): + dist = pkg_resources.get_distribution("carla") + if Version(dist.version) < Version(v): + raise ImportError("CARLA version {} or newer required. CARLA version found: {}".format(v, dist)) + import carla @@ -92,9 +106,7 @@ def __init__(self, args): # requests in the localhost at port 2000. self.client = carla.Client(args.host, int(args.port)) self.client.set_timeout(self.client_timeout) - md = metadata("carla") - if Version(md["Version"]) < Version('0.9.15'): - raise ImportError("CARLA version 0.9.15 or newer required. CARLA version found: {}".format(md["Version"])) + assert_min_carla_version('0.9.15') # Load agent if requested via command line args # If something goes wrong an exception will be thrown by importlib (ok here)