コード例 #1
0
    def test_project_dfs_files(self):
        class TestFileDfsHandler(Project.FileDfsHandler):
            def __init__(self):
                super(TestFileDfsHandler, self).__init__()
                self.files = []
                self.dir_xml = ''

            def handle_file(self, path):
                self.files.append(path)

            def normalize_path(self, path):
                return path.replace('/', '.').replace('\\', '.')

            def enter_dir(self, path):
                self.dir_xml += u'<{0}>'.format(self.normalize_path(path))

            def exit_dir(self, path):
                self.dir_xml += u'</{0}>'.format(self.normalize_path(path))

        tests_path = os.path.abspath(os.path.dirname(__file__))
        p = Project(tests_path)
        p.ignored_dirs.append('__pycache__')
        p.ignored_dirs.append('data/android')
        hnd = TestFileDfsHandler()
        p.dfs_files(hnd)
        self.assertGreaterEqual(len(hnd.files), 11)  # counting possible pyc/... files
        self.assertIn('model_test.py', hnd.files)
        for i in range(1, 7):
            self.assertIn('data/java/sample_sources/{0}.java'.format(i), hnd.files)
        DIRS = u'<><data><data.java><data.java.sample_sources></data.java.sample_sources></data.java></data></>'
        self.assertEqual(hnd.dir_xml, DIRS)
コード例 #2
0
from inspector.analyzer.project_analyzer import LocCounter, LocCounter2
from inspector.models.base import Project
from inspector.utils.strings import render_template

if __name__ == '__main__':
    if len(sys.argv) == 3:
        project_dir = sys.argv[1]
        plot_type = sys.argv[2]
    else:
        if len(sys.argv) > 1:
            print 'Invalid arguments!'
        project_dir = str(raw_input('Please enter project path: '))
        plot_type = str(raw_input('Please select output format [pie/tree]: '))

    current_dir = os.path.abspath(os.path.dirname(__file__))
    p = Project(project_dir)
    p.ignored_dirs = [
        '.git', '.settings', '.idea', '.classpath', 'bin', 'media/uploads',
        'media/serve', 'lib/debug_toolbar', 'static/tiny_mce',
        'static/js/tiny_mce', 'static/admin'
    ]

    params = {
        'width': 600,
        'height': 600,
        'pname': p.name,
        'data': '{}',
    }

    if plot_type == 'pie':
        hnd = LocCounter2()
コード例 #3
0
from inspector.models.base import Project
from inspector.utils.strings import render_template


if __name__ == "__main__":
    if len(sys.argv) == 3:
        project_dir = sys.argv[1]
        plot_type = sys.argv[2]
    else:
        if len(sys.argv) > 1:
            print "Invalid arguments!"
        project_dir = str(raw_input("Please enter project path: "))
        plot_type = str(raw_input("Please select output format [pie/tree]: "))

    current_dir = os.path.abspath(os.path.dirname(__file__))
    p = Project(project_dir)
    p.ignored_dirs = [
        ".git",
        ".settings",
        ".idea",
        ".classpath",
        "bin",
        "media/uploads",
        "media/serve",
        "lib/debug_toolbar",
        "static/tiny_mce",
        "static/js/tiny_mce",
        "static/admin",
    ]

    params = {"width": 600, "height": 600, "pname": p.name, "data": "{}"}
コード例 #4
0
if __name__ == '__main__':
    # configs
    PROJECTS_PATH = '/data/code/android'
    projects = [
        'github-android', 'linphone-android', 'vlc/vlc-android',
        'mytracks/MyTracks'
    ]
    exts = ['java', 'xml', 'c']

    for project_dir in projects:
        project_dir = os.path.join(PROJECTS_PATH, project_dir)
        print '========================='
        print ' Project Analysis Report '
        print '========================='
        print '  path:', project_dir
        p = Project(project_dir)
        p.rescan_files()
        print '  Total number of files:', len(p._files)
        print '  File type breakdown:'
        TR = len(p._files) / 10
        for ext in p.file_extensions:
            files = p.filter_files(extension=ext)
            ext_name = ext if ext else '""'
            loc = 0
            if ext in exts:
                for f in files:
                    loc += p.get_file(f).lines_count
            if loc or len(files) >= TR:
                print '   ', ext_name, '  \t', len(
                    files), ' \t', loc if loc else 'N/A'
        print ""
コード例 #5
0
from inspector.models.base import Project

if __name__ == "__main__":
    # configs
    PROJECTS_PATH = "/data/code/android"
    projects = ["github-android", "linphone-android", "vlc/vlc-android", "mytracks/MyTracks"]
    exts = ["java", "xml", "c"]

    for project_dir in projects:
        project_dir = os.path.join(PROJECTS_PATH, project_dir)
        print "========================="
        print " Project Analysis Report "
        print "========================="
        print "  path:", project_dir
        p = Project(project_dir)
        p.rescan_files()
        print "  Total number of files:", len(p._files)
        print "  File type breakdown:"
        TR = len(p._files) / 10
        for ext in p.file_extensions:
            files = p.filter_files(extension=ext)
            ext_name = ext if ext else '""'
            loc = 0
            if ext in exts:
                for f in files:
                    loc += p.get_file(f).lines_count
            if loc or len(files) >= TR:
                print "   ", ext_name, "  \t", len(files), " \t", loc if loc else "N/A"
        print ""