From 071482bbf943d2d431b90d4250272025522b6b5e Mon Sep 17 00:00:00 2001 From: petsagouris Date: Mon, 21 Apr 2025 16:48:22 +0300 Subject: [PATCH] Refactor GraphQL and PDF support checks in settings.py to use importlib for module availability --- django_ledger/settings.py | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/django_ledger/settings.py b/django_ledger/settings.py index 9ce6f81f4..142fe72a4 100644 --- a/django_ledger/settings.py +++ b/django_ledger/settings.py @@ -2,6 +2,8 @@ Django Ledger created by Miguel Sanda . Copyright© EDMA Group Inc licensed under the GPLv3 Agreement. """ + +import importlib import logging from decimal import Decimal @@ -10,21 +12,14 @@ logger = logging.getLogger('Django Ledger Logger') logger.setLevel(logging.INFO) -try: - from graphene import __version__ - from graphene_django import __version__ - from oauth2_provider import __version__ - - DJANGO_LEDGER_GRAPHQL_SUPPORT_ENABLED = True -except ImportError: - DJANGO_LEDGER_GRAPHQL_SUPPORT_ENABLED = False - -try: - from fpdf import FPDF +DJANGO_LEDGER_GRAPHQL_SUPPORT_ENABLED = all( + [ + importlib.util.find_spec(module) is not None + for module in ["graphene", "graphene_django", "oauth2_provider"] + ] +) - DJANGO_LEDGER_PDF_SUPPORT_ENABLED = True -except ImportError: - DJANGO_LEDGER_PDF_SUPPORT_ENABLED = False +DJANGO_LEDGER_PDF_SUPPORT_ENABLED = importlib.util.find_spec("fpdf") is not None logger.info(f'Django Ledger GraphQL Enabled: {DJANGO_LEDGER_GRAPHQL_SUPPORT_ENABLED}')