Contact: fumanchu@aminus.org

Log in as guest/dejavu to create tickets

I think I've seen this ORM somewhere before...

Changeset 275

Show
Ignore:
Timestamp:
08/11/06 13:28:01
Author:
dowski
Message:

Moving Bob's latest changes to recur into Dejavu. See misc [102].

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/recur.py

    r274 r275  
    621621    """ 
    622622     
    623     patterns = {byunits: [r"([0-9]+) sec(?:ond)?s?", 
    624                           r"([0-9]+) min(?:ute)?s?", 
    625                           r"([0-9]+) hours?", 
    626                           r"([0-9]+) days?", 
    627                           r"([0-9]+) weeks?", 
    628                           r"([0-9]+) months?", 
    629                           r"([0-9]+) years?", 
     623    patterns = {byunits: [r"([0-9]+) sec", 
     624                          r"([0-9]+) min", 
     625                          r"([0-9]+) hour", 
     626                          r"([0-9]+) day", 
     627                          r"([0-9]+) week", 
     628                          r"([0-9]+) month", 
     629                          r"([0-9]+) year", 
    630630                          ], 
    631631                # \S is any non-whitespace character. 
    632632                eachday: r"([\S]+) (?:every|each) day", 
    633                 # $ in first regex below so as not to match "month" 
    634                 eachweekday: [r"([\S]+) (?:every|each) mon(?:day)?$", 
    635                               r"([\S]+) (?:every|each) tue(?:s?)?(?:day$)?$", 
    636                               r"([\S]+) (?:every|each) wed(?:nesday)?", 
    637                               r"([\S]+) (?:every|each) thu(?:rs?)?(?:day)?$", 
    638                               r"([\S]+) (?:every|each) fri(?:day)?", 
    639                               r"([\S]+) (?:every|each) sat(?:urday)?", 
    640                               r"([\S]+) (?:every|each) sun(?:day)?", 
     633                eachweekday: [# don't match "month" 
     634                              r"([\S]+) (?:every|each) mon(?!th)", 
     635                              r"([\S]+) (?:every|each) tue", 
     636                              r"([\S]+) (?:every|each) wed", 
     637                              r"([\S]+) (?:every|each) thu", 
     638                              r"([\S]+) (?:every|each) fri", 
     639                              r"([\S]+) (?:every|each) sat", 
     640                              r"([\S]+) (?:every|each) sun", 
    641641                              ], 
    642                 eachweek: [r"mon(?:days?)?", r"tue(?:s?)s?(?:days)?$", 
    643                            r"wed(?:nesdays?)?", r"thu(?:rs?)?(?:days)?$", 
    644                            r"fri(?:days?)?", r"sat(?:urdays?)?", 
    645                            r"sun(?:days?)?", 
    646                            ], 
     642                eachweek: [r"mon", r"tue", r"wed", r"thu", r"fri", r"sat", r"sun"], 
    647643                eachmonth: r"(-?\d+) (?:every|each) month", 
    648644                # Lookbehind for a digit and separator so we don't 
     
    855851    def __init__(self, workers=None): 
    856852        if workers is None: 
    857             workers = [] 
     853            workers = {} 
    858854        self.workers = workers 
    859855        self.curthread = None 
     
    867863        """ 
    868864        # Set nextrun for all workers 
    869         for worker in self.workers
     865        for worker in self.workers.values()
    870866            worker.advance() 
    871867        self.terminated = False 
     
    878874         
    879875        ivs = [] 
    880         for w in self.workers
     876        for w in self.workers.values()
    881877            next = w.nextrun 
    882878            if next is not None: 
     
    900896        self.terminated = True 
    901897        self.curthread.cancel() 
    902         for w in self.workers
     898        for w in self.workers.values()
    903899            w.stop() 
    904900