diff options
-rw-r--r-- | .bzrignore | 2 | ||||
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | Makefile | 25 | ||||
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | dateutil/test/__init__.py | 0 | ||||
-rwxr-xr-x | dateutil/test/test.py (renamed from test.py) | 0 | ||||
-rw-r--r-- | example.py | 15 | ||||
-rw-r--r-- | sandbox/rrulewrapper.py | 16 | ||||
-rw-r--r-- | sandbox/scheduler.py | 158 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rwxr-xr-x | setup.py | 3 | ||||
-rw-r--r-- | tox.ini | 2 |
12 files changed, 10 insertions, 221 deletions
diff --git a/.bzrignore b/.bzrignore deleted file mode 100644 index 3061b41..0000000 --- a/.bzrignore +++ /dev/null @@ -1,2 +0,0 @@ -*.egg-info -build diff --git a/.travis.yml b/.travis.yml index 1c12758..2402fca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,4 +11,4 @@ install: - pip install six - python updatezinfo.py script: - - python test.py + - python setup.py test diff --git a/Makefile b/Makefile deleted file mode 100644 index a6ae933..0000000 --- a/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -# -# Simple wrapper for setup.py script -# - -DESTDIR=/ -PYTHON=python - -prefix=/usr -bindir=$(prefix)/bin - -all: - $(PYTHON) setup.py build - -install: - $(PYTHON) setup.py install \ - --root=$(DESTDIR) \ - --prefix=$(prefix) \ - --install-scripts=$(bindir) - -dist: - $(PYTHON) setup.py sdist - -rpm: - $(PYTHON) setup.py bdist_rpm - @@ -1,3 +1,9 @@ +Version 2.3 +----------- + +- Cleanup directory structure, moved test.py to dateutil/tests/test.py + + Version 2.2 ----------- diff --git a/dateutil/test/__init__.py b/dateutil/test/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/dateutil/test/__init__.py diff --git a/test.py b/dateutil/test/test.py index 0c9bac5..0c9bac5 100755 --- a/test.py +++ b/dateutil/test/test.py diff --git a/example.py b/example.py deleted file mode 100644 index ffa78e7..0000000 --- a/example.py +++ /dev/null @@ -1,15 +0,0 @@ -from dateutil.relativedelta import * -from dateutil.easter import * -from dateutil.rrule import * -from dateutil.parser import * -from datetime import * -import subprocess -import os -now = parse(subprocess.getoutput("date")) -today = now.date() -year = rrule(YEARLY, bymonth=8, bymonthday=13, byweekday=FR)[0].year -rdelta = relativedelta(easter(year), today) -print("Today is:", today) -print("Year with next Aug 13th on a Friday is:", year) -print("How far is the Easter of that year:", rdelta) -print("And the Easter of that year is:", today+rdelta) diff --git a/sandbox/rrulewrapper.py b/sandbox/rrulewrapper.py deleted file mode 100644 index da4fa85..0000000 --- a/sandbox/rrulewrapper.py +++ /dev/null @@ -1,16 +0,0 @@ -from rrule import * - -class rrulewrapper(object): - def __init__(self, freq, **kwargs): - self._construct = kwargs.copy() - self._construct["freq"] = freq - self._rrule = rrule(**self._construct) - - def __getattr__(self, name): - if name in self.__dict__: - return self.__dict__[name] - return getattr(self._rrule, name) - - def set(self, **kwargs): - self._construct.update(kwargs) - self._rrule = rrule(**self._construct) diff --git a/sandbox/scheduler.py b/sandbox/scheduler.py deleted file mode 100644 index 62794d5..0000000 --- a/sandbox/scheduler.py +++ /dev/null @@ -1,158 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Copyright (c) 2003-2005 Gustavo Niemeyer <gustavo@niemeyer.net> - -This module offers extensions to the standard Python -datetime module. -""" -__author__ = "Tomi Pieviläinen <tomi.pievilainen@iki.fi>" -__license__ = "Simplified BSD" - -import datetime -import _thread -import signal -import time - -class sched(object): - - def __init__(self, rrule, - tolerance=None, last=None, - execute=None, args=None, kwargs=None): - self._rrule = rrule - if tolerance: - self._tolerance = datetime.timedelta(seconds=tolerance) - else: - self._tolerance = None - self._last = last - self._execute = execute - self._args = args or () - self._kwargs = kwargs or {} - - def last(self): - return self._last - - def next(self, now=None): - if not now: - now = datetime.datetime.now() - return self._rrule.after(now) - - def check(self, now=None, readonly=False): - if not now: - now = datetime.datetime.now() - item = self._rrule.before(now, inc=True) - if (item is None or item == self._last or - (self._tolerance and item+self._tolerance < now)): - return None - if not readonly: - self._last = item - if self._execute: - self._execute(*self._args, **self._kwargs) - return item - - -class schedset(object): - def __init__(self): - self._scheds = [] - - def add(self, sched): - self._scheds.append(sched) - - def next(self, now=None): - if not now: - now = datetime.datetime.now() - res = None - for sched in self._scheds: - next = sched.next(now) - if next and (not res or next < res): - res = next - return res - - def check(self, now=None, readonly=False): - if not now: - now = datetime.datetime.now() - res = False - for sched in self._scheds: - if sched.check(now, readonly): - res = True - return res - - -class schedthread(object): - - def __init__(self, sched, lock=None): - self._sched = sched - self._lock = lock - self._running = False - - def running(self): - return self._running - - def run(self): - self._running = True - _thread.start_new_thread(self._loop, ()) - - def stop(self): - self._running = False - - def _loop(self): - while self._running: - if self._lock: - self._lock.acquire() - now = datetime.datetime.now() - self._sched.check(now) - if self._lock: - self._lock.release() - seconds = _seconds_left(self._sched.next(now)) - if seconds is None: - self._running = False - break - if self._running: - time.sleep(seconds) - - -class schedalarm(object): - - def __init__(self, sched, lock=None): - self._sched = sched - self._lock = lock - self._running = False - - def running(self): - return self._running - - def run(self): - self._running = True - signal.signal(signal.SIGALRM, self._handler) - self._handler(None, None) - - def stop(self): - self._running = False - - def _handler(self, sig, frame): - while self._running: - if self._lock: - self._lock.acquire() - now = datetime.datetime.now() - self._sched.check(now) - if self._lock: - self._lock.release() - if self._running: - seconds = _seconds_left(self._sched.next(now)) - if seconds: - signal.alarm(seconds) - break - elif seconds is None: - self._running = False - break - - -def _seconds_left(next): - if not next: - return None - now = datetime.datetime.now() - delta = next-now - seconds = delta.days*86400+delta.seconds - if seconds < 0: - seconds = 0 - return seconds - diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index b3720b5..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[bdist_rpm] -doc_files = README LICENSE @@ -47,5 +47,6 @@ datetime module available in the Python standard library. 'Programming Language :: Python :: 3.2', 'Programming Language :: Python :: 3.3', 'Topic :: Software Development :: Libraries', - ] + ], + test_suite = "dateutil.test.test" ) @@ -2,5 +2,5 @@ envlist = py26, py27, py32, py33, py34 [testenv] -commands = python test.py +commands = python setup.py test -q deps = six |