Utilities/ModuleParser.py

changeset 12
1d8dd9706f46
parent 0
de9c2efb9d02
child 13
1af94a91f439
--- a/Utilities/ModuleParser.py	Fri Jan 01 16:11:36 2010 +0000
+++ b/Utilities/ModuleParser.py	Sat Jan 02 15:11:35 2010 +0000
@@ -22,6 +22,7 @@
 import re
 
 import Utilities
+from functools import reduce
 
 __all__ = ["Module", "Class", "Function", "RbModule", "readModule"]
 
@@ -382,7 +383,7 @@
         @param name name of class to be added (string)
         @param _class Class object to be added
         """
-        if self.classes.has_key(name):
+        if name in self.classes:
             self.classes_counts[name] += 1
             name = "%s_%d" % (name, self.classes_counts[name])
         else:
@@ -396,7 +397,7 @@
         @param name name of module to be added (string)
         @param module Module object to be added
         """
-        if self.modules.has_key(name):
+        if name in self.modules:
             self.modules_counts[name] += 1
             name = "%s_%d" % (name, self.modules_counts[name])
         else:
@@ -410,7 +411,7 @@
         @param name name of function to be added (string)
         @param function Function object to be added
         """
-        if self.functions.has_key(name):
+        if name in self.functions:
             self.functions_counts[name] += 1
             name = "%s_%d" % (name, self.functions_counts[name])
         else:
@@ -608,7 +609,7 @@
                     for n in inherit.split(','):
                         n = n.strip()
                         if n:
-                            if self.classes.has_key(n):
+                            if n in self.classes:
                                 # we know this super class
                                 n = self.classes[n].name
                             else:
@@ -619,7 +620,7 @@
                                     # look in module for class
                                     m = c[-2]
                                     c = c[-1]
-                                    if _modules.has_key(m):
+                                    if m in _modules:
                                         m = _modules[m]
                                         n = m.name
                             names.append(n)
@@ -681,7 +682,7 @@
                 # from module import stuff
                 mod = m.group("ImportFromPath")
                 names = m.group("ImportFromList").split(',')
-                if not self.from_imports.has_key(mod):
+                if mod not in self.from_imports:
                     self.from_imports[mod] = []
                 for n in names:
                     n = n.strip()
@@ -820,7 +821,7 @@
                     parent_obj = classstack[-1][0]
                 else:
                     parent_obj = self
-                if parent_obj.classes.has_key(class_name):
+                if class_name in parent_obj.classes:
                     cur_class = parent_obj.classes[class_name]
                 elif classstack and \
                      isinstance(classstack[-1][0], Class) and \
@@ -850,7 +851,7 @@
                 cur_class = RbModule(self.name, module_name,
                                   self.file, lineno)
                 # add nested Ruby modules to the file
-                if self.modules.has_key(module_name):
+                if module_name in self.modules:
                     cur_class = self.modules[module_name]
                 else:
                     self.addModule(module_name, cur_class)
@@ -990,9 +991,9 @@
         @return A dictionary with inheritance hierarchies.
         """
         hierarchy =  {}
-        for cls in self.classes.keys():
+        for cls in list(list(self.classes.keys())):
             self.assembleHierarchy(cls, self.classes, [cls], hierarchy)
-        for mod in self.modules.keys():
+        for mod in list(list(self.modules.keys())):
             self.assembleHierarchy(mod, self.modules, [mod], hierarchy)
         return hierarchy
     
@@ -1012,9 +1013,9 @@
         @param result The resultant hierarchy
         """
         rv = {}
-        if classes.has_key(name):
+        if name in classes:
             for cls in classes[name].super:
-                if not classes.has_key(cls):
+                if cls not in classes:
                     rv[cls] = {}
                     exhausted = path + [cls]
                     exhausted.reverse()
@@ -1037,7 +1038,7 @@
         @param fn function to call for classe that are already part of the
             result dictionary
         """
-        if path[0] in result.keys():
+        if path[0] in list(list(result.keys())):
             if len(path) > 1:
                 fn(path[1:], result[path[0]], fn)
         else:
@@ -1306,7 +1307,7 @@
                 break
         module = os.path.basename(module)
     
-    if caching and _modules.has_key(modname):
+    if caching and modname in _modules:
         # we've seen this module before...
         return _modules[modname]
     
@@ -1336,7 +1337,7 @@
     
     mod = Module(modname, file, type)
     try:
-        src = Utilities.decode(f.read())[0]
+        src = f.read()
         mod.scan(src)
     finally:
         f.close()
@@ -1388,8 +1389,8 @@
     # standard Python module file
     if name.lower().endswith('.py'):
         name = name[:-3]
-    if type(name) == type(u""):
-        name = name.encode('utf-8')
+##    if isinstance(name, type("")):
+##        name = name.encode('utf-8')
     
     return imp.find_module(name, path)
 
@@ -1425,15 +1426,15 @@
             modname = modname[:-3]
         module = os.path.basename(module)
     
-    if _modules.has_key(modname):
+    if modname in _modules:
         del _modules[modname]
     
 if __name__ == "__main__":
     # Main program for testing.
     mod = sys.argv[1]
     module = readModule(mod)
-    for cls in module.classes.values():
-        print "--------------"
-        print cls.name
-        for meth in cls.methods.values():
-            print meth.name, meth.pyqtSignature
+    for cls in list(module.classes.values()):
+        print("--------------")
+        print(cls.name)
+        for meth in list(cls.methods.values()):
+            print(meth.name, meth.pyqtSignature)

eric ide

mercurial