From 2b55fef0316003280a2de098ab076153fc6330b9 Mon Sep 17 00:00:00 2001 From: Steven K Date: Mon, 25 Aug 2025 15:51:02 -0700 Subject: [PATCH 1/2] Update import handling for cron_descriptor > 2.0.x compatibility --- django_celery_beat/models.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/django_celery_beat/models.py b/django_celery_beat/models.py index ad53a288..2276a840 100644 --- a/django_celery_beat/models.py +++ b/django_celery_beat/models.py @@ -8,8 +8,15 @@ import timezone_field from celery import current_app, schedules -from cron_descriptor import (FormatException, MissingFieldException, - WrongArgumentException, get_description) + +try: + from cron_descriptor import (FormatError, MissingFieldError, + WrongArgumentError, get_description) +except ImportError: + from cron_descriptor import FormatException as FormatError + from cron_descriptor import MissingFieldException as MissingFieldError + from cron_descriptor import WrongArgumentException as WrongArgumentError + from django.conf import settings from django.core.exceptions import MultipleObjectsReturned, ValidationError from django.core.validators import MaxValueValidator, MinValueValidator @@ -340,9 +347,9 @@ def human_readable(self): try: human_readable = get_description(cron_expression) except ( - MissingFieldException, - FormatException, - WrongArgumentException + MissingFieldError, + FormatError, + WrongArgumentError ): return f'{cron_expression} {str(self.timezone)}' return f'{human_readable} {str(self.timezone)}' From 5403b09a65c04ef8df8c108c709894f4fbcfb1dd Mon Sep 17 00:00:00 2001 From: Steven Date: Sun, 31 Aug 2025 12:30:43 -0700 Subject: [PATCH 2/2] Update django_celery_beat/models.py Add comment per request Co-authored-by: Christian Clauss --- django_celery_beat/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_celery_beat/models.py b/django_celery_beat/models.py index 2276a840..ca70f846 100644 --- a/django_celery_beat/models.py +++ b/django_celery_beat/models.py @@ -12,7 +12,7 @@ try: from cron_descriptor import (FormatError, MissingFieldError, WrongArgumentError, get_description) -except ImportError: +except ImportError: # Python < 3.11 must use cron_descriptor < 2.0 which uses *Exception exceptions. from cron_descriptor import FormatException as FormatError from cron_descriptor import MissingFieldException as MissingFieldError from cron_descriptor import WrongArgumentException as WrongArgumentError