Ejemplo n.º 1
0
def GenerateImages(data, options):
    """Generate the output images for all the nodes in the input."""
    deps_map = json.loads(data)

    for package in deps_map:
        lines = GenerateDotGraph(package, deps_map, options)

        filename = os.path.join(options.output_dir,
                                GetOutputBaseName(deps_map[package], options))

        save_dot_filename = None
        if options.save_dot:
            save_dot_filename = filename + '.dot'

        dot_helper.GenerateImage(lines, filename, options.format,
                                 save_dot_filename)
Ejemplo n.º 2
0
def main(argv):
    parser = commandline.ArgumentParser(description=__doc__)
    parser.add_argument('-f',
                        '--format',
                        default='svg',
                        help='Dot output format (png, svg, etc.).')
    parser.add_argument('-o',
                        '--output-dir',
                        default='.',
                        help='Output directory.')
    parser.add_argument('-s',
                        '--save-dot',
                        action='store_true',
                        help='Save dot files.')
    parser.add_argument('inputs', nargs='+')
    options = parser.parse_args(argv)

    input_deps = []
    for i in options.inputs:
        with open(i) as handle:
            input_deps.append(json.loads(handle.read()))

    version_map = GetVersionMap(input_deps)
    divergent_set = GetDivergentSet(version_map, len(input_deps))

    # Get all the output directories
    all_dirs = set(os.path.dirname(pkg) for pkg in divergent_set)

    for i in all_dirs:
        try:
            os.makedirs(os.path.join(options.output_dir, i))
        except OSError:
            # The directory already exists.
            pass

    for pkg in divergent_set:
        filename = os.path.join(options.output_dir, pkg) + '.' + options.format

        save_dot_filename = None
        if options.save_dot:
            save_dot_filename = filename + '.dot'

        graph = BuildDependencyGraph(pkg, input_deps, version_map,
                                     divergent_set)
        lines = graph.Gen()
        dot_helper.GenerateImage(lines, filename, options.format,
                                 save_dot_filename)