Browse Source

Support __file__ in pdef file for convenience

David Rose 14 years ago
parent
commit
abb7a76368
2 changed files with 9 additions and 3 deletions
  1. 1 0
      direct/src/p3d/Packager.py
  2. 8 3
      direct/src/p3d/thirdparty.pdef

+ 1 - 0
direct/src/p3d/Packager.py

@@ -2562,6 +2562,7 @@ class Packager:
         globals = {}
         globals = {}
         globals['__name__'] = packageDef.getBasenameWoExtension()
         globals['__name__'] = packageDef.getBasenameWoExtension()
         globals['__dir__'] = Filename(packageDef.getDirname()).toOsSpecific()
         globals['__dir__'] = Filename(packageDef.getDirname()).toOsSpecific()
+        globals['__file__'] = packageDef.toOsSpecific()
         globals['packageDef'] = packageDef
         globals['packageDef'] = packageDef
 
 
         globals['platform'] = self.platform
         globals['platform'] = self.platform

+ 8 - 3
direct/src/p3d/thirdparty.pdef

@@ -38,9 +38,14 @@ class tk(package):
            'direct.tkpanels',
            'direct.tkpanels',
            'direct.tkwidgets')
            'direct.tkwidgets')
 
 
-    # Hack because Pmw uses weird import stuff
-    import Pmw
-    module('Pmw', 'Pmw.*')
+    # Hack because Pmw uses weird import stuff.
+    try:
+        import Pmw
+    except ImportError:
+        # Don't fail if Pmw isn't installed.
+        Pmw = None
+    if Pmw:
+        module('Pmw', 'Pmw.*')
 
 
 class sqlite(package):
 class sqlite(package):
     config(display_name = "SQLite Interface")
     config(display_name = "SQLite Interface")