diff options
author | Mathieu Le Marec - Pasquet <kiorky@cryptelium.net> | 2021-03-23 21:09:39 +0100 |
---|---|---|
committer | Mathieu Le Marec - Pasquet <kiorky@cryptelium.net> | 2021-03-23 21:09:39 +0100 |
commit | 3b950e64a539bac7cb78c5cf44d043e19c419b2a (patch) | |
tree | 9c2920937bd41361c1d58ba29eb977ca4971e4ef | |
parent | 56bce0d4d34569368899942d9eff7980d2df48d4 (diff) | |
download | croniter-future.tar.gz |
remove futurefuture
-rw-r--r-- | docs/CHANGES.rst | 3 | ||||
-rw-r--r-- | requirements/base.txt | 1 | ||||
-rw-r--r-- | src/croniter/croniter.py | 20 |
3 files changed, 20 insertions, 4 deletions
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst index d735083..571ff11 100644 --- a/docs/CHANGES.rst +++ b/docs/CHANGES.rst @@ -4,7 +4,8 @@ Changelog 1.0.9 (unreleased) ------------------ -- Nothing changed yet. +- Remove futures dependency + [kiorky] 1.0.8 (2021-03-06) diff --git a/requirements/base.txt b/requirements/base.txt index 56d1bf5..49db1a1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,3 @@ python_dateutil -future natsort -e . diff --git a/src/croniter/croniter.py b/src/croniter/croniter.py index af34f18..9a9d0f5 100644 --- a/src/croniter/croniter.py +++ b/src/croniter/croniter.py @@ -6,13 +6,13 @@ from __future__ import absolute_import, print_function, division import math import re import sys +import inspect from time import time import datetime from dateutil.relativedelta import relativedelta from dateutil.tz import tzutc import calendar import natsort -from future.utils import raise_from step_search_re = re.compile(r'^([^-]+)-([^-/]+)(/(\d+))?$') @@ -21,6 +21,18 @@ star_or_int_re = re.compile(r'^(\d+|\*)$') VALID_LEN_EXPRESSION = [5, 6] +def _get_caller_globals_and_locals(): + """ + Returns the globals and locals of the calling frame. + + Is there an alternative to frame hacking here? + """ + caller_frame = inspect.stack()[2] + myglobals = caller_frame[0].f_globals + mylocals = caller_frame[0].f_locals + return myglobals, mylocals + + class CroniterError(ValueError): """ General top-level Croniter base exception """ pass @@ -661,7 +673,11 @@ class croniter(object): error_type, error_instance, traceback = sys.exc_info() if isinstance(exc, CroniterError): raise - raise_from(CroniterBadCronError, exc) + if int(sys.version[0]) >= 3: + globs, locs = _get_caller_globals_and_locals() + exec("raise CroniterBadCronError from exc", globs, locs) + else: + raise CroniterBadCronError("{0}".format(exc)) @classmethod def is_valid(cls, expression): |