def retrieve(self, directory, skip_errors=False): """ Retrieve information about project from directory """ # directory exists? if not path.exists(directory): self.err = "Directory %s does not exist" % directory return False parser_config = ParserConfig() if skip_errors: parser_config.setSkipErrors() parser_config.setNoGodeps(self.noGodeps) parser_config.setParsePath(directory) gse_obj = GoSymbolsExtractor(parser_config) if not gse_obj.extract(): self.err = gse_obj.getError() return False self.godeps_on = gse_obj.godepsDirectoryExists() ip_used = gse_obj.getImportedPackages() self.package_imports_occurence = gse_obj.getPackageImportsOccurences() packages = gse_obj.getSymbolsPosition() tests = gse_obj.getTestDirectories() ips_imported = [] ips_provided = [] # imported paths ipd = ImportPathsDecomposer(ip_used) if not ipd.decompose(): self.err = ipd.getError() return False self.warn = ipd.getWarning() classes = ipd.getClasses() sorted_classes = sorted(classes.keys()) for ip_class in sorted_classes: if ip_class == "Native": continue for ip in classes[ip_class]: self.imported_packages.append(ip) # provided paths for pkg in packages: self.provided_packages.append(packages[pkg]) # project documentation self.docs = self._getDocFiles(directory) self.imported_packages = sorted(self.imported_packages) self.provided_packages = sorted(self.provided_packages) self.test_directories = sorted(tests) return True
dir = dir.strip() if dir == "": continue noGodeps.append(dir) if options.commitdate == "": commit_date = int(datetime.datetime.strptime('29/09/2015', '%d/%m/%Y').strftime("%s")) else: commit_date = int(datetime.datetime.strptime(options.commidate, '%d/%m/%Y').strftime("%s")) if options.importpath == "": importpath = "github.com/influxdb/influxdb" else: importpath = options.importpath parser_config = ParserConfig() parser_config.setSkipErrors() parser_config.setNoGodeps(noGodeps) parser_config.setImportsOnly() parser_config.setParsePath(path) parser_config.setImportPathPrefix(importpath) if not options.json: sys.stderr.write("Missing --json option\n") exit(1) da_obj = DependencyApproximator(parser_config, commit_date, verbose=options.verbose) da_obj.construct() #print da_obj.getError() deps = da_obj.getDependencies()
if len(args): path = args[0] if not options.scanalldirs: noGodeps = Config().getSkippedDirectories() else: noGodeps = [] if options.skipdirs: for dir in options.skipdirs.split(","): dir = dir.strip() if dir == "": continue noGodeps.append(dir) parser_config = ParserConfig() if options.skiperrors: parser_config.setSkipErrors() parser_config.setNoGodeps(noGodeps) parser_config.setParsePath(path) gse_obj = GoSymbolsExtractor(parser_config) if not gse_obj.extract(): sys.stderr.write("%s\n" % gse_obj.getError()) exit(1) if options.provides: ip = gse_obj.getSymbolsPosition() ips = [] for pkg in ip:
else: noGodeps = [] if options.skipdirs: for dir in options.skipdirs.split(','): dir = dir.strip() if dir == "": continue noGodeps.append(dir) #obj = ProjectToXml(options.prefix, go_dir) #print obj #print obj.getError() #exit(0) parser_config = ParserConfig() if options.skiperrors: parser_config.setSkipErrors() parser_config.setNoGodeps(noGodeps) parser_config.setParsePath(go_dir) gse_obj = GoSymbolsExtractor(parser_config) if not gse_obj.extract(): print gse_obj.getError() exit(1) if options.provides: ip = gse_obj.getSymbolsPosition() ips = [] for pkg in ip: ips.append(ip[pkg])
if not options.scanalldirs: noGodeps = Config().getSkippedDirectories() else: noGodeps = [] if options.skipdirs: for dir in options.skipdirs.split(','): dir = dir.strip() if dir == "": continue noGodeps.append(dir) # 1) check if all provided import paths are the same # 2) check each package for new/removed/changed symbols config = ParserConfig() if options.skiperrors: config.setSkipErrors() config.setNoGodeps(noGodeps) cmp_src = CompareSourceCodes(config) if options.oldxml != "" and options.newxml != "": cmp_src.compareXmls(options.oldxml, options.newxml) elif options.newxml != "": cmp_src.compareDirXml(args[0], options.newxml) elif options.oldxml != "": cmp_src.compareXmlDir(options.oldxml, args[0]) else: cmp_src.compareDirs(args[0], args[1]) for e in cmp_src.getError():
if options.skipdirs: for dir in options.skipdirs.split(','): dir = dir.strip() if dir == "": continue noGodeps.append(dir) fp = FormatedPrint() scan_time_start = time() if not options.cyclic and not options.leaves and not options.roots and not options.graphviz: print "Synopsis: prog [-d --from-dir|--from-xml] -c|-l|-r|-g [-v] [PACKAGE]" exit(1) if options.decompose != "": config = ParserConfig() if options.skiperrors: config.setSkipErrors() config.setNoGodeps(noGodeps) config.setImportPathPrefix(options.decompose) gb = ProjectDecompositionGraphBuilder(config) if options.fromxml != "": if not gb.buildFromXml(options.fromxml): fp.printError(gb.getError()) exit(1) elif options.fromdir != "": if not gb.buildFromDirectory(options.fromdir): fp.printError(gb.getError()) exit(1) else: