[z3-checkins] r27811 - in z3/pythonproducts/trunk: . src/pythonproducts

rocky at codespeak.net rocky at codespeak.net
Sun May 28 23:58:46 CEST 2006


Author: rocky
Date: Sun May 28 23:37:55 2006
New Revision: 27811

Modified:
   z3/pythonproducts/trunk/   (props changed)
   z3/pythonproducts/trunk/src/pythonproducts/pythonproducts.py
Log:
Fixed up package loading to properly access last portion of package.


Modified: z3/pythonproducts/trunk/src/pythonproducts/pythonproducts.py
==============================================================================
--- z3/pythonproducts/trunk/src/pythonproducts/pythonproducts.py	(original)
+++ z3/pythonproducts/trunk/src/pythonproducts/pythonproducts.py	Sun May 28 23:37:55 2006
@@ -119,7 +119,13 @@
     for product_id in products.objectIds():
         product = products[product_id]
         if hasattr(product, 'package_name'):
-            packages[product_id] = __import__(product.package_name)
+            pos = product.package_name.rfind('.')
+            if pos > -1:
+                packages[product_id] = __import__(product.package_name, 
+                                                  globals(), {}, 
+                                                  product.package_name[pos+1:])
+            else:
+                packages[product_id] = __import__(product.package_name)
         elif old_product_packages.has_key(product_id):
             packages[product_id] = old_product_packages[product_id]
     
@@ -173,12 +179,16 @@
             return result
 
         try:
-            l = name.find('.')
+            l = name.rfind('.')
             if l > 0:
                 realName = name[l + 1:]
                 toplevel = name[:l]
                 
-                m = __import__(toplevel)
+                pos = toplevel.rfind('.')
+                if pos > -1:
+                    m = __import__(toplevel, globals(), {}, toplevel[pos+1:])
+                else:
+                    m = __import__(toplevel)
         
                 d = os.path.join(m.__path__[0], prefix, realName)
                 for s in suffixes:


More information about the z3-checkins mailing list