From 8e40de85fb2fcde81ac994335286a863c6e46c86 Mon Sep 17 00:00:00 2001 From: Daniel Girtler Date: Fri, 22 Sep 2023 19:43:12 +1000 Subject: Only parse profile classes when loading modules (#2088) Co-authored-by: Daniel Girtler --- archinstall/lib/profile/profiles_handler.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'archinstall/lib') diff --git a/archinstall/lib/profile/profiles_handler.py b/archinstall/lib/profile/profiles_handler.py index 7810db2f..03039321 100644 --- a/archinstall/lib/profile/profiles_handler.py +++ b/archinstall/lib/profile/profiles_handler.py @@ -2,6 +2,7 @@ from __future__ import annotations import importlib.util import sys +import inspect from collections import Counter from functools import cached_property from pathlib import Path @@ -276,12 +277,15 @@ class ProfileHandler: profiles = [] for k, v in module.__dict__.items(): if isinstance(v, type) and v.__module__ == module.__name__: - try: - cls_ = v() - if isinstance(cls_, Profile): - profiles.append(cls_) - except Exception: - debug(f'Cannot import {module}, it does not appear to be a Profile class') + bases = inspect.getmro(v) + + if Profile in bases: + try: + cls_ = v() + if isinstance(cls_, Profile): + profiles.append(cls_) + except Exception: + debug(f'Cannot import {module}, it does not appear to be a Profile class') return profiles -- cgit v1.2.3-70-g09d2