1
#This file is part of QuTIP.
3
# QuTIP is free software: you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation, either version 3 of the License, or
6
# (at your option) any later version.
8
# QuTIP is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
# GNU General Public License for more details.
13
# You should have received a copy of the GNU General Public License
14
# along with QuTIP. If not, see <http://www.gnu.org/licenses/>.
16
# Copyright (C) 2011, Paul D. Nation & Robert J. Johansson
18
###########################################################################
22
"""Simple class for displaying progress bars using CocoaDialog"""
24
# Change CD_BASE to reflect the location of Cocoadialog on your system
25
CD_BASE = os.path.dirname(__file__)
26
CD_PATH = os.path.join(CD_BASE, "CocoaDialog.app/Contents/MacOS/CocoaDialog")
28
def __init__(self, title="Progress", message="", percent=0):
29
"""Create progress bar dialog"""
30
template = "%s progressbar --title '%s' --text '%s' --percent %d"
31
self.percent = percent
32
self.pipe = os.popen(template % (ProgressBar.CD_PATH, title, message, percent), "w")
33
self.message = message
35
def update(self, percent, message=False):
36
"""Update progress bar (and message if desired)"""
38
self.message = message # store message for persistence
39
self.pipe.write("%d %s\n" % (percent, self.message))
43
"""Close progress bar window"""
47
if __name__ == "__main__":
50
bar = ProgressBar(title="Running Monte-Carlo Trajectories:")
52
for percent in range(25):
54
bar.update(percent, "Trajectories completed: "+str(percent)+"/10000")
56
for percent in range(25,100):
58
bar.update(percent, "Trajectories completed: "+str(percent)+"/10000")
b'\\ No newline at end of file'