mailr25947 - in /trunk/lib/text: __init__.py progress.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on September 22, 2014 - 11:15:
Author: bugman
Date: Mon Sep 22 11:15:17 2014
New Revision: 25947

URL: http://svn.gna.org/viewcvs/relax?rev=25947&view=rev
Log:
Created a basic text based progress meter in the new lib.text.progress module.

This is taken from the script 
test_suite/shared_data/frame_order/cam/generate_base.py.


Added:
    trunk/lib/text/progress.py
Modified:
    trunk/lib/text/__init__.py

Modified: trunk/lib/text/__init__.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/lib/text/__init__.py?rev=25947&r1=25946&r2=25947&view=diff
==============================================================================
--- trunk/lib/text/__init__.py  (original)
+++ trunk/lib/text/__init__.py  Mon Sep 22 11:15:17 2014
@@ -25,6 +25,7 @@
 __all__ = [
     'gui',
     'sectioning',
+    'progress',
     'string',
     'table'
 ]

Added: trunk/lib/text/progress.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/lib/text/progress.py?rev=25947&view=auto
==============================================================================
--- trunk/lib/text/progress.py  (added)
+++ trunk/lib/text/progress.py  Mon Sep 22 11:15:17 2014
@@ -0,0 +1,55 @@
+###############################################################################
+#                                                                            
 #
+# Copyright (C) 2014 Edward d'Auvergne                                       
 #
+#                                                                            
 #
+# This file is part of the program relax (http://www.nmr-relax.com).         
 #
+#                                                                            
 #
+# 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 3 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, see <http://www.gnu.org/licenses/>.      
 #
+#                                                                            
 #
+###############################################################################
+
+# Module docstring.
+"""Text based progress meters."""
+
+# Python module imports.
+import locale
+import sys
+
+
+def progress_meter(i, a=250, b=10000, file=sys.stderr):
+    """A simple progress write out (which defaults to the terminal STDERR).
+
+    @param i:       The current iteration.
+    @type i:        int
+    @keyword a:     The step size for spinning the spinner.
+    @type a:        int
+    @keyword b:     The step size for printing out the progress.
+    @type b:        int
+    @keyword file:  The file object to write the output to.
+    @type file:     file object
+    """
+
+    # The spinner characters.
+    chars = ['-', '\\', '|', '/']
+
+    # A spinner.
+    if i % a == 0:
+        file.write('\b%s' % chars[i%4])
+        if hasattr(file, 'flush'):
+            file.flush()
+
+    # Dump the progress.
+    if i % b == 0:
+        num = locale.format("%d", i, grouping=True)
+        file.write('\b%12s\n' % num)




Related Messages


Powered by MHonArc, Updated Mon Sep 22 12:00:03 2014