def __init__(self, fn, In = None, Out = None): if In is None: In = sys.stdin if Out is None: Out = sys.stdout self.fn = fn self.chan = Chan() self.chan.set_channels(In, Out) self.filewatch = FileWatcher(fn) self.code_locals = {} try: self.load_code(self.code_locals) self.filewatch.note_new_files() self.chan.send_cmd('ready') except: self.filewatch.note_new_files() self.chan.send_cmd('exception', string = traceback.format_exc())
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with pysched. If not, see <http://www.gnu.org/licenses/>. from pysched import Scheduler from filewatcher import FileWatcher print """ This script creates two FileWatcher processes, each watching for one file. The files watched for are called "file1" and "file2". The scheduler will execute the appropriate process if one of the 2 files are created. After both processes have excuted the scheduler will exit. """ sched = Scheduler() proc1 = FileWatcher("proc1", "file1") proc2 = FileWatcher("proc2", "file2") sched.add_process(proc1) sched.add_process(proc2) while not sched.finished(): sched.check_events() sched.run_next()