Move 'plugin loader' to Utils file so HUD and Importer can share

This commit is contained in:
Worros 2009-03-14 03:10:53 +09:00
parent f4e3c8de28
commit 321e38a16f
2 changed files with 32 additions and 11 deletions

View File

@ -44,15 +44,7 @@ import Stats
import Mucked import Mucked
import Database import Database
import HUD_main import HUD_main
import Utils
def importName(module_name, name):
"""Import a named object 'name' from module 'module_name'."""
# Recipe 16.3 in the Python Cookbook, 2nd ed. Thanks!!!!
try:
module = __import__(module_name, globals(), locals(), [name])
except:
return None
return(getattr(module, name))
class Hud: class Hud:
@ -88,7 +80,7 @@ class Hud:
if not game_params['aux'] == [""]: if not game_params['aux'] == [""]:
for aux in game_params['aux']: for aux in game_params['aux']:
aux_params = config.get_aux_parameters(aux) aux_params = config.get_aux_parameters(aux)
my_import = importName(aux_params['module'], aux_params['class']) my_import = Utils.importName(aux_params['module'], aux_params['class'])
if my_import == None: if my_import == None:
continue continue
self.aux_windows.append(my_import(self, config, aux_params)) self.aux_windows.append(my_import(self, config, aux_params))

29
pyfpdb/Utils.py Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright 2009, Carl Gherardi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
########################################################################
def importName(module_name, name):
"""Import a named object 'name' from module 'module_name'."""
# Recipe 16.3 in the Python Cookbook, 2nd ed. Thanks!!!!
try:
module = __import__(module_name, globals(), locals(), [name])
except:
return None
return(getattr(module, name))