Only parse profile classes when loading modules (#2088)

Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
This commit is contained in:
Daniel Girtler 2023-09-22 19:43:12 +10:00 committed by GitHub
parent 6d908e8cd7
commit 8e40de85fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -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