Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1337

Show
Ignore:
Timestamp:
09/06/06 12:52:25
Author:
fumanchu
Message:

New engine.autoreload_match attribute for filtering autoreload to a single package (adapted from TG).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cpengine.py

    r1329 r1337  
    33import cgi 
    44import os 
     5import re 
    56import signal 
    67import sys 
     
    1516STARTING = None 
    1617STARTED = 1 
    17  
    18  
    19 def fileattr(m): 
    20     if hasattr(m, "__loader__"): 
    21         if hasattr(m.__loader__, "archive"): 
    22             return m.__loader__.archive 
    23     return getattr(m, "__file__", None) 
    24  
    2518 
    2619try: 
     
    4942    autoreload_on = True 
    5043    autoreload_frequency = 1 
     44    autoreload_match = ".*" 
    5145     
    5246    def __init__(self): 
     
    123117    def autoreload(self): 
    124118        """Reload the process if registered files have been modified.""" 
    125         for filename in map(fileattr, sys.modules.values()) + self.reload_files: 
     119        sysfiles = [] 
     120        for k, m in sys.modules.items(): 
     121            if re.match(self.autoreload_match, k): 
     122                if hasattr(m, "__loader__"): 
     123                    if hasattr(m.__loader__, "archive"): 
     124                        k = m.__loader__.archive 
     125                k = getattr(m, "__file__", None) 
     126                sysfiles.append(k) 
     127         
     128        for filename in sysfiles + self.reload_files: 
    126129            if filename: 
    127130                if filename.endswith(".pyc"): 

Hosted by WebFaction

Log in as guest/cpguest to create tickets