unussum | 1 Dec 06:26
Picon

Re: OS X Terminal iPython history display bug

This issue still irritates me frequently.

To try to summarize the problem in an understandable manner, if I type the following:

In [22]: one two three four five six sevel eight

and then press control-A to jump to the beginning of the line, the curser jumps up to the end of the previous line. If I then press control-F repeatedly to move forward through the text, the text I wrote overwrites the above (basically everything is transposed backwards that many characters (8-10ish) as such:

partway through, with the curser at the end of two:

                                                                               o
ne two]: one two three four five six sevel eight


all the way through:
                                                                               o
ne two three four five six seven eighseven eight


at which point it even wraps again ending in this:

                                           one two three four five six sevel eig
ht two three four five six sevel eighsevel eight


With no In[#] prompt whatsoever.


This also occurs when using the history to pull back a long enough line, e.g. (Using the previous line):

ht [23]: one two three four five six sevel eig


Is there some place where I could file a bug about it?

Or does anybody have an idea of where I should start looking if I wanted to try and fix it myself?

(I don't have a whole lot of experience in stuff of this nature, but I expect if nothing else I'd learn something from trying.)

-L

On Oct 22, 2008, at 12:38 PM, Lawrence Johnston wrote:

This is only in IPython. Neither bash nor python exhibits this behavior (I just checked). `echo $COLUMNS` returns 80, which is the proper size.

With a bit of further research, it seems to be related to the difference in length between the IPython prompt (e.g. "In [19]: ") and my terminal prompt, which is the default
"My-very-long-indeed-computer-name:~/MyCurrentDirectory $"

Basically, I've found that I don't have to even wrap the line in IPython, I only have to write a line of a length that would wrap if I had been using the really long terminal prompt before the weird behavior starts exhibiting itself (e.g. if my prompt is 20 chars and my window is 80, I only have to write a line of 61+ characters in length before weird stuff starts happening.

Maybe I need to post some pictures, it's difficult to describe.

Is there a place where I should be filing this as a bug?

-L


On Oct 22, 2008, at 6:36 AM, Jeff Kaufman wrote:

On Tue, Oct 21, 2008 at 01:09:50PM -0700, Lawrence Johnston wrote:

Using IPython 0.9.1 on OS X 10.5.5, The history access of any command
which wraps beyond a single screen seems to be messed up.
...

Is this only in ipython?  When this has happend to me in ipython it's
turned out to be a terminal problem that affects other terminally
stuff too.  And for me the root was that somehow a resize didn't
update the COLUMNS evnvironment variable.  If

echo $COLUMNS

gives the wrong number, I've fixed it by resizing it away from where I
want and back again.

Jeff
_______________________________________________
IPython-user mailing list
IPython-user <at> scipy.org
http://lists.ipython.scipy.org/mailman/listinfo/ipython-user


_______________________________________________
IPython-user mailing list
IPython-user <at> scipy.org
http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
Vishal Vatsa | 1 Dec 16:57
Picon
Gravatar

gathering statics/infomation from running TaskController

Hi Guys, 

I have wondering about, whats the best way to get data from the TaskController about things like which job is
cooking on which engine. 

It alway nice to have some visualization of what the cluster is up to.

Any one have any thoughts on this?

Regards,
-vishal 
MinRK | 1 Dec 18:30
Picon
Gravatar

Re: gathering statics/infomation from running TaskController

TaskClient.queue_status(True)
returns a dict of taskID lists for completed, failed, pending, queued

The pending list currently ignores which engine is doing which task, but we could easily change that, so it would look more like:
{completed: [0,1],
queued: [],
pending: {1:3,2:4,3:None},
failed: [2]
}

Now, if we want something more thorough, including pending runtime etc., then perhaps another method would be called for.

-MinRK

On Mon, Dec 1, 2008 at 7:57 AM, Vishal Vatsa <vishal.vatsa <at> gmail.com> wrote:
Hi Guys,

I have wondering about, whats the best way to get data from the TaskController about things like which job is cooking on which engine.

It alway nice to have some visualization of what the cluster is up to.

Any one have any thoughts on this?

Regards,
-vishal

_______________________________________________
IPython-dev mailing list
IPython-dev <at> scipy.org
http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev

_______________________________________________
IPython-dev mailing list
IPython-dev <at> scipy.org
http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev
Jose Gómez-Dans | 1 Dec 18:50
Picon
Gravatar

Trivial parallelisation

Hi,
I do have some trivial parallel code (I need to apply some analysis algorithm 
to a bunch of data files), and access to either an SMP linux machine with 
loads of CPUs or to a linux cluster. In the past, I have launched my python 
scripts with a different command line to get them to run concurrently, but I 
was thinking whether there's some pythonic way of dealing with this that is 
simple.

I seem to remember that ipython would be a nice tool for this, but I'm not 
sure of it, or indeed, any other alternatives.

My code is simple:
for file in list_of_files:
  #I want spawn this next line
  ProcessFile ( file )

Thanks for your help,
Jose
Brian Granger | 1 Dec 20:00
Picon

Re: Trivial parallelisation

Yes, IPython will handle this beautifully.  Here is an example, with
everything done interactively:

pcp025387pcs:~ bgranger$ ipython
Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26)
Type "copyright", "credits" or "license" for more information.

IPython 0.9.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: files = ['file%i.txt' % i for i in range(10)]

In [2]: files
Out[2]:
['file0.txt',
 'file1.txt',
 'file2.txt',
 'file3.txt',
 'file4.txt',
 'file5.txt',
 'file6.txt',
 'file7.txt',
 'file8.txt',
 'file9.txt']

In [3]: from IPython.kernel import client

# this won't load balance, but has low overhead
In [4]: mec = client.MultiEngineClient()

In [5]: def doit(file):
   ...:     pass
   ...:

In [6]: mec.map(doit,files)
Out[6]: [None, None, None, None, None, None, None, None, None, None]

# this does load balance, but has higher overhead
In [7]: tc = client.TaskClient()

In [8]: tc.map(doit,files)
Out[8]: [None, None, None, None, None, None, None, None, None, None]

Our documentation has more details on how to use all of this:

http://ipython.scipy.org/doc/rel-0.9.1/html/parallel/index.html

But, please don't hesitate to ask us questions.

Cheers,

Brian

On Mon, Dec 1, 2008 at 9:50 AM, Jose Gómez-Dans <jgomezdans <at> gmail.com> wrote:
> Hi,
> I do have some trivial parallel code (I need to apply some analysis algorithm
> to a bunch of data files), and access to either an SMP linux machine with
> loads of CPUs or to a linux cluster. In the past, I have launched my python
> scripts with a different command line to get them to run concurrently, but I
> was thinking whether there's some pythonic way of dealing with this that is
> simple.
>
> I seem to remember that ipython would be a nice tool for this, but I'm not
> sure of it, or indeed, any other alternatives.
>
> My code is simple:
> for file in list_of_files:
>  #I want spawn this next line
>  ProcessFile ( file )
>
> Thanks for your help,
> Jose
> _______________________________________________
> IPython-user mailing list
> IPython-user <at> scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
Brian Granger | 1 Dec 23:09
Picon

Re: [0:execute]: IOError: [Errno 4] Interrupted system call

> Sorry I don't have any specific information concerning your situation,
> but as it's been a few days with no response, I figured I'd chime in. My
> understanding is that an interrupted system call (EINTR) happens when a
> system call (e.g. select(), fread(), fwrite(), and so on) is interrupted
> by a signal that the kernel decides your thread is going to handle. The
> correct behavior is to deal appropriately with the signal (possibly
> ignoring it) and then repeat your system call.

Yep, I think that is what is going on.  Is there a chance that the
signal is anything other than EINTR?  I ask as that will help us track
this down.

> I've found lots of code in the wild that is not robust to being
> interrupted this way (including in core Python), but luckily very little
> code that sends signals and thus interrupts code that way. So, I think
> the best solution will be to find what is sending the signal and
> eliminate it. Hopefully this will ring some bells with someone more
> knowledgeable in the ipython internals than I. Also, are you running any
> third party code that could be sending signals?

There are a couple of possibilities:

1.  Something deep in the internals of Python itself.
2.  Something deep in Twisted
3.  It wouldn't be in IPython as we (as far as I know) are not sending
any signals.
4.  Deep somewhere in user code that they are not aware of.

My best guesses are Twisted or in user code.  I will look at Twisted
to see if it sends signals anywhere.  Is it also possible that the
kernel itself sends the signal?

Thanks

Brian

> -Andrew
>
> mark starnes wrote:
>> Hi again,
>>
>> I cannot replicate this behaviour from the IPython console.  I attempted it, using:
>>
>>
>> from IPython.kernel import client
>> mec = client.MultiEngineClient()
>>
>> # Create file.
>> import cPickle
>> a = file('/tmp/temp.file', 'wb')
>> cPickle.dump('0' * int(1E5), a)
>> a.close()
>>
>> # Execute repeated loads on engines.
>> mec.execute('import cPickle')
>>
>> for j in xrange(100):
>>     for i in xrange(3):
>>         command = "a = file('/tmp/temp.file')"
>>         mec.execute(command, targets = [i])
>>         command = "b = cPickle.load(a)"
>>         mec.execute(command, targets = [i])
>>         command = "a.close()"
>>         mec.execute(command, targets = [i])
>>
>>
>> performing 100 reads, with no errors.
>>
>> BR,
>>
>> Mark.
>>
>>
>>
>>
>> mark starnes wrote:
>>> Hi everyone,
>>>
>>> I'm performing blocking file read commands on remote engines, one at a time, but regularly get the
>>> error:
>>>
>>> ********************************************************************************************************
>>>
>>> CompositeError                            Traceback (most recent call last)
>>>
>>> <ipython console> in <module>()
>>>
>>> /fe2.pyc in setup(self, append)
>>>     365             diskpush({'a':self}, picklemode = 0)  # use mode 0 (others fail)
>>>     366          else:
>>> --> 367             diskpush({'a':self})
>>>     368
>>>     369
>>>
>>> /reference.pyc in diskpush(a, targets, block, isanobject, picklemode)
>>>    3359       time.sleep(5.0); mprint('Done. ')
>>>    3360       #mec.execute('tmpdata = dpfile.read()', targets = [i], block = True)
>>> -> 3361       mec.execute('dpvar = cPickle.load(dpfile)', targets = [i], block = True)
>>>    3362       mec.execute('dpfile.close()', targets = [i], block = True)
>>>    3363       #mec.barrier(a)
>>>
>>> /usr/local/lib64/python2.5/site-packages/IPython/kernel/multiengineclient.pyc in
execute(self, lines, targets, block)
>>>     520         targets, block = self._findTargetsAndBlock(targets, block)
>>>     521         result = blockingCallFromThread(self.smultiengine.execute, lines,
>>> --> 522             targets=targets, block=block)
>>>     523         if block:
>>>     524             result = ResultList(result)
>>>
>>> /usr/local/lib64/python2.5/site-packages/IPython/kernel/twistedutil.pyc in
blockingCallFromThread(f, *a, **kw)
>>>      67         @raise: any error raised during the callback chain.
>>>      68         """
>>> ---> 69         return twisted.internet.threads.blockingCallFromThread(reactor, f, *a, **kw)
>>>      70
>>>      71 else:
>>>
>>>
/usr/local/lib64/python2.5/site-packages/Twisted-8.1.0-py2.5-linux-x86_64.egg/twisted/internet/threads.pyc
in blockingCallFromThread(reactor, f, *a, **kw)
>>>      81     result = queue.get()
>>>      82     if isinstance(result, failure.Failure):
>>> ---> 83         result.raiseException()
>>>      84     return result
>>>      85
>>>
>>>
/usr/local/lib64/python2.5/site-packages/Twisted-8.1.0-py2.5-linux-x86_64.egg/twisted/python/failure.pyc
in raiseException(self)
>>>     317         information if available.
>>>     318         """
>>> --> 319         raise self.type, self.value, self.tb
>>>     320
>>>     321
>>>
>>> CompositeError: one or more exceptions from call to method: execute
>>> [0:execute]: IOError: [Errno 4] Interrupted system call
>>>
>>> *******************************************************************************************************************
>>>
>>> It doesn't always happen; sometimes it will occur after a few hours of execution (ruining overnight runs).
>>> The active parts of the routine falling over are:
>>>
>>> =============================================
>>> for i in targets:  # Sequential engine reads.
>>>    mec.execute('dpfile = bz2.BZ2File(tmpfn, "rb")', targets = [i], block = True)
>>>    mec.execute('dpvar = cPickle.load(dpfile)', targets = [i], block = True)
>>>    mec.execute('dpfile.close()', targets = [i], block = True)
>>>
>>> =============================================
>>>
>>> with targets = mec.get_ids()
>>>
>>>
>>>
>>> Following the error, subsequent requests to the engines get results like:
>>>
>>>
>>>
>>>
>>> /<ipython console> in <module>()
>>>
>>> /fe2.pyc in setup(self, append)
>>>     365             diskpush({'a':self}, picklemode = 0)  # use mode 0 (others fail)
>>>     366          else:
>>> --> 367             diskpush({'a':self})
>>>     368
>>>     369
>>>
>>> /reference.py in diskpush(a, targets, block, isanobject, picklemode)
>>>    3359       #time.sleep(5.0); mprint('Done. ')
>>>    3360       #mec.execute('tmpdata = dpfile.read()', targets = [i], block = True)
>>> -> 3361       mec.execute('dpvar = cPickle.load(dpfile)', targets = [i], block = True)
>>>    3362       mec.execute('dpfile.close()', targets = [i], block = True)
>>>    3363       #mec.barrier(a)
>>>
>>> /usr/local/lib64/python2.5/site-packages/IPython/kernel/multiengineclient.pyc in
execute(self, lines, targets, block)
>>>     520         targets, block = self._findTargetsAndBlock(targets, block)
>>>     521         result = blockingCallFromThread(self.smultiengine.execute, lines,
>>> --> 522             targets=targets, block=block)
>>>     523         if block:
>>>     524             result = ResultList(result)
>>>
>>> /usr/local/lib64/python2.5/site-packages/IPython/kernel/twistedutil.pyc in
blockingCallFromThread(f, *a, **kw)
>>>      67         @raise: any error raised during the callback chain.
>>>      68         """
>>> ---> 69         return twisted.internet.threads.blockingCallFromThread(reactor, f, *a, **kw)
>>>      70
>>>      71 else:
>>>
>>>
/usr/local/lib64/python2.5/site-packages/Twisted-8.1.0-py2.5-linux-x86_64.egg/twisted/internet/threads.pyc
in blockingCallFromThread(reactor, f, *a, **kw)
>>>      81     result = queue.get()
>>>      82     if isinstance(result, failure.Failure):
>>> ---> 83         result.raiseException()
>>>      84     return result
>>>      85
>>>
>>>
/usr/local/lib64/python2.5/site-packages/Twisted-8.1.0-py2.5-linux-x86_64.egg/twisted/python/failure.pyc
in raiseException(self)
>>>     317         information if available.
>>>     318         """
>>> --> 319         raise self.type, self.value, self.tb
>>>     320
>>>     321
>>>
>>> CompositeError: one or more exceptions from call to method: execute
>>> [0:execute]: AttributeError: 'module' object has no attribute 'cbook'
>>>
>>>
>>>
>>> and then, when I quit IPython, I get,
>>>
>>> Closing threads... Done.
>>> Exception exceptions.TypeError: "'NoneType' object is not callable" in <bound method
RemoteReferenceTracker._refLost of
<RemoteReferenceTracker(clid=1,url=pbu://127.0.0.1:24879/uwtv36uev6e7emd45xfz77tt75krrduj)>> ignored
>>>
>>>
>>>
>>>
>>> The engines need a restart after this error.  Any ideas on how to fix this, would be appreciated.  It's
>>> hobbling my parallel processing attempts!
>>>
>>> Thanks in advance,
>>>
>>> Mark.
>>>
>>>
>>>
>>>
>>>
>>>
>>> matplotlib version 0.98.3
>>> verbose.level helpful
>>> interactive is False
>>> units is False
>>> platform is linux2
>>> Could not load matplotlib icon: 'module' object has no attribute 'window_set_default_icon_from_file'
>>> backend QtAgg version 0.9.1
>>> Activating auto-logging. Current session state plus future input saved.
>>> Filename       : ipython_log.py
>>> Mode           : rotate
>>> Output logging : False
>>> Raw input log  : False
>>> Timestamping   : False
>>> State          : active
>>> Python 2.5.1 (r251:54863, Jan 10 2008, 18:00:49)
>>> Type "copyright", "credits" or "license" for more information.
>>>
>>> IPython 0.9.rc1 -- An enhanced Interactive Python.
>>>
>>>
>>> _______________________________________________
>>> IPython-user mailing list
>>> IPython-user <at> scipy.org
>>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>>>
>> _______________________________________________
>> IPython-user mailing list
>> IPython-user <at> scipy.org
>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
> _______________________________________________
> IPython-user mailing list
> IPython-user <at> scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
Brian Granger | 1 Dec 23:12
Picon

Re: cd doesn't work on Windows

Can you file a bug report on our launchpad site:

https://bugs.launchpad.net/ipython

Thanks,

Brian

On Tue, Nov 25, 2008 at 10:25 PM, Elias Bröms <elias <at> eliasit.se> wrote:
> Now I've uninstalled ipython, python and panda3d.
> Then I reinstalled python and ipython in their default locations.
> I still have this problem!
>
> Elias
>
>
> 2008/11/17 Elias Bröms <elias <at> eliasit.se>:
>> 2008/11/16 Ville M. Vainio <vivainio <at> gmail.com>:
>>
>>> What do you get from "%which ls"? If that does not work immediately,
>>> do "import ipy_which" and repeat.
>>>
>>> Likewise, try running some long running system command ("!copy con
>>> test") and interrupt it with ctrl+c, paste the traceback here.
>>>
>>
>> In [7]: %which ls
>> ls -> dir /on
>>
>> In [8]: !copy con test
>> I/O-åtgärden har avbrutits därför att en tråd har avslutats eller för
>> att ett program har begärt det.
>>        0 fil(er) kopierad(e).
>> ERROR: An unexpected error occurred while tokenizing input
>> The following traceback may be corrupted or invalid
>> The error message is: ('EOF in multi-line statement', (479, 0))
>>
>> ---------------------------------------------------------------------------
>> KeyboardInterrupt                         Traceback (most recent call last)
>>
>> C:\Program\Panda3D-1.5.3\python\Scripts\<ipython console> in <module>()
>>
>> C:\Program\Panda3D-1.5.3\python\lib\site-packages\IPython\iplib.pyc in
>> <lambda>(cmd)
>>    489         # and it allows interpolation of variables in the
>> user's namespace.
>>    490         self.system = lambda cmd: \
>> --> 491
>> self.hooks.shell_hook(self.var_expand(cmd,depth=2))
>>    492
>>    493         # These are for getoutput and getoutputerror:
>>
>> C:\Program\Panda3D-1.5.3\python\lib\site-packages\IPython\hooks.pyc in
>> __call__(self, *args, **kw)
>>    139             #print "prio",prio,"cmd",cmd #dbg
>>    140             try:
>> --> 141                 ret = cmd(*args, **kw)
>>    142                 return ret
>>    143             except ipapi.TryNext, exc:
>>
>> C:\Program\Panda3D-1.5.3\python\lib\site-packages\IPython\hooks.pyc in
>> shell_hook(self, cmd)
>>    227     """ Run system/shell command a'la os.system() """
>>    228
>> --> 229     shell(cmd, header=self.rc.system_header,
>> verbose=self.rc.system_verbose)
>>    230
>>    231 def show_in_pager(self,s):
>>
>> C:\Program\Panda3D-1.5.3\python\lib\site-packages\IPython\genutils.pyc
>> in shell(cmd, verbose, debug, header)
>>    392                 os.chdir(path)
>>    393         else:
>> --> 394             shell_ori(cmd,verbose,debug,header)
>>    395
>>    396     shell.__doc__ = shell_ori.__doc__
>>
>> C:\Program\Panda3D-1.5.3\python\lib\site-packages\IPython\genutils.pyc
>> in shell(cmd, verbose, debug, header)
>>    372     if not debug:
>>    373         platutils.set_term_title("IPy " + cmd)
>> --> 374         os.system(cmd)
>>    375         platutils.set_term_title("IPy " + abbrev_cwd())
>>    376
>>
>> KeyboardInterrupt:
>>
> _______________________________________________
> IPython-user mailing list
> IPython-user <at> scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
Vishal Vatsa | 1 Dec 23:12
Picon
Gravatar

Re: gathering statics/infomation from running TaskController

Cheers for the response 

MinRK wrote:

> TaskClient.queue_status(True)
> returns a dict of taskID lists for completed, failed, pending, queued

> The pending list currently ignores which engine is doing which task, but
> we could easily change that, so it would look more like:
> {completed: [0,1],
> queued: [],
> pending: {1:3,2:4,3:None},
> failed: [2]
> }

Thanks, ya, if queue_status can give information on which engine is doing which task, it would be great.

> Now, if we want something more thorough, including pending runtime etc.,
> then perhaps another method would be called for.
> 
> -MinRK
> 
> On Mon, Dec 1, 2008 at 7:57 AM, Vishal Vatsa <vishal.vatsa <at> gmail.com>
> wrote:
> 
>> Hi Guys,
>>
>> I have wondering about, whats the best way to get data from the
>> TaskController about things like which job is cooking on which engine.
>>
>> It alway nice to have some visualization of what the cluster is up to.
>>
>> Any one have any thoughts on this?
>>
>> Regards,
>> -vishal
>>
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev <at> scipy.org
>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev
>>
Brian Granger | 1 Dec 23:14
Picon

Re: OS X Terminal iPython history display bug

Yes, could you file a bug report here:

https://bugs.launchpad.net/ipython

Thanks!

Brian

On Wed, Oct 22, 2008 at 11:38 AM, Lawrence Johnston <unussum <at> gmail.com> wrote:
> This is only in IPython. Neither bash nor python exhibits this
> behavior (I just checked). `echo $COLUMNS` returns 80, which is the
> proper size.
>
> With a bit of further research, it seems to be related to the
> difference in length between the IPython prompt (e.g. "In [19]: ") and
> my terminal prompt, which is the default
> "My-very-long-indeed-computer-name:~/MyCurrentDirectory $"
>
> Basically, I've found that I don't have to even wrap the line in
> IPython, I only have to write a line of a length that would wrap if I
> had been using the really long terminal prompt before the weird
> behavior starts exhibiting itself (e.g. if my prompt is 20 chars and
> my window is 80, I only have to write a line of 61+ characters in
> length before weird stuff starts happening.
>
> Maybe I need to post some pictures, it's difficult to describe.
>
> Is there a place where I should be filing this as a bug?
>
> -L
>
>
> On Oct 22, 2008, at 6:36 AM, Jeff Kaufman wrote:
>
>> On Tue, Oct 21, 2008 at 01:09:50PM -0700, Lawrence Johnston wrote:
>>>
>>> Using IPython 0.9.1 on OS X 10.5.5, The history access of any command
>>> which wraps beyond a single screen seems to be messed up.
>>> ...
>>
>> Is this only in ipython?  When this has happend to me in ipython it's
>> turned out to be a terminal problem that affects other terminally
>> stuff too.  And for me the root was that somehow a resize didn't
>> update the COLUMNS evnvironment variable.  If
>>
>>  echo $COLUMNS
>>
>> gives the wrong number, I've fixed it by resizing it away from where I
>> want and back again.
>>
>> Jeff
>> _______________________________________________
>> IPython-user mailing list
>> IPython-user <at> scipy.org
>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
> _______________________________________________
> IPython-user mailing list
> IPython-user <at> scipy.org
> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
>
Brian Granger | 1 Dec 23:16
Picon

Re: [IPython-dev] gathering statics/infomation from running TaskController

> if queue_status can give information on which engine is doing which task, it would be great.

What is the usage case for this.  My only hesitation to add this is
that there is no promise that the engine that is currently working on
a task will be the engine that actually completes the task.

Brian

Gmane