From e02972f610e4d516f99a5932824625751df3ac01 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sat, 15 Dec 2012 15:41:52 +0800 Subject: [PATCH] filter before sorting --- archreposrv | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/archreposrv b/archreposrv index c53509e..deeb3cd 100755 --- a/archreposrv +++ b/archreposrv @@ -7,6 +7,7 @@ import re import pwd import configparser from functools import partial +from itertools import filterfalse import queue import logging import sqlite3 @@ -159,13 +160,11 @@ class EventHandler(pyinotify.ProcessEvent): def _initial_update(self, files): oldfiles = {f[0] for f in self._db.execute('select filename from pkginfo')} - for f in sorted(files - oldfiles, key=pkgsortkey): - if not filterPkg(f): - self.dispatch(f, 'add') + for f in sorted(filterfalse(filterPkg, files - oldfiles), key=pkgsortkey): + self.dispatch(f, 'add') - for f in sorted(oldfiles - files, key=pkgsortkey): - if not filterPkg(f): - self.dispatch(f, 'remove') + for f in sorted(filterfalse(filterPkg, oldfiles - files), key=pkgsortkey): + self.dispatch(f, 'remove') def process_IN_CLOSE_WRITE(self, event): logging.debug('Writing done: %s', event.pathname)