summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2021-03-23 21:09:39 +0100
committerMathieu Le Marec - Pasquet <kiorky@cryptelium.net>2021-03-23 21:09:39 +0100
commit3b950e64a539bac7cb78c5cf44d043e19c419b2a (patch)
tree9c2920937bd41361c1d58ba29eb977ca4971e4ef
parent56bce0d4d34569368899942d9eff7980d2df48d4 (diff)
downloadcroniter-future.tar.gz
remove futurefuture
-rw-r--r--docs/CHANGES.rst3
-rw-r--r--requirements/base.txt1
-rw-r--r--src/croniter/croniter.py20
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):