cc-4105: major code reformatting effort
This commit is contained in:
parent
5d33ca7c6f
commit
3af6036d9e
4 changed files with 44 additions and 59 deletions
|
@ -181,6 +181,11 @@ class AirtimeMessageReceiver(Loggable):
|
|||
try:
|
||||
self.logger.info("Attempting to delete '%s'" %
|
||||
msg['filepath'])
|
||||
# We use FileMediator to ignore any paths with
|
||||
# msg['filepath'] so that we do not send a duplicate delete
|
||||
# request that we'd normally get form pyinotify. But right
|
||||
# now event contractor would take care of this sort of
|
||||
# thing anyway so this might not be necessary after all
|
||||
FileMediator.ignore(msg['filepath'])
|
||||
os.unlink(msg['filepath'])
|
||||
if not os.path.exists(msg['filepath']):
|
||||
|
@ -189,11 +194,11 @@ class AirtimeMessageReceiver(Loggable):
|
|||
except Exception as e:
|
||||
self.logger.info("Failed to delete '%s'" % msg['filepath'])
|
||||
self.logger.info("Error: " % str(e))
|
||||
else:
|
||||
else: # validation for filepath existence failed
|
||||
self.logger.info("Attempting to delete file '%s' that does not \
|
||||
exist. Full request coming:" % msg['filepath'])
|
||||
self.logger.info(msg)
|
||||
else:
|
||||
else: # we did not get the special 'delete' tag. no deleting
|
||||
self.logger.info("No clippy confirmation, ignoring event. \
|
||||
Out of curiousity we will print some details.")
|
||||
self.logger.info(msg)
|
||||
|
|
|
@ -97,9 +97,9 @@ class BaseEvent(Loggable):
|
|||
self.logger.info("Morphing %s into %s" % ( str(self), str(evt) ) )
|
||||
self._raw_event = evt
|
||||
self.path = evt.path
|
||||
self.add_safe_pack_hook(evt._pack_hook)
|
||||
self.__class__ = evt.__class__
|
||||
evt._morph_target = True
|
||||
self.add_safe_pack_hook(evt._pack_hook)
|
||||
return self
|
||||
|
||||
class FakePyinotify(object):
|
||||
|
|
|
@ -36,13 +36,12 @@ from media.monitor.log import Loggable, get_logger
|
|||
# OrganizeListener('watch_signal') <= wrong
|
||||
# OrganizeListener(signal='watch_signal') <= right
|
||||
|
||||
# TODO : remove this FileMediator stuff it's not used anywhere and it's too
|
||||
# complicated
|
||||
class FileMediator(object):
|
||||
"""
|
||||
FileMediator is used an intermediate mechanism that filters out certain
|
||||
events.
|
||||
"""
|
||||
ignored_set = set([]) # for paths only
|
||||
# TODO : unify ignored and skipped.
|
||||
# for "special" conditions. could be generalized but too lazy now.
|
||||
skip_checks = set([])
|
||||
logger = get_logger()
|
||||
|
||||
@staticmethod
|
||||
|
@ -51,31 +50,10 @@ class FileMediator(object):
|
|||
def ignore(path): FileMediator.ignored_set.add(path)
|
||||
@staticmethod
|
||||
def unignore(path): FileMediator.ignored_set.remove(path)
|
||||
@staticmethod
|
||||
def skip_next(*what_to_skip,**kwargs):
|
||||
# Poor man's default arguments
|
||||
if 'key' not in kwargs: kwargs['key'] = 'maskname'
|
||||
for skip in what_to_skip:
|
||||
# standard nasty hack, too long to explain completely in comments
|
||||
# but the gist of it is:
|
||||
# 1. python's scoping rules are sometimes strange.
|
||||
# 2. workaround is very similar to what you do in javascript when
|
||||
# you write stuff like (function (x,y) { console.log(x+y); })(2,4)
|
||||
# to be avoid clobbering peoples' namespace.
|
||||
skip_check = (lambda skip:
|
||||
lambda v: getattr(v,kwargs['key']) == skip)(skip)
|
||||
FileMediator.skip_checks.add( skip_check )
|
||||
|
||||
def mediate_ignored(fn):
|
||||
def wrapped(self, event, *args,**kwargs):
|
||||
event.pathname = unicode(event.pathname, "utf-8")
|
||||
skip_events = [s_check for s_check in FileMediator.skip_checks
|
||||
if s_check(event)]
|
||||
for s_check in skip_events:
|
||||
FileMediator.skip_checks.remove( s_check )
|
||||
# Only process skip_checks one at a time
|
||||
FileMediator.logger.info("Skip checked: '%s'" % str(event))
|
||||
return
|
||||
if FileMediator.is_ignored(event.pathname):
|
||||
FileMediator.logger.info("Ignoring: '%s' (once)" % event.pathname)
|
||||
FileMediator.unignore(event.pathname)
|
||||
|
|
|
@ -8,14 +8,16 @@ from media.monitor.log import get_logger, setup_logging
|
|||
from media.monitor.config import MMConfig
|
||||
from media.monitor.toucher import ToucherThread
|
||||
from media.monitor.syncdb import AirtimeDB
|
||||
from media.monitor.exceptions import FailedToObtainLocale, FailedToSetLocale, \
|
||||
from media.monitor.exceptions import FailedToObtainLocale, \
|
||||
FailedToSetLocale, \
|
||||
NoConfigFile
|
||||
from media.monitor.airtime import AirtimeNotifier, AirtimeMessageReceiver
|
||||
from media.monitor.airtime import AirtimeNotifier, \
|
||||
AirtimeMessageReceiver
|
||||
from media.monitor.watchersyncer import WatchSyncer
|
||||
from media.monitor.eventdrainer import EventDrainer
|
||||
from media.update.replaygainupdater import ReplayGainUpdater
|
||||
import media.monitor.pure as mmp
|
||||
|
||||
import media.monitor.pure as mmp
|
||||
from api_clients import api_client as apc
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue