コード例 #1
0
ファイル: ProjectInfo.py プロジェクト: woky/gofed
    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
コード例 #2
0
ファイル: approxDepsFile.py プロジェクト: jedahan/gofed
				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()
	print deps2GodepsJson(deps, importpath)
コード例 #3
0
ファイル: goapidiff.py プロジェクト: jedahan/gofed
	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():
		print "Error: %s" % e

	if not options.error: