37 lines
896 B
Python
37 lines
896 B
Python
"""
|
|
pyexcel.internal.plugins
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
Renderer and parser plugin manager
|
|
|
|
:copyright: (c) 2015-2025 by Onni Software Ltd.
|
|
:license: New BSD License
|
|
"""
|
|
|
|
from lml.plugin import PluginManager
|
|
|
|
|
|
class IOPluginManager(PluginManager):
|
|
"""Generic plugin manager for renderer and parser"""
|
|
|
|
def __init__(self, name):
|
|
PluginManager.__init__(self, name)
|
|
|
|
def get_a_plugin(self, key, library=None):
|
|
"""get a plugin to handle the file type"""
|
|
__file_type = None
|
|
if key:
|
|
__file_type = key.lower()
|
|
plugin_cls = self.load_me_now(__file_type, library=library)
|
|
|
|
return plugin_cls(__file_type)
|
|
|
|
def get_all_file_types(self):
|
|
"""get all supported file types"""
|
|
file_types = list(self.registry.keys())
|
|
return file_types
|
|
|
|
|
|
RENDERER = IOPluginManager("renderer")
|
|
PARSER = IOPluginManager("parser")
|