コード例 #1
0
	def __output_text_section__(info_string, filtered):
		if filtered:
			print("\n" + textwrap.fill(info_string + ":", width=terminal.get_size()[0]))

			for i in filtered:
				(width, _unused) = terminal.get_size()
				print("...%s" % i[-width+3:] if len(i) > width else i)
    def output_text(self):
        if __missing_files__:
            print("\n" + textwrap.fill(__missing_info_text__ + ":", width=terminal.get_size()[0]))

            for missing in __missing_files__:
                (width, _) = terminal.get_size()
                print("...%s" % missing[-width + 3 :] if len(missing) > width else missing)
	def output_text(self):
		if __filtered_files__:
			print("\n" + textwrap.fill(__filtering_info_text__ + ":", width=terminal.get_size()[0]))

			for i in __filtered_files__:
				(width, _) = terminal.get_size()
				print("...%s" % i[-width+3:] if len(i) > width else i)
コード例 #4
0
ファイル: filtering.py プロジェクト: Eric--/cowry
	def output_text(self):
		if __filtered_files__:
			print("\n" + textwrap.fill(_(FILTERING_INFO_TEXT) + ":", width=terminal.get_size()[0]))

			for i in __filtered_files__:
				(width, _unused) = terminal.get_size()
				print("...%s" % i[-width+3:] if len(i) > width else i)
コード例 #5
0
ファイル: missing.py プロジェクト: Eric--/cowry
	def output_text(self):
		if __missing_files__:
			print("\n" + textwrap.fill(_(MISSING_INFO_TEXT) + ":", width=terminal.get_size()[0]))

			for missing in __missing_files__:
				(width, _unused) = terminal.get_size()
				print("...%s" % missing[-width+3:] if len(missing) > width else missing)
コード例 #6
0
ファイル: filteringoutput.py プロジェクト: xxyy/gitinspector
	def __output_text_section__(info_string, filtered):
		if filtered:
			print("\n" + textwrap.fill(info_string + ":", width=terminal.get_size()[0]))

			for i in filtered:
				(width, _unused) = terminal.get_size()
				print("...%s" % i[-width+3:] if len(i) > width else i)
コード例 #7
0
    def output_text(self):
        if __filtered_files__:
            print("\n" + textwrap.fill(__filtering_info_text__ + ":",
                                       width=terminal.get_size()[0]))

            for i in __filtered_files__:
                (width, _) = terminal.get_size()
                print("...%s" % i[-width + 3:] if len(i) > width else i)
コード例 #8
0
ファイル: filtering.py プロジェクト: zj2089/cowry
    def output_text(self):
        if __filtered_files__:
            print("\n" + textwrap.fill(_(FILTERING_INFO_TEXT) + ":",
                                       width=terminal.get_size()[0]))

            for i in __filtered_files__:
                (width, _unused) = terminal.get_size()
                print("...%s" % i[-width + 3:] if len(i) > width else i)
コード例 #9
0
ファイル: missing.py プロジェクト: zj2089/cowry
    def output_text(self):
        if __missing_files__:
            print("\n" + textwrap.fill(_(MISSING_INFO_TEXT) + ":",
                                       width=terminal.get_size()[0]))

            for missing in __missing_files__:
                (width, _unused) = terminal.get_size()
                print("...%s" %
                      missing[-width +
                              3:] if len(missing) > width else missing)
コード例 #10
0
    def output_text(self):
        if __missing_files__:
            print("\n" + textwrap.fill(__missing_info_text__ + ":",
                                       width=terminal.get_size()[0]))

            for missing in __missing_files__:
                (width, _) = terminal.get_size()
                print("...%s" %
                      missing[-width +
                              3:] if len(missing) > width else missing)
コード例 #11
0
	def output_text(self):
		if self.changes.get_commits():
			print("\n" + textwrap.fill(_(TIMELINE_INFO_TEXT) + ":", width=terminal.get_size()[0]))

			timeline_data = TimelineData(self.changes, self.useweeks)
			periods = timeline_data.get_periods()
			names = timeline_data.get_authors()
			(width, _unused) = terminal.get_size()
			max_periods_per_row = int((width - 21) / 11)

			for i in range(0, len(periods), max_periods_per_row):
				__output_row__text__(timeline_data, periods[i:i+max_periods_per_row], names)
コード例 #12
0
	def output_text(self):
		if self.changes.get_commits():
			print("\n" + textwrap.fill(_(TIMELINE_INFO_TEXT) + ":", width=terminal.get_size()[0]))

			timeline_data = TimelineData(self.changes, self.useweeks)
			periods = timeline_data.get_periods()
			names = timeline_data.get_authors()
			(width, _unused) = terminal.get_size()
			max_periods_per_row = int((width - 21) / 11)

			for i in range(0, len(periods), max_periods_per_row):
				__output_row__text__(timeline_data, periods[i:i+max_periods_per_row], names)
コード例 #13
0
ファイル: format.py プロジェクト: xtrasmal/gitinspector
def output_header():
    if __selected_format__ == "html" or __selected_format__ == "htmlembedded":
        base = basedir.get_basedir()
        html_header = __output_html_template__(base + "/html/html.header")
        tablesorter_js = __get_zip_file_content__(
            "jquery.tablesorter.min.js",
            "/html/jquery.tablesorter.min.js.zip").encode(
                "latin-1", "replace")
        tablesorter_js = tablesorter_js.decode("utf-8", "ignore")
        flot_js = __get_zip_file_content__("jquery.flot.js")
        pie_js = __get_zip_file_content__("jquery.flot.pie.js")
        resize_js = __get_zip_file_content__("jquery.flot.resize.js")

        logo_file = open(base + "/html/gitinspector_piclet.png", "rb")
        logo = logo_file.read()
        logo_file.close()
        logo = base64.b64encode(logo)

        if __selected_format__ == "htmlembedded":
            jquery_js = ">" + __get_zip_file_content__("jquery.js")
        else:
            jquery_js = " src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js\">"

        print(
            html_header.format(
                title=_("Repository statistics for {0}").format(
                    os.path.basename(basedir.get_basedir_git())),
                jquery=jquery_js,
                jquery_tablesorter=tablesorter_js,
                jquery_flot=flot_js,
                jquery_flot_pie=pie_js,
                jquery_flot_resize=resize_js,
                logo=logo.decode("utf-8", "replace"),
                logo_text=_(
                    "The output has been generated by {0} {1}. The statistical analysis tool"
                    " for git repositories.").
                format(
                    "<a href=\"https://gitinspector.googlecode.com\">gitinspector</a>",
                    version.__version__),
                repo_text=
                _("Statistical information for the repository '{0}' was gathered on {1}."
                  ).format(os.path.basename(basedir.get_basedir_git()),
                           localization.get_date()),
                show_minor_authors=_("Show minor authors"),
                hide_minor_authors=_("Hide minor authors"),
                show_minor_rows=_("Show rows with minor work"),
                hide_minor_rows=_("Hide rows with minor work")))
    elif __selected_format__ == "xml":
        print("<gitinspector>")
        print("\t<version>" + version.__version__ + "</version>")
        print("\t<repository>" + os.path.basename(basedir.get_basedir_git()) +
              "</repository>")
        print("\t<report-date>" + time.strftime("%Y/%m/%d") + "</report-date>")
    else:
        print(
            textwrap.fill(_(
                "Statistical information for the repository '{0}' was gathered on {1}."
            ).format(os.path.basename(basedir.get_basedir_git()),
                     localization.get_date()),
                          width=terminal.get_size()[0]))
コード例 #14
0
    def output_text(self):
        authorinfo_list = self.changes.get_authorinfo_list()
        total_changes = 0.0

        for i in authorinfo_list:
            total_changes += authorinfo_list.get(i).insertions
            total_changes += authorinfo_list.get(i).deletions

        if authorinfo_list:
            print(
                textwrap.fill(_(HISTORICAL_INFO_TEXT) + ":",
                              width=terminal.get_size()[0]) + "\n")
            terminal.printb(
                _("Author").ljust(21) + _("Commits").rjust(13) +
                _("Insertions").rjust(14) + _("Deletions").rjust(15) +
                _("% of changes").rjust(16))

            for i in sorted(authorinfo_list):
                authorinfo = authorinfo_list.get(i)
                percentage = 0 if total_changes == 0 else (
                    authorinfo.insertions +
                    authorinfo.deletions) / total_changes * 100

                print(i.ljust(20)[0:20], end=" ")
                print(str(authorinfo.commits).rjust(13), end=" ")
                print(str(authorinfo.insertions).rjust(13), end=" ")
                print(str(authorinfo.deletions).rjust(14), end=" ")
                print("{0:.2f}".format(percentage).rjust(15))
        else:
            print(_(NO_COMMITED_FILES_TEXT) + ".")
コード例 #15
0
ファイル: changesoutput.py プロジェクト: xxyy/gitinspector
	def output_text(self):
		authorinfo_list = self.changes.get_authorinfo_list()
		total_changes = 0.0

		for i in authorinfo_list:
			total_changes += authorinfo_list.get(i).insertions
			total_changes += authorinfo_list.get(i).deletions

		if authorinfo_list:
			print(textwrap.fill(_(HISTORICAL_INFO_TEXT) + ":", width=terminal.get_size()[0]) + "\n")
			terminal.printb(terminal.ljust(_("Author"), 21) + terminal.rjust(_("Commits"), 13) +
			                terminal.rjust(_("Insertions"), 14) + terminal.rjust(_("Deletions"), 15) +
					terminal.rjust(_("% of changes"), 16))

			for i in sorted(authorinfo_list):
				authorinfo = authorinfo_list.get(i)
				percentage = 0 if total_changes == 0 else (authorinfo.insertions + authorinfo.deletions) / total_changes * 100

				print(terminal.ljust(i, 20)[0:20 - terminal.get_excess_column_count(i)], end=" ")
				print(str(authorinfo.commits).rjust(13), end=" ")
				print(str(authorinfo.insertions).rjust(13), end=" ")
				print(str(authorinfo.deletions).rjust(14), end=" ")
				print("{0:.2f}".format(percentage).rjust(15))
		else:
			print(_(NO_COMMITED_FILES_TEXT) + ".")
コード例 #16
0
    def output_text(self):
        authorinfo_list = get(self.hard).get_authorinfo_list()
        total_changes = 0.0

        for i in authorinfo_list:
            total_changes += authorinfo_list.get(i).insertions
            total_changes += authorinfo_list.get(i).deletions

        if authorinfo_list:
            print(
                textwrap.fill(__historical_info_text__ + ":",
                              width=terminal.get_size()[0]) + "\n")
            terminal.printb("Author".ljust(21) + "Commits   " +
                            "Insertions   " + "Deletions   " + "% of changes")

            for i in sorted(authorinfo_list):
                authorinfo = authorinfo_list.get(i)
                percentage = 0 if total_changes == 0 else (
                    authorinfo.insertions +
                    authorinfo.deletions) / total_changes * 100

                print(i.ljust(20)[0:20], end=" ")
                print(str(authorinfo.commits).rjust(7), end=" ")
                print(str(authorinfo.insertions).rjust(12), end=" ")
                print(str(authorinfo.deletions).rjust(11), end=" ")
                print("{0:.2f}".format(percentage).rjust(14))
        else:
            print(__no_commited_files__ + ".")
コード例 #17
0
	def output_text(self):
		print("\n" + textwrap.fill(_(RESPONSIBILITIES_INFO_TEXT) + ":", width=terminal.get_size()[0]))

		for i in sorted(set(i[0] for i in blame.get(self.hard, self.useweeks, self.changes).blames)):
			responsibilities = sorted(((i[1], i[0]) for i in Responsibilities.get(self.hard, self.useweeks, i)), reverse=True)
			if responsibilities:
				print("\n" + i, _(MOSTLY_RESPONSIBLE_FOR_TEXT) + ":")

				for j, entry in enumerate(responsibilities):
					(width, _unused) = terminal.get_size()
					width -= 7

					print(str(entry[0]).rjust(6), end=" ")
					print("...%s" % entry[1][-width+3:] if len(entry[1]) > width else entry[1])

					if j >= 9:
						break
	def output_text(self):
		print("\n" + textwrap.fill(__responsibilities_info_text__ + ":", width=terminal.get_size()[0]))

		for i in sorted(set(i[0] for i in blame.get(self.hard).blames)):
			responsibilities = sorted(((i[1], i[0]) for i in Responsibilities.get(self.hard, i)), reverse=True)
			if responsibilities:
				print("\n" + i, "is mostly responsible for:")

				for j, entry in enumerate(responsibilities):
					(width, _) = terminal.get_size()
					width -= 7

					print(str(entry[0]).rjust(6), end=" ")
					print("...%s" % entry[1][-width+3:] if len(entry[1]) > width else entry[1])

					if j >= 9:
						break
コード例 #19
0
ファイル: format.py プロジェクト: MattHardcastle/gitinspector
def output_header():
    if __selected_format__ == "html" or __selected_format__ == "htmlembedded":
        base = basedir.get_basedir()
        html_header = __output_html_template__(base + "/html/html.header")
        tablesorter_js = __get_zip_file_content__("jquery.tablesorter.min.js", "/html/jquery.tablesorter.min.js.zip")
        flot_js = __get_zip_file_content__("jquery.flot.js")
        pie_js = __get_zip_file_content__("jquery.flot.pie.js")
        resize_js = __get_zip_file_content__("jquery.flot.resize.js")

        logo_file = open(base + "/html/gitinspector_piclet.png", "rb")
        logo = logo_file.read()
        logo_file.close()
        logo = base64.b64encode(logo)

        if __selected_format__ == "htmlembedded":
            jquery_js = ">" + __get_zip_file_content__("jquery.js")
        else:
            jquery_js = ' src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">'

        print(
            html_header.format(
                title=_("Repository statistics for {0}").format(os.path.basename(basedir.get_basedir_git())),
                jquery=jquery_js,
                jquery_tablesorter=tablesorter_js,
                jquery_flot=flot_js,
                jquery_flot_pie=pie_js,
                jquery_flot_resize=resize_js,
                logo=logo.decode("utf-8", "replace"),
                logo_text=_(
                    "The output has been generated by {0} {1}. The statistical analysis tool" " for git repositories."
                ).format('<a href="http://gitinspector.googlecode.com">gitinspector</a>', version.__version__),
                repo_text=_("Statistical information for the repository '{0}' was gathered on {1}.").format(
                    os.path.basename(basedir.get_basedir_git()), localization.get_date()
                ),
                show_minor_authors=_("Show minor authors"),
                hide_minor_authors=_("Hide minor authors"),
                show_minor_rows=_("Show rows with minor work"),
                hide_minor_rows=_("Hide rows with minor work"),
            )
        )
    elif __selected_format__ == "xml":
        print("<gitinspector>")
        print("\t<version>" + version.__version__ + "</version>")
        print("\t<repository>" + os.path.basename(basedir.get_basedir_git()) + "</repository>")
        print("\t<report-date>" + time.strftime("%Y/%m/%d") + "</report-date>")
    else:
        print(
            textwrap.fill(
                _("Statistical information for the repository '{0}' was gathered on {1}.").format(
                    os.path.basename(basedir.get_basedir_git()), localization.get_date()
                ),
                width=terminal.get_size()[0],
            )
        )
コード例 #20
0
ファイル: extensions.py プロジェクト: TradeHero/gitinspector
    def output_text(self):
        if __located_extensions__:
            print("\n" + textwrap.fill("{0} {1}:".format(_(EXTENSIONS_INFO_TEXT), _(EXTENSIONS_MARKED_TEXT)),
                                       width=terminal.get_size()[0]))

            for i in __located_extensions__:
                if i in __extensions__:
                    print("[" + terminal.__bold__ + i + terminal.__normal__ + "]", end=" ")
                else:
                    print(i, end=" ")
            print("")
コード例 #21
0
	def output_text(self):
		if sys.stdout.isatty() and format.is_interactive_format():
			terminal.clear_row()

		print(textwrap.fill(_(BLAME_INFO_TEXT) + ":", width=terminal.get_size()[0]) + "\n")
		terminal.printb(_("Author").ljust(21) + _("Rows").rjust(10) + _("% in comments").rjust(20))

		for i in sorted(__blame__.get_summed_blames().items()):
			print(i[0].ljust(20)[0:20], end=" ")
			print(str(i[1].rows).rjust(10), end=" ")
			print("{0:.2f}".format(100.0 * i[1].comments / i[1].rows).rjust(19))
コード例 #22
0
ファイル: timeline.py プロジェクト: RaginBajin/dotfiles
def output(changes, useweeks):
	if changes.get_commits():
		print "\nThe following history timeline has been gathered from the repository:"

		timeline_data = TimelineData(changes, useweeks)
		periods = timeline_data.get_periods()
		names = timeline_data.get_authors()
		(width, _) = terminal.get_size()
		max_periods_per_row = (width - 21) / 11

		for i in range(0, len(periods), max_periods_per_row):
			__output_row__(changes, timeline_data, periods[i:i+max_periods_per_row], names)
コード例 #23
0
	def output_text(self):
		print("")
		get(self.hard)

		if self.hard and sys.stdout.isatty():
			terminal.clear_row()

		print(textwrap.fill(__blame_info_text__ + ":", width=terminal.get_size()[0]) + "\n")
		terminal.printb("Author".ljust(21) + "Rows".rjust(10) + "% in comments".rjust(16))
		for i in sorted(__blame__.get_summed_blames().items()):
			print(i[0].ljust(20)[0:20], end=" ")
			print(str(i[1].rows).rjust(10), end=" ")
			print("{0:.2f}".format(100.0 * i[1].comments / i[1].rows).rjust(15))
コード例 #24
0
ファイル: timeline.py プロジェクト: marfarma/dotfiles-2
def output(changes, useweeks):
    if changes.get_commits():
        print "\nThe following history timeline has been gathered from the repository:"

        timeline_data = TimelineData(changes, useweeks)
        periods = timeline_data.get_periods()
        names = timeline_data.get_authors()
        (width, _) = terminal.get_size()
        max_periods_per_row = (width - 21) / 11

        for i in range(0, len(periods), max_periods_per_row):
            __output_row__(changes, timeline_data,
                           periods[i:i + max_periods_per_row], names)
コード例 #25
0
ファイル: blame.py プロジェクト: Spencerx/git-inspector
	def output_text(self):
		if sys.stdout.isatty() and format.is_interactive_format():
			terminal.clear_row()

		print(textwrap.fill(_(BLAME_INFO_TEXT) + ":", width=terminal.get_size()[0]) + "\n")
		terminal.printb(terminal.ljust(_("Author"), 21) + terminal.rjust(_("Rows"), 10) + terminal.rjust(_("Stability"), 15) +
		                terminal.rjust(_("Age"), 13) + terminal.rjust(_("% in comments"), 20))

		for i in sorted(__blame__.get_summed_blames().items()):
			print(terminal.ljust(i[0], 20)[0:20 - terminal.get_excess_column_count(i[0])], end=" ")
			print(str(i[1].rows).rjust(10), end=" ")
			print("{0:.1f}".format(Blame.get_stability(i[0], i[1].rows, self.changes)).rjust(14), end=" ")
			print("{0:.1f}".format(float(i[1].skew) / i[1].rows).rjust(12), end=" ")
			print("{0:.2f}".format(100.0 * i[1].comments / i[1].rows).rjust(19))
コード例 #26
0
ファイル: blame.py プロジェクト: marham/gitinspector
	def output_text(self):
		if sys.stdout.isatty() and format.is_interactive_format():
			terminal.clear_row()

		print(textwrap.fill(_(BLAME_INFO_TEXT) + ":", width=terminal.get_size()[0]) + "\n")
		terminal.printb(terminal.ljust(_("Author"), 21) + terminal.rjust(_("Rows"), 10) + terminal.rjust(_("Stability"), 15) +
		                terminal.rjust(_("Age"), 13) + terminal.rjust(_("% in comments"), 20))

		for i in sorted(__blame__.get_summed_blames().items()):
			print(terminal.ljust(i[0], 20)[0:20 - terminal.get_excess_column_count(i[0])], end=" ")
			print(str(i[1].rows).rjust(10), end=" ")
			print("{0:.1f}".format(Blame.get_stability(i[0], i[1].rows, self.changes)).rjust(14), end=" ")
			print("{0:.1f}".format(float(i[1].skew) / i[1].rows).rjust(12), end=" ")
			print("{0:.2f}".format(100.0 * i[1].comments / i[1].rows).rjust(19))
コード例 #27
0
    def output_text(self):
        if __located_extensions__:
            print("\n" + textwrap.fill("{0} {1}:".format(
                _(EXTENSIONS_INFO_TEXT), _(EXTENSIONS_MARKED_TEXT)),
                                       width=terminal.get_size()[0]))

            for i in __located_extensions__:
                if i in __extensions__:
                    print("[" + terminal.__bold__ + i + terminal.__normal__ +
                          "]",
                          end=" ")
                else:
                    print(i, end=" ")
            print("")
    def output_text(self):
        if __located_extensions__:
            print("\n" + textwrap.fill(
                __extensions_info_text__ +
                "\n(extensions used during statistical analysis are marked):",
                width=terminal.get_size()[0]))

            for i in __located_extensions__:
                if i in __extensions__:
                    print("[" + terminal.__bold__ + i + terminal.__normal__ +
                          "]",
                          end=" ")
                else:
                    print(i, end=" ")
            print("")
コード例 #29
0
    def output_text(self):
        if sys.stdout.isatty() and format.is_interactive_format():
            terminal.clear_row()

        print(
            textwrap.fill(_(BLAME_INFO_TEXT) + ":",
                          width=terminal.get_size()[0]) + "\n")
        terminal.printb(
            _("Author").ljust(21) + _("Rows").rjust(10) +
            _("% in comments").rjust(20))

        for i in sorted(__blame__.get_summed_blames().items()):
            print(i[0].ljust(20)[0:20], end=" ")
            print(str(i[1].rows).rjust(10), end=" ")
            print("{0:.2f}".format(100.0 * i[1].comments /
                                   i[1].rows).rjust(19))
	def output_text(self):
		authorinfo_list = get(self.hard).get_authorinfo_list()
		total_changes = 0.0

		for i in authorinfo_list:
			total_changes += authorinfo_list.get(i).insertions
			total_changes += authorinfo_list.get(i).deletions

		if authorinfo_list:
			print(textwrap.fill(__historical_info_text__ + ":", width=terminal.get_size()[0]) + "\n")
			terminal.printb("Author".ljust(21) + "Commits   " + "Insertions   " + "Deletions   " + "% of changes")

			for i in sorted(authorinfo_list):
				authorinfo = authorinfo_list.get(i)
				percentage = 0 if total_changes == 0 else (authorinfo.insertions + authorinfo.deletions) / total_changes * 100

				print(i.ljust(20)[0:20], end=" ")
				print(str(authorinfo.commits).rjust(7), end=" ")
				print(str(authorinfo.insertions).rjust(12), end=" ")
				print(str(authorinfo.deletions).rjust(11), end=" ")
				print("{0:.2f}".format(percentage).rjust(14))
		else:
			print(__no_commited_files__ + ".")