General cleanup in the plugin manager.
svn: r10638
This commit is contained in:
parent
5218afd3ab
commit
141c38cde3
@ -94,8 +94,6 @@ def load_plugins(direct):
|
||||
successfully loads, it is added to the success_list list. Each plugin is
|
||||
responsible for registering itself in the correct manner. No attempt
|
||||
is done in this routine to register the tasks. Returns True on error. """
|
||||
|
||||
global success_list, attempt_list, loaddir_list, failmsg_list
|
||||
|
||||
# if the directory does not exist, do nothing
|
||||
if not os.path.isdir(direct):
|
||||
@ -125,10 +123,10 @@ def load_plugins(direct):
|
||||
attempt_list.append(filename)
|
||||
plugin = match.groups()[0]
|
||||
try:
|
||||
a = __import__(plugin)
|
||||
success_list.append((filename,a))
|
||||
_module = __import__(plugin)
|
||||
success_list.append((filename, _module))
|
||||
except:
|
||||
failmsg_list.append((filename,sys.exc_info()))
|
||||
failmsg_list.append((filename, sys.exc_info()))
|
||||
|
||||
return len(failmsg_list) != 0 # return True if there are errors
|
||||
|
||||
@ -139,7 +137,7 @@ def load_plugins(direct):
|
||||
#-------------------------------------------------------------------------
|
||||
def reload_plugins():
|
||||
""" Reload previously loaded plugins """
|
||||
global success_list, attempt_list, loaddir_list, failmsg_list
|
||||
global failmsg_list
|
||||
|
||||
pymod = re.compile(r"^(.*)\.py$")
|
||||
|
||||
@ -172,9 +170,9 @@ def reload_plugins():
|
||||
# For some strange reason second importing of a failed plugin
|
||||
# results in success. Then reload reveals the actual error.
|
||||
# Looks like a bug in Python.
|
||||
a = __import__(plugin)
|
||||
reload(a)
|
||||
success_list.append((filename, a))
|
||||
_module = __import__(plugin)
|
||||
reload(_module)
|
||||
success_list.append((filename, _module))
|
||||
except:
|
||||
failmsg_list.append((filename, sys.exc_info()))
|
||||
|
||||
@ -190,10 +188,10 @@ def reload_plugins():
|
||||
attempt_list.append(filename)
|
||||
plugin = match.groups()[0]
|
||||
try:
|
||||
a = __import__(plugin)
|
||||
if a not in [plugin[1]
|
||||
_module = __import__(plugin)
|
||||
if _module not in [plugin[1]
|
||||
for plugin in success_list]:
|
||||
success_list.append((filename, a))
|
||||
success_list.append((filename, _module))
|
||||
except:
|
||||
failmsg_list.append((filename, sys.exc_info()))
|
||||
|
||||
@ -202,7 +200,8 @@ def reload_plugins():
|
||||
# Plugin registering
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def register_export(exportData, title, description='', config=None, filename=''):
|
||||
def register_export(exportData, title, description='', config=None,
|
||||
filename=''):
|
||||
"""
|
||||
Register an export filter, taking the task, file filter,
|
||||
and the list of patterns for the filename matching.
|
||||
@ -261,19 +260,19 @@ def register_tool(
|
||||
|
||||
import _Tool
|
||||
|
||||
(junk,gui_task) = divmod(modes,2**_Tool.MODE_GUI)
|
||||
(junk, gui_task) = divmod(modes, 2**_Tool.MODE_GUI)
|
||||
if gui_task:
|
||||
_register_gui_tool(tool_class, options_class,translated_name,
|
||||
name,category,description,
|
||||
status,author_name,author_email,unsupported,
|
||||
_register_gui_tool(tool_class, options_class, translated_name,
|
||||
name, category, description,
|
||||
status, author_name, author_email, unsupported,
|
||||
require_active)
|
||||
|
||||
(junk,cli_task) = divmod(modes-gui_task,2**_Tool.MODE_CLI)
|
||||
(junk, cli_task) = divmod(modes-gui_task, 2**_Tool.MODE_CLI)
|
||||
if cli_task:
|
||||
_register_cli_tool(name,category,tool_class, options_class,
|
||||
translated_name,unsupported)
|
||||
_register_cli_tool(name, category, tool_class, options_class,
|
||||
translated_name, unsupported)
|
||||
|
||||
def _register_gui_tool(tool_class, options_class,translated_name,
|
||||
def _register_gui_tool(tool_class, options_class, translated_name,
|
||||
name,category,
|
||||
description=_unavailable,
|
||||
status=_("Unknown"),
|
||||
@ -282,28 +281,28 @@ def _register_gui_tool(tool_class, options_class,translated_name,
|
||||
unsupported=False,
|
||||
require_active=True):
|
||||
del_index = -1
|
||||
for i in range(0,len(tool_list)):
|
||||
for i in range(0, len(tool_list)):
|
||||
val = tool_list[i]
|
||||
if val[4] == name:
|
||||
del_index = i
|
||||
if del_index != -1:
|
||||
del tool_list[del_index]
|
||||
mod2text[tool_class.__module__] = description
|
||||
tool_list.append((tool_class, options_class,translated_name,
|
||||
category, name,description,status,
|
||||
author_name,author_email,unsupported, require_active))
|
||||
tool_list.append((tool_class, options_class, translated_name,
|
||||
category, name, description, status,
|
||||
author_name, author_email, unsupported, require_active))
|
||||
|
||||
def _register_cli_tool(name,category,tool_class, options_class,
|
||||
translated_name,unsupported=False):
|
||||
def _register_cli_tool(name, category, tool_class, options_class,
|
||||
translated_name, unsupported=False):
|
||||
del_index = -1
|
||||
for i in range(0,len(cli_tool_list)):
|
||||
for i in range(0, len(cli_tool_list)):
|
||||
val = cli_tool_list[i]
|
||||
if val[0] == name:
|
||||
del_index = i
|
||||
if del_index != -1:
|
||||
del cli_tool_list[del_index]
|
||||
cli_tool_list.append((name,category,tool_class, options_class,
|
||||
translated_name,unsupported, None))
|
||||
cli_tool_list.append((name, category, tool_class, options_class,
|
||||
translated_name, unsupported, None))
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -332,25 +331,25 @@ def register_report(
|
||||
The low-level functions (starting with '_') should not be used
|
||||
on their own. Instead, this function will call them as needed.
|
||||
"""
|
||||
(junk,standalone_task) = divmod(modes,2**MODE_GUI)
|
||||
(junk, standalone_task) = divmod(modes, 2**MODE_GUI)
|
||||
if standalone_task:
|
||||
_register_standalone(report_class, options_class,translated_name,
|
||||
name,category,description,
|
||||
status,author_name,author_email,unsupported,
|
||||
_register_standalone(report_class, options_class, translated_name,
|
||||
name, category, description,
|
||||
status, author_name, author_email, unsupported,
|
||||
require_active)
|
||||
|
||||
(junk,book_item_task) = divmod(modes-standalone_task,2**MODE_BKI)
|
||||
(junk, book_item_task) = divmod(modes-standalone_task, 2**MODE_BKI)
|
||||
if book_item_task:
|
||||
book_item_category = book_categories[category]
|
||||
register_book_item(translated_name,book_item_category,
|
||||
report_class, options_class, name,unsupported,
|
||||
register_book_item(translated_name, book_item_category,
|
||||
report_class, options_class, name, unsupported,
|
||||
require_active)
|
||||
|
||||
(junk,command_line_task) = divmod(modes-standalone_task-book_item_task,
|
||||
(junk, command_line_task) = divmod(modes-standalone_task-book_item_task,
|
||||
2**MODE_CLI)
|
||||
if command_line_task:
|
||||
_register_cl_report(name,category,report_class, options_class,
|
||||
translated_name,unsupported, require_active)
|
||||
_register_cl_report(name, category, report_class, options_class,
|
||||
translated_name, unsupported, require_active)
|
||||
|
||||
def _register_standalone(report_class, options_class, translated_name, name,
|
||||
category, description=_unavailable,
|
||||
@ -360,7 +359,7 @@ def _register_standalone(report_class, options_class, translated_name, name,
|
||||
"""Register a report with the plugin system."""
|
||||
|
||||
del_index = -1
|
||||
for i in range(0,len(report_list)):
|
||||
for i in range(0, len(report_list)):
|
||||
val = report_list[i]
|
||||
if val[4] == name:
|
||||
del_index = i
|
||||
@ -377,7 +376,7 @@ def register_book_item(translated_name, category, report_class,
|
||||
"""Register a book item."""
|
||||
|
||||
del_index = -1
|
||||
for i in range(0,len(bkitems_list)):
|
||||
for i in range(0, len(bkitems_list)):
|
||||
val = bkitems_list[i]
|
||||
if val[4] == name:
|
||||
del_index = i
|
||||
@ -390,7 +389,7 @@ def register_book_item(translated_name, category, report_class,
|
||||
def _register_cl_report(name, category, report_class, options_class,
|
||||
translated_name, unsupported, require_active):
|
||||
del_index = -1
|
||||
for i in range(0,len(cl_list)):
|
||||
for i in range(0, len(cl_list)):
|
||||
val = cl_list[i]
|
||||
if val[0] == name:
|
||||
del_index = i
|
||||
@ -404,11 +403,11 @@ def _register_cl_report(name, category, report_class, options_class,
|
||||
# Text document generator registration
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def register_text_doc(name,classref, table, paper, style, ext,
|
||||
def register_text_doc(name, classref, table, paper, style, ext,
|
||||
print_report_label=None, clname=''):
|
||||
"""Register a text document generator."""
|
||||
del_index = -1
|
||||
for i in range(0,len(textdoc_list)):
|
||||
for i in range(0, len(textdoc_list)):
|
||||
val = textdoc_list[i]
|
||||
if val[0] == name:
|
||||
del_index = i
|
||||
@ -428,11 +427,11 @@ def register_text_doc(name,classref, table, paper, style, ext,
|
||||
# Book document generator registration
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def register_book_doc(name,classref, table, paper, style, ext,
|
||||
def register_book_doc(name, classref, table, paper, style, ext,
|
||||
print_report_label=None, clname=''):
|
||||
"""Register a text document generator"""
|
||||
del_index = -1
|
||||
for i in range(0,len(bookdoc_list)):
|
||||
for i in range(0, len(bookdoc_list)):
|
||||
val = bookdoc_list[i]
|
||||
if val[0] == name:
|
||||
del_index = i
|
||||
@ -441,19 +440,19 @@ def register_book_doc(name,classref, table, paper, style, ext,
|
||||
|
||||
if not clname:
|
||||
clname = ext[1:]
|
||||
bookdoc_list.append((name,classref,table,paper,style,ext,
|
||||
print_report_label,clname))
|
||||
bookdoc_list.append((name, classref, table, paper, style, ext,
|
||||
print_report_label, clname))
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Drawing document generator registration
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
def register_draw_doc(name,classref,paper,style, ext,
|
||||
print_report_label=None,clname=''):
|
||||
def register_draw_doc(name, classref, paper, style, ext,
|
||||
print_report_label=None, clname=''):
|
||||
"""Register a drawing document generator"""
|
||||
del_index = -1
|
||||
for i in range(0,len(drawdoc_list)):
|
||||
for i in range(0, len(drawdoc_list)):
|
||||
val = drawdoc_list[i]
|
||||
if val[0] == name:
|
||||
del_index = i
|
||||
@ -461,7 +460,7 @@ def register_draw_doc(name,classref,paper,style, ext,
|
||||
del drawdoc_list[del_index]
|
||||
if not clname:
|
||||
clname = ext[1:]
|
||||
drawdoc_list.append((name, classref, paper,style, ext,
|
||||
drawdoc_list.append((name, classref, paper, style, ext,
|
||||
print_report_label, clname))
|
||||
mod2text[classref.__module__] = name
|
||||
|
||||
@ -490,11 +489,8 @@ def register_quick_report(
|
||||
The low-level functions (starting with '_') should not be used
|
||||
on their own. Instead, this function will call them as needed.
|
||||
"""
|
||||
"""Register a report with the plugin system"""
|
||||
global quick_report_list
|
||||
|
||||
del_index = -1
|
||||
for i in range(0,len(quick_report_list)):
|
||||
for i in range(0, len(quick_report_list)):
|
||||
val = quick_report_list[i]
|
||||
if val[3] == name:
|
||||
del_index = i
|
||||
@ -520,7 +516,7 @@ def purge_failed():
|
||||
|
||||
failed_module_names = [
|
||||
os.path.splitext(os.path.basename(filename))[0]
|
||||
for filename,junk in failmsg_list
|
||||
for filename, junk in failmsg_list
|
||||
]
|
||||
|
||||
#although these are global variables, we may not change the pointer of
|
||||
@ -567,16 +563,3 @@ def register_relcalc(relclass, languages):
|
||||
def relationship_class():
|
||||
global _relcalc_class
|
||||
return _relcalc_class()
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Image attributes
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
_image_attributes = []
|
||||
def register_image_attribute(name):
|
||||
if name not in _image_attributes:
|
||||
_image_attributes.append(name)
|
||||
|
||||
def get_image_attributes():
|
||||
return _image_attributes
|
||||
|
Loading…
Reference in New Issue
Block a user