Beispiel #1
0
def print_code_statistics():
    '''Print # lines of code, # modules, etc to console
    
    This is the official source of code statistics for things like grants.
    '''
    from cellprofiler.modules import builtin_modules, all_modules, instantiate_module
    import subprocess
    print "\n\n\n**** CellProfiler code statistics ****"
    print "# of built-in modules: %d" % len(builtin_modules)
    setting_count = 0
    for module in all_modules.values():
        if module.__module__.find(".") < 0:
            continue
        mn = module.__module__.rsplit(".", 1)[1]
        if mn not in builtin_modules:
            continue
        module_instance = instantiate_module(module.module_name)
        setting_count += len(module_instance.help_settings())
    print "# of settings: %d" % setting_count
    filelist = subprocess.Popen(
        ["git", "ls-files"],
        stdout=subprocess.PIPE).communicate()[0].split("\n")
    linecount = 0
    for filename in filelist:
        if (os.path.exists(filename) and any(
            [filename.endswith(x) for x in ".py", ".c", ".pyx", ".java"])):
            with open(filename, "r") as fd:
                linecount += len(fd.readlines())
Beispiel #2
0
def print_code_statistics():
    '''Print # lines of code, # modules, etc to console
    
    This is the official source of code statistics for things like grants.
    '''
    from cellprofiler.modules import builtin_modules, all_modules, instantiate_module
    import subprocess
    print "\n\n\n**** CellProfiler code statistics ****"
    print "# of built-in modules: %d" % len(builtin_modules)
    setting_count = 0
    for module in all_modules.values():
        if module.__module__.find(".") < 0:
            continue
        mn = module.__module__.rsplit(".", 1)[1]
        if mn not in builtin_modules:
            continue
        module_instance = instantiate_module(module.module_name)
        setting_count += len(module_instance.help_settings())
    print "# of settings: %d" % setting_count
    filelist = subprocess.Popen(["git", "ls-files"], stdout=subprocess.PIPE).communicate()[0].split("\n")
    linecount = 0
    for filename in filelist:
        if (os.path.exists(filename) and 
            any([filename.endswith(x) for x in ".py", ".c", ".pyx", ".java"])):
            with open(filename, "r") as fd:
                linecount += len(fd.readlines())
Beispiel #3
0
def print_code_statistics():
    """Print # lines of code, # modules, etc to console
    
    This is the official source of code statistics for things like grants.
    """
    from cellprofiler.modules import builtin_modules, all_modules, instantiate_module
    import subprocess

    print "\n\n\n**** CellProfiler code statistics ****"
    print "# of built-in modules: %d" % len(builtin_modules)
    setting_count = 0
    for module in all_modules.values():
        if module.__module__.find(".") < 0:
            continue
        mn = module.__module__.rsplit(".", 1)[1]
        if mn not in builtin_modules:
            continue
        module_instance = instantiate_module(module.module_name)
        setting_count += len(module_instance.help_settings())
    directory = os.path.abspath(os.path.split(sys.argv[0])[0])
    try:
        filelist = (
            subprocess.Popen(["git", "ls-files"], stdout=subprocess.PIPE, cwd=directory).communicate()[0].split("\n")
        )
    except:
        filelist = []
        for root, dirs, files in os.walk(directory):
            filelist += [os.path.join(root, f) for f in files]
    linecount = 0
    for filename in filelist:
        if os.path.exists(filename) and any([filename.endswith(x) for x in ".py", ".c", ".pyx", ".java"]):
Beispiel #4
0
 def test_01_01_import_all(self):
     #
     # Make sure that we can import every module.
     # Tests have a habit of importing the module they test and then,
     # they are not included in the test suite because they don't import
     #
     found_modules = map((lambda x: x.__module__.rsplit(".", 1)[-1]), all_modules.values())
     for module_name in filter((lambda x: x not in self.optional_modules), builtin_modules):
         self.assertTrue(
             module_name in found_modules, "%s is missing from the list of available modules" % module_name
         )
Beispiel #5
0
 def test_01_01_import_all(self):
     #
     # Make sure that we can import every module.
     # Tests have a habit of importing the module they test and then,
     # they are not included in the test suite because they don't import
     #
     found_modules = map((lambda x: x.__module__.rsplit(".", 1)[-1]),
                         all_modules.values())
     for module_name in \
         filter((lambda x:x not in self.optional_modules), builtin_modules):
         self.assertTrue(
             module_name in found_modules,
             "%s is missing from the list of available modules" %
             module_name)
Beispiel #6
0
def print_code_statistics():
    '''Print # lines of code, # modules, etc to console

    This is the official source of code statistics for things like grants.
    '''
    from cellprofiler.modules import builtin_modules, all_modules, instantiate_module
    import subprocess
    print "\n\n\n**** CellProfiler code statistics ****"
    print "# of built-in modules: %d" % len(builtin_modules)
    setting_count = 0
    for module in all_modules.values():
        if module.__module__.find(".") < 0:
            continue
        mn = module.__module__.rsplit(".", 1)[1]
        if mn not in builtin_modules:
            continue
        module_instance = instantiate_module(module.module_name)
        setting_count += len(module_instance.help_settings())
    directory = os.path.abspath(os.path.split(sys.argv[0])[0])
    try:
        filelist = subprocess.Popen(["git", "ls-files"],
                                    stdout=subprocess.PIPE,
                                    cwd=directory).communicate()[0].split("\n")
    except:
        filelist = []
        for root, dirs, files in os.walk(directory):
            filelist += [os.path.join(root, f) for f in files]
    linecount = 0
    for filename in filelist:
        if (os.path.exists(filename) and any(
            [filename.endswith(x) for x in ".py", ".c", ".pyx", ".java"])):
            if filename.endswith(".c") and os.path.exists(filename[:-1] +
                                                          "pyx"):
                continue
            with open(filename, "r") as fd:
                linecount += len(fd.readlines())