# License: wxWindows License
#----------------------------------------------------------------------------
-import logging
-import cStringIO
import traceback
import sys
-import string
import os
-def classForName(className):
- pathList = className.split('.')
- moduleName = string.join(pathList[:-1], '.')
- code = __import__(moduleName)
- for name in pathList[1:]:
- code = code.__dict__[name]
- return code
-
-def hasattrignorecase(object, name):
- for attr in dir(object):
- if attr.lower() == name.lower():
- return True
- for attr in dir(object):
- if attr.lower() == '_' + name.lower():
- return True
- return False
-
-
-def setattrignorecase(object, name, value):
- for attr in object.__dict__:
- if attr.lower() == name.lower():
- object.__dict__[attr] = value
- return
-## for attr in dir(object):
-## if attr.lower() == '_' + name.lower():
-## object.__dict__[attr] = value
-## return
- object.__dict__[name] = value
-
-def getattrignorecase(object, name):
- for attr in object.__dict__:
- if attr.lower() == name.lower():
- return object.__dict__[attr]
-## for attr in dir(object):
-## if attr.lower() == '_' + name.lower():
-## return object.__dict__[attr]
- return object.__dict__[name]
-
-
-def defaultLoad(fileObject, knownTypes=None):
- xml = fileObject.read()
- loadedObject = xmlmarshaller.unmarshal(xml, knownTypes=knownTypes)
- if hasattr(fileObject, 'name'):
- loadedObject.fileName = os.path.abspath(fileObject.name)
- loadedObject.initialize()
- return loadedObject
-
-def defaultSave(fileObject, objectToSave, knownTypes=None):
- xml = xmlmarshaller.marshal(objectToSave, prettyPrint=True, knownTypes=knownTypes)
- fileObject.write(xml)
- fileObject.close()
-
-def clone(objectToClone):
- xml = xmlmarshaller.marshal(objectToClone, prettyPrint=True)
- clonedObject = xmlmarshaller.unmarshal(xml)
- if hasattr(objectToClone, 'fileName'):
- clonedObject.fileName = objectToClone.fileName
- clonedObject.initialize()
- return clonedObject
-
-def exceptionToString(e):
- sio = cStringIO.StringIO()
- traceback.print_exception(e.__class__, e, sys.exc_traceback, file=sio)
- return sio.getvalue()
+def _registerMainModuleDir():
+ global mainModuleDir
+ if sys.executable.find('python') != -1:
+ utilModuleDir = os.path.dirname(__file__)
+ if not os.path.isabs(utilModuleDir):
+ utilModuleDir = os.path.join(os.getcwd(), utilModuleDir)
+ mainModuleDir = os.path.normpath(os.path.join(utilModuleDir, os.path.join(os.path.pardir, os.path.pardir)))
+ else:
+ mainModuleDir = os.path.dirname(sys.executable)
+
+_registerMainModuleDir()