Rename all modules to comply with PEP8

Lowercase with underscores
This commit is contained in:
Ben
2019-05-16 16:34:16 +01:00
parent 5a77c09ac7
commit 75c05604d9
59 changed files with 116 additions and 100 deletions

View File

@@ -0,0 +1,38 @@
import os
import copy
def evaluate_handler_file_event(handler_file_event):
# Ignore all directory events
if handler_file_event.is_directory:
return False
handler_module_path = handler_file_event.src_path[2:]
# Ignore non-Python files
if handler_module_path[-3:] != ".py":
return False
handler_module = handler_module_path.replace(os.path.sep, ".")[:-3]
return handler_module_path, handler_module
def evaluate_plugin_file_event(plugin_file_event):
# Ignore all directory events
if plugin_file_event.is_directory:
return False
handler_module_path = plugin_file_event.src_path[2:]
# Ignore non-Python files
if handler_module_path[-3:] != ".py":
return False
# Remove file extension and replace path separator with dots. Then make like a banana.. and split.
handler_module_tokens = handler_module_path.replace(os.path.sep, ".")[:-3].split(".")
if handler_module_tokens.pop() == "__init__":
return handler_module_path, ".".join(handler_module_tokens)
return False

View File

@@ -0,0 +1,81 @@
import sys
import importlib
import copy
from watchdog.events import FileSystemEventHandler
from houdini.handlers import listeners_from_module, remove_handlers_by_module
from houdini.events import evaluate_handler_file_event
class HandlerFileEventHandler(FileSystemEventHandler):
def __init__(self, server):
self.logger = server.logger
self.server = server
def on_created(self, event):
handler_module_details = evaluate_handler_file_event(event)
if not handler_module_details:
return
handler_module_path, handler_module = handler_module_details
if '__init__.py' in handler_module_path:
return
self.logger.debug('New handler module detected %s', handler_module)
try:
module = importlib.import_module(handler_module)
listeners_from_module(self.server.xt_listeners, self.server.xml_listeners, module)
except Exception as import_error:
self.logger.error('%s detected in %s, not importing.', import_error.__class__.__name__, handler_module)
def on_deleted(self, event):
handler_module_details = evaluate_handler_file_event(event)
if not handler_module_details:
return
handler_module_path, handler_module = handler_module_details
if handler_module not in sys.modules:
return
self.logger.debug('Deleting listeners registered by %s...', handler_module)
remove_handlers_by_module(self.server.xt_listeners, self.server.xml_listeners, handler_module_path)
def on_modified(self, event):
handler_module_details = evaluate_handler_file_event(event)
if not handler_module_details:
return
handler_module_path, handler_module = handler_module_details
if handler_module not in sys.modules:
return False
self.logger.info('Reloading %s', handler_module)
xt_listeners, xml_listeners = copy.copy(self.server.xt_listeners), copy.copy(self.server.xml_listeners)
remove_handlers_by_module(self.server.xt_listeners, self.server.xml_listeners, handler_module_path)
handler_module_object = sys.modules[handler_module]
try:
module = importlib.reload(handler_module_object)
listeners_from_module(self.server.xt_listeners, self.server.xml_listeners, module)
self.logger.info('Successfully reloaded %s!', handler_module)
except Exception as rebuild_error:
self.logger.error('%s detected in %s, not reloading.', rebuild_error.__class__.__name__, handler_module)
self.logger.info('Restoring handler references...')
self.server.xt_listeners = xt_listeners
self.server.xml_listeners = xml_listeners
self.logger.info('Handler references restored. Phew!')

View File

@@ -0,0 +1,86 @@
import sys
import importlib
import os.path
import copy
import asyncio
from watchdog.events import FileSystemEventHandler
from houdini.events import evaluate_handler_file_event
class PluginFileEventHandler(FileSystemEventHandler):
def __init__(self, server):
self.logger = server.logger
self.server = server
def on_created(self, event):
plugin_module_details = evaluate_handler_file_event(event)
if not plugin_module_details:
return
plugin_module_path, plugin_module = plugin_module_details
self.logger.debug('New handler module detected %s', plugin_module)
try:
plugin_module_object = importlib.import_module(plugin_module)
plugin_class = plugin_module_object.__name__.split(".")[2]
asyncio.run(self.server.load_plugin((plugin_module_object, plugin_class)))
self.logger.info('New plugin \'%s\' has been loaded.' % plugin_class)
except Exception as import_error:
self.logger.error('%s detected in %s, not importing.', import_error.__class__.__name__, plugin_module)
def on_deleted(self, event):
plugin_module_path = event.src_path[2:]
plugin_module = plugin_module_path.replace(os.path.pathsep, ".")
if plugin_module not in sys.modules:
return
self.logger.debug('Deleting listeners registered by %s.', plugin_module)
plugin_module_object = sys.modules[plugin_module]
plugin_class = plugin_module_object.__name__.split(".")[2]
self.server.unload_plugin((plugin_module_object, plugin_class))
def on_modified(self, event):
plugin_module_details = evaluate_handler_file_event(event)
if not plugin_module_details:
return
plugin_module_path, plugin_module = plugin_module_details
if plugin_module not in sys.modules:
return
self.logger.info('Reloading %s', plugin_module)
plugin_module_object = sys.modules[plugin_module]
plugin_class = plugin_module_object.__name__.split(".")[2]
xt_listeners, xml_listeners = copy.copy(self.server.xt_listeners), copy.copy(self.server.xml_listeners)
self.server.unload_plugin((plugin_module_object, plugin_class))
try:
new_plugin_module = importlib.reload(plugin_module_object)
asyncio.run(self.server.load_plugin((new_plugin_module, plugin_class)))
self.logger.info('Successfully reloaded %s!', plugin_module)
except LookupError as lookup_error:
self.logger.warn('Did not reload plugin \'%s\': %s.', plugin_class, lookup_error)
except Exception as rebuild_error:
self.logger.error('%s detected in %s, not reloading.', rebuild_error.__class__.__name__, plugin_module)
self.logger.info('Restoring handler references...')
self.server.xt_handlers = xt_listeners
self.server.xml_handlers = xml_listeners
self.logger.info('Restored handler references. Phew!')