another thing I've done is, if you're gonna process lots of files in each folder just count the files in that folder and use that as the percentage like, processing folder Images and then next folder etc, but that doesn't give you like a "global" sense of the whole process but sometimes works for feedback. depends on your project and what are you doing .
.:varomix:. MIX Studio 3D Artist/Generalist TD varo...@varomix.net <varo...@gmail.com> Contact Me [image: Linkedin] <http://mx.linkedin.com/in/varomix>[image: Facebook] <http://www.facebook.com/varomix>[image: Twitter]<http://www.twitter.com/varomix> On Tue, Sep 18, 2012 at 2:26 PM, Howard Jones <mrhowardjo...@yahoo.com>wrote: > Thanks - nice to know it wasn't a dumb question ;) > > I'll try the os.walk().next() I think > > Howard > > ------------------------------ > *From:* Diogo Girondi <diogogiro...@gmail.com> > > *To:* Howard Jones <mrhowardjo...@yahoo.com>; Nuke Python discussion < > nuke-python@support.thefoundry.co.uk> > *Sent:* Tuesday, 18 September 2012, 21:18 > > *Subject:* Re: [Nuke-python] progress bar > > I usually take the same approach as Alvaro. I pre-process things to the > get the total number of iterations and then I start the actual process with > a progress bar for the whole thing. > > Another way is to leave the progress as merely an indication that > something is happening, going from 0 to 100 for each new iteration. This > might be "better" for processes that you don't know the actual "length" and > take way too long to process like doing a os.walk() on a huge folder > structure. > > For that I do a try os.walk().next() and set the progress bar from 0 to > 100 for each new iteration that is successful until it ends and I set the > progress bar to complete. > > But would be great if there was an alternative to these. > > > cheers, > diogo > > On Tue, Sep 18, 2012 at 4:54 PM, Howard Jones <mrhowardjo...@yahoo.com>wrote: > > Yes but that means walking twice which was something I was hoping to avoid > > > Howard > > ------------------------------ > *From:* Alvaro Castaneda <varo...@gmail.com> > *To:* Howard Jones <mrhowardjo...@yahoo.com>; Nuke Python discussion < > nuke-python@support.thefoundry.co.uk> > *Sent:* Tuesday, 18 September 2012, 20:36 > > *Subject:* Re: [Nuke-python] progress bar > > > you can count the folders before hand using something like os.walk() > > http://www.saltycrane.com/blog/2007/03/python-oswalk-example/ > > > cheers!! > .:varomix:. > MIX Studio > 3D Artist/Generalist TD > varo...@varomix.net <varo...@gmail.com> > Contact Me [image: Linkedin] <http://mx.linkedin.com/in/varomix>[image: > Facebook] <http://www.facebook.com/varomix>[image: > Twitter]<http://www.twitter.com/varomix> > > > > > On Tue, Sep 18, 2012 at 1:14 PM, Howard Jones <mrhowardjo...@yahoo.com>wrote: > > Hooray - a clear explanation! > > Out of interest what do you do if you don't know how many iterations are > needed so in > > progIncr = 100.0 / len(reads) > > you cant know the value of len(reads)? > > Say you are walking a path and dont know how many subfolders there are but > want to show progress on the walk? > > Cheers > Howard > > ------------------------------ > *From:* Luca Fiorentini <luca.fiorent...@gmail.com> > *To:* Nuke Python discussion <nuke-python@support.thefoundry.co.uk> > *Sent:* Tuesday, 18 September 2012, 18:56 > *Subject:* Re: [Nuke-python] progress bar > > Thanks Nathan! > > Now it is way clearer and works like a charm! > > Kudos :) > > On Tue, Sep 18, 2012 at 7:34 PM, Nathan Rusch <nathan_ru...@hotmail.com>wrote: > > You’re basically on the right track. You need to run your slow function > on a separate thread to avoid blocking Nuke’s GUI until it finishes, and > you would create and update your progress bar from within that function as > well so it will update properly in time with your processing. > > > import threading > import time > > def dummy(): > task = nuke.ProgressTask('Examining Read Nodes...') > reads = nuke.allNodes('Read') > progIncr = 100.0 / len(reads) > for i, r in enumerate(reads): > if task.isCancelled(): > nuke.executeInMainThread(nuke.message, args=('Aborted',)) > return > task.setProgress(int(i * progIncr)) > task.setMessage(r.fullName()) > # Placeholder for some long per-node process > time.sleep(2) > > def aMenuCommand(): > # This is the function you would actually bind to a Nuke menu command > threading.Thread(target=dummy).start() > > > -Nathan > > > *From:* Luca Fiorentini <luca.fiorent...@gmail.com> > *Sent:* Tuesday, September 18, 2012 10:19 AM > *To:* nuke-python@support.thefoundry.co.uk > *Subject:* [Nuke-python] progress bar > > Hi! > > I am trying to make a progress bar but with no success. > I took a look at the code in the guide > > > http://docs.thefoundry.co.uk/nuke/63/pythondevguide/basics.html#creating-progress-bar-dialogs > > But I am clearly missing something. > Could someone kindly explain it to me in an easier way? > Imagine I have a function like this: > > def dummy(): > for n in nuke.allNodes('Read'): > print 'here my super slow function' > > where and how should I implement the progress bar? > should I use the code from the example and then call the whole funciont in > a new thread? like > > threading.Thread( None, dummy ).start() > > Thanks for your time > > -- > *Luca Fiorentini - 3D Lighting Artist* > My Showreel <http://www.vimeo.com/lucafiorentini/reel> - My > blog<http://lucafiorentini.wordpress.com/>- My > Flickr <http://www.flickr.com/photos/lucafiorentini> > > ------------------------------ > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > -- > *Luca Fiorentini - 3D Lighting Artist* > My Showreel <http://www.vimeo.com/lucafiorentini/reel> - My > blog<http://lucafiorentini.wordpress.com/>- My > Flickr <http://www.flickr.com/photos/lucafiorentini> > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > > > > _______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > >
_______________________________________________ Nuke-python mailing list Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python