[Pkg-bazaar-commits] ./bzr/unstable r645: - split out proposed progress module
Martin Pool
mbp at sourcefrog.net
Fri Apr 10 08:20:34 UTC 2009
------------------------------------------------------------
revno: 645
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Fri 2005-06-10 16:29:35 +1000
message:
- split out proposed progress module
added:
patches/progress.diff
modified:
patches/annotate3.patch
-------------- next part --------------
=== modified file 'patches/annotate3.patch'
--- a/patches/annotate3.patch 2005-06-10 06:26:31 +0000
+++ b/patches/annotate3.patch 2005-06-10 06:29:35 +0000
@@ -500,102 +500,6 @@
+ test()
+# arch-tag: d1541a25-eac5-4de9-a476-08a7cecd5683
-*** added file 'bzrlib/progress.py'
---- /dev/null
-+++ bzrlib/progress.py
-@@ -0,0 +1,91 @@
-+# Copyright (C) 2005 Aaron Bentley
-+# <aaron.bentley at utoronto.ca>
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+
-+import sys
-+
-+class Progress(object):
-+ def __init__(self, units, current, total=None):
-+ self.units = units
-+ self.current = current
-+ self.total = total
-+ self.percent = None
-+ if self.total is not None:
-+ self.percent = 100.0 * current / total
-+
-+ def __str__(self):
-+ if self.total is not None:
-+ return "%i of %i %s %.1f%%" % (self.current, self.total, self.units,
-+ self.percent)
-+ else:
-+ return "%i %s" (self.current, self.units)
-+
-+
-+def progress_bar(progress):
-+ fmt = " %i of %i %s (%.1f%%)"
-+ f = fmt % (progress.total, progress.total, progress.units, 100.0)
-+ max = len(f)
-+ cols = 77 - max
-+ markers = int (float(cols) * progress.current / progress.total)
-+ txt = fmt % (progress.current, progress.total, progress.units,
-+ progress.percent)
-+ sys.stderr.write("\r[%s%s]%s" % ('='*markers, ' '*(cols-markers), txt))
-+
-+def clear_progress_bar():
-+ sys.stderr.write('\r%s\r' % (' '*79))
-+
-+def spinner_str(progress, show_text=False):
-+ """
-+ Produces the string for a textual "spinner" progress indicator
-+ :param progress: an object represinting current progress
-+ :param show_text: If true, show progress text as well
-+ :return: The spinner string
-+
-+ >>> spinner_str(Progress("baloons", 0))
-+ '|'
-+ >>> spinner_str(Progress("baloons", 5))
-+ '/'
-+ >>> spinner_str(Progress("baloons", 6), show_text=True)
-+ '- 6 baloons'
-+ """
-+ positions = ('|', '/', '-', '\\')
-+ text = positions[progress.current % 4]
-+ if show_text:
-+ text+=" %i %s" % (progress.current, progress.units)
-+ return text
-+
-+def spinner(progress, show_text=False, output=sys.stderr):
-+ """
-+ Update a spinner progress indicator on an output
-+ :param progress: The progress to display
-+ :param show_text: If true, show text as well as spinner
-+ :param output: The output to write to
-+
-+ >>> spinner(Progress("baloons", 6), show_text=True, output=sys.stdout)
-+ \r- 6 baloons
-+ """
-+ output.write('\r%s' % spinner_str(progress, show_text))
-+
-+def run_tests():
-+ import doctest
-+ result = doctest.testmod()
-+ if result[1] > 0:
-+ if result[0] == 0:
-+ print "All tests passed"
-+ else:
-+ print "No tests to run"
-+if __name__ == "__main__":
-+ run_tests()
-
*** added directory 'testdata'
*** added file 'testdata/diff'
--- /dev/null
=== added file 'patches/progress.diff'
--- a/patches/progress.diff 1970-01-01 00:00:00 +0000
+++ b/patches/progress.diff 2005-06-10 06:29:35 +0000
@@ -0,0 +1,96 @@
+*** added file 'bzrlib/progress.py'
+--- /dev/null
++++ bzrlib/progress.py
+@@ -0,0 +1,91 @@
++# Copyright (C) 2005 Aaron Bentley
++# <aaron.bentley at utoronto.ca>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++
++import sys
++
++class Progress(object):
++ def __init__(self, units, current, total=None):
++ self.units = units
++ self.current = current
++ self.total = total
++ self.percent = None
++ if self.total is not None:
++ self.percent = 100.0 * current / total
++
++ def __str__(self):
++ if self.total is not None:
++ return "%i of %i %s %.1f%%" % (self.current, self.total, self.units,
++ self.percent)
++ else:
++ return "%i %s" (self.current, self.units)
++
++
++def progress_bar(progress):
++ fmt = " %i of %i %s (%.1f%%)"
++ f = fmt % (progress.total, progress.total, progress.units, 100.0)
++ max = len(f)
++ cols = 77 - max
++ markers = int (float(cols) * progress.current / progress.total)
++ txt = fmt % (progress.current, progress.total, progress.units,
++ progress.percent)
++ sys.stderr.write("\r[%s%s]%s" % ('='*markers, ' '*(cols-markers), txt))
++
++def clear_progress_bar():
++ sys.stderr.write('\r%s\r' % (' '*79))
++
++def spinner_str(progress, show_text=False):
++ """
++ Produces the string for a textual "spinner" progress indicator
++ :param progress: an object represinting current progress
++ :param show_text: If true, show progress text as well
++ :return: The spinner string
++
++ >>> spinner_str(Progress("baloons", 0))
++ '|'
++ >>> spinner_str(Progress("baloons", 5))
++ '/'
++ >>> spinner_str(Progress("baloons", 6), show_text=True)
++ '- 6 baloons'
++ """
++ positions = ('|', '/', '-', '\\')
++ text = positions[progress.current % 4]
++ if show_text:
++ text+=" %i %s" % (progress.current, progress.units)
++ return text
++
++def spinner(progress, show_text=False, output=sys.stderr):
++ """
++ Update a spinner progress indicator on an output
++ :param progress: The progress to display
++ :param show_text: If true, show text as well as spinner
++ :param output: The output to write to
++
++ >>> spinner(Progress("baloons", 6), show_text=True, output=sys.stdout)
++ \r- 6 baloons
++ """
++ output.write('\r%s' % spinner_str(progress, show_text))
++
++def run_tests():
++ import doctest
++ result = doctest.testmod()
++ if result[1] > 0:
++ if result[0] == 0:
++ print "All tests passed"
++ else:
++ print "No tests to run"
++if __name__ == "__main__":
++ run_tests()
+
More information about the Pkg-bazaar-commits
mailing list