Skip to content

Instantly share code, notes, and snippets.

View bebraw's full-sized avatar

Juho Vepsäläinen bebraw

View GitHub Profile
class PluginLoader:
def load(self, directory):
ret = []
for plugin in directory.children:
plugin_file = plugin.children.find(name=plugin.name)
plugin_class = plugin_file.classes[plugin.name]
ret.append(plugin_class)
import imp
import inspect
import os
import tempfile
content = 'def func_name(a, b, c): pass'
# generate tmp file containing py code to load
# http://docs.python.org/library/tempfile.html#tempfile.mktemp
temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.py')
import inspect
import imp
import os
import tempfile
class File:
def __init__(self, path=None):
self.classes = {}
import inspect
import imp
import os
import tempfile
from node import TreeNode
class File(TreeNode):
def __init__(self, path=None):
super(File, self).__init__()
from file import PluginDirectory
from interpreter import Interpreter
from plugin_loader import PluginLoader
class Application:
def run(self):
plugin_loader = PluginLoader()
plugin_directory = PluginDirectory()
commands = plugin_loader.load(plugin_directory)
import inspect
import imp
import os
import tempfile
from node import TreeNode
class File(TreeNode):
def __init__(self, path=None):
super(File, self).__init__()
import inspect
import imp
import os
from node import TreeNode
class File(TreeNode):
def __init__(self, path=None):
super(File, self).__init__()
class PluginLoader:
def load(self, directory):
ret = []
for plugin in directory.children:
plugin_file = plugin.find(name=plugin.name, type='py')
plugin_class = plugin_file.classes[plugin.name]
ret.append(plugin_class)
import os.path
import inspect
import imp
import os
from node import TreeNode
class File(TreeNode):
def __init__(self, path=None, name=None):
super(File, self).__init__()
class PluginLoader:
def load(self, directory):
ret = []
for plugin in directory.children:
plugin_file = plugin.find(name=plugin.name, type='py')
plugin_class = plugin_file.classes[plugin.name]
if not hasattr(plugin_class, 'matches'):