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:
|
try:
|
||||||
self.logger.info("Attempting to delete '%s'" %
|
self.logger.info("Attempting to delete '%s'" %
|
||||||
msg['filepath'])
|
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'])
|
FileMediator.ignore(msg['filepath'])
|
||||||
os.unlink(msg['filepath'])
|
os.unlink(msg['filepath'])
|
||||||
if not os.path.exists(msg['filepath']):
|
if not os.path.exists(msg['filepath']):
|
||||||
|
@ -189,11 +194,11 @@ class AirtimeMessageReceiver(Loggable):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.info("Failed to delete '%s'" % msg['filepath'])
|
self.logger.info("Failed to delete '%s'" % msg['filepath'])
|
||||||
self.logger.info("Error: " % str(e))
|
self.logger.info("Error: " % str(e))
|
||||||
else:
|
else: # validation for filepath existence failed
|
||||||
self.logger.info("Attempting to delete file '%s' that does not \
|
self.logger.info("Attempting to delete file '%s' that does not \
|
||||||
exist. Full request coming:" % msg['filepath'])
|
exist. Full request coming:" % msg['filepath'])
|
||||||
self.logger.info(msg)
|
self.logger.info(msg)
|
||||||
else:
|
else: # we did not get the special 'delete' tag. no deleting
|
||||||
self.logger.info("No clippy confirmation, ignoring event. \
|
self.logger.info("No clippy confirmation, ignoring event. \
|
||||||
Out of curiousity we will print some details.")
|
Out of curiousity we will print some details.")
|
||||||
self.logger.info(msg)
|
self.logger.info(msg)
|
||||||
|
|
|
@ -97,9 +97,9 @@ class BaseEvent(Loggable):
|
||||||
self.logger.info("Morphing %s into %s" % ( str(self), str(evt) ) )
|
self.logger.info("Morphing %s into %s" % ( str(self), str(evt) ) )
|
||||||
self._raw_event = evt
|
self._raw_event = evt
|
||||||
self.path = evt.path
|
self.path = evt.path
|
||||||
self.add_safe_pack_hook(evt._pack_hook)
|
|
||||||
self.__class__ = evt.__class__
|
self.__class__ = evt.__class__
|
||||||
evt._morph_target = True
|
evt._morph_target = True
|
||||||
|
self.add_safe_pack_hook(evt._pack_hook)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
class FakePyinotify(object):
|
class FakePyinotify(object):
|
||||||
|
|
|
@ -36,13 +36,12 @@ from media.monitor.log import Loggable, get_logger
|
||||||
# OrganizeListener('watch_signal') <= wrong
|
# OrganizeListener('watch_signal') <= wrong
|
||||||
# OrganizeListener(signal='watch_signal') <= right
|
# OrganizeListener(signal='watch_signal') <= right
|
||||||
|
|
||||||
# TODO : remove this FileMediator stuff it's not used anywhere and it's too
|
|
||||||
# complicated
|
|
||||||
class FileMediator(object):
|
class FileMediator(object):
|
||||||
|
"""
|
||||||
|
FileMediator is used an intermediate mechanism that filters out certain
|
||||||
|
events.
|
||||||
|
"""
|
||||||
ignored_set = set([]) # for paths only
|
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()
|
logger = get_logger()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -51,31 +50,10 @@ class FileMediator(object):
|
||||||
def ignore(path): FileMediator.ignored_set.add(path)
|
def ignore(path): FileMediator.ignored_set.add(path)
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def unignore(path): FileMediator.ignored_set.remove(path)
|
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 mediate_ignored(fn):
|
||||||
def wrapped(self, event, *args,**kwargs):
|
def wrapped(self, event, *args,**kwargs):
|
||||||
event.pathname = unicode(event.pathname, "utf-8")
|
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):
|
if FileMediator.is_ignored(event.pathname):
|
||||||
FileMediator.logger.info("Ignoring: '%s' (once)" % event.pathname)
|
FileMediator.logger.info("Ignoring: '%s' (once)" % event.pathname)
|
||||||
FileMediator.unignore(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.config import MMConfig
|
||||||
from media.monitor.toucher import ToucherThread
|
from media.monitor.toucher import ToucherThread
|
||||||
from media.monitor.syncdb import AirtimeDB
|
from media.monitor.syncdb import AirtimeDB
|
||||||
from media.monitor.exceptions import FailedToObtainLocale, FailedToSetLocale, \
|
from media.monitor.exceptions import FailedToObtainLocale, \
|
||||||
|
FailedToSetLocale, \
|
||||||
NoConfigFile
|
NoConfigFile
|
||||||
from media.monitor.airtime import AirtimeNotifier, AirtimeMessageReceiver
|
from media.monitor.airtime import AirtimeNotifier, \
|
||||||
|
AirtimeMessageReceiver
|
||||||
from media.monitor.watchersyncer import WatchSyncer
|
from media.monitor.watchersyncer import WatchSyncer
|
||||||
from media.monitor.eventdrainer import EventDrainer
|
from media.monitor.eventdrainer import EventDrainer
|
||||||
from media.update.replaygainupdater import ReplayGainUpdater
|
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
|
from api_clients import api_client as apc
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue