[code.view]

[top] / python / PyMOTW / pyclbr / pyclbr_readmodule.py

     #!/usr/bin/env python
     # encoding: utf-8
     #
     # Copyright (c) 2009 Doug Hellmann All rights reserved.
     #
     """
     """
     #end_pymotw_header
     import pyclbr
     import os
     from operator import itemgetter
     
     def show_class(name, class_data):
         print 'Class:', name
         print '\tFile: {0} [{1}]'.format(os.path.basename(class_data.file), class_data.lineno)
         show_super_classes(name, class_data)
         show_methods(name, class_data)
         print
         return
     
     def show_methods(class_name, class_data):
         for name, lineno in sorted(class_data.methods.items(), key=itemgetter(1)):
             print '\tMethod: {0} [{1}]'.format(name, lineno)
         return
     
     def show_super_classes(name, class_data):
         super_class_names = []
         for super_class in class_data.super:
             if super_class == 'object':
                 continue
             if isinstance(super_class, basestring):
                 super_class_names.append(super_class)
             else:
                 super_class_names.append(super_class.name)
         if super_class_names:
             print '\tSuper classes:', super_class_names
         return
     
     example_data = pyclbr.readmodule('pyclbr_example')
     
     for name, class_data in sorted(example_data.items(), key=lambda x:x[1].lineno):
         show_class(name, class_data)
     

[top] / python / PyMOTW / pyclbr / pyclbr_readmodule.py

contact | logmethods.com