Re: How to schedule system calls with Python
> Again another great suggestion. I was not aware of the > multiprocessing module, and I'm not (yet) sure if I understand why I > should use instead of multithreading as explained by a previous post. http://docs.python.org/library/multiprocessing.html First paragraph... -- Thanks, --Minesh -- http://mail.python.org/mailman/listinfo/python-list
Re: subprocess hangs on reading stdout
> > Any ideas? comments on code welcome also. Here's something that I would probably do, there may be better ways. This only works on python2.6 for the terminate() method. import signal import subprocess def timeout_handler(signum, frame): print "About to kill process" p.terminate() for machine_name in self.alive: cmd = ["/bin/remsh", machine_name, 'ps -flu %s' % uid] signal.signal(signal.SIGALRM, timeout_handler) signal.alarm(1) p = subprocess.Popen(cmd,stdout=subprocess.PIPE) (stdout, stderr) = p.communicate() signal.alarm(0) if stdout: print stdout elif stderr: print stderr -- Thanks, --Minesh -- http://mail.python.org/mailman/listinfo/python-list
Re: how to iterate over several lists?
On Fri, Jun 5, 2009 at 10:20 AM, Tom wrote: > On Fri, 5 Jun 2009 04:07:19 + (UTC), kj > wrote: > >> >> >>Suppose I have two lists, list_a and list_b, and I want to iterate >>over both as if they were a single list. E.g. I could write: >> >>for x in list_a: >> foo(x) >>for x in list_b: >> foo(x) >> >>But is there a less cumbersome way to achieve this? I'm thinking >>of something in the same vein as Perl's: >> >>for $x in (@list_a, @list_b) { >> foo($x); >>} >> >>TIA! >> >>kynn > > def chain(*args): > return (item for seq in args for item in seq) > > for x in chain(list_a, list_b): > foo(x) > -- > http://mail.python.org/mailman/listinfo/python-list > If they are the same length, you can try the zip built-in function. -- Thanks, --Minesh -- http://mail.python.org/mailman/listinfo/python-list
Re: ConfigParser and newlines
> Not as best I can tell. From my /usr/lib/python2.5/ConfigParser.py file, > around line 441: > > if line[0].isspace() and cursect is not None and optname: > value = line.strip() > if value: > cursect[optname] = "%s\n%s" % (cursect[optname], value) > > That "value = line.strip()" is what's throwing away your extra newline. > Then the "if value" refuses to add the extra newline because it was a blank > line. It looks like this behavior was intentional? > Is that a bug? What would be the use cases for stripping newlines unnecessarily. Seems like the configParser is trying to be too clever. -- Thanks, ./Minesh -- http://mail.python.org/mailman/listinfo/python-list
ConfigParser and newlines
I am using ConfigParser to parse a config file and I want to maintain the newlines, how is it possible. Example given below. BTW, is there an alternative to configParser, should I use 'exec' instead. Is there any support for yaml built-in or possibly in the future? test.cfg [Foo_Section] BODY = Line of text 1 Continuing Line of text 1 Executing the code === Python 2.5.1 Stackless 3.1b3 060516 (release25-maint, Mar 6 2009, 14:12:34) [GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from ConfigParser import RawConfigParser >>> config = RawConfigParser() >>> config.read('test.cfg') ['test.cfg'] >>> config.get('Foo_Section', 'BODY') 'Line of text 1\nContinuing Line of text 1' >>> === I was expecting 'Line of text 1\n\nContinuing Line of text 1' with 2 newlines, how can I achieve that with ConfigParser. -- Thanks, ./Minesh -- http://mail.python.org/mailman/listinfo/python-list
Re: Is there is any way to send messages to chunk of emails ID's concurrently using smptlib
On Mon, May 4, 2009 at 2:01 PM, Piet van Oostrum wrote: >> gganesh (g) wrote: > >>g> Hi friends, >>g> I suppose sendmail() can send mails one by one ,how to send mails >>g> concurrently , >>g> It would be very grateful,if someone could point out a solution. > You can always use twisted which has an smtp library which is used for concurrency. Not a complete working example but an understanding of deferreds is required. Ex: from twisted.mail import smtp from twisted.internet import reactor, defer def sendEmail(to, message, subject="Testing", _from='f...@bar.com'): """Used to send emails asyncronously to multiple recipients""" msg = MIMEText(message) msg['Subject'] = subject msg['From'] = _from msg['To'] = ", ".join(to) sending = smtp.sendmail('localhost', _from, to, msg) sending.addCallback(sendComplete, to).addErrback(sendFailed) def sendFailed(error): print "Email failed: %r" % (error.getTraceback(),) def sendComplete(result, recipients): numDelivered, addrInfo = result print addrInfo if (numDelivered != len(recipients)): log.msg(SmtpError, "Not all recipients received email %r" % addrInfo) buf = 'TESTING' sendEmail(to=['t...@spam.com'], message=buf) -- Thanks, ./Minesh -- http://mail.python.org/mailman/listinfo/python-list
Re: parallel/concurrent process in python
> os.fork is not cross platform. It is *nix only. Subprocess runs on > Windows also. The OP never specified his platform. > Just out of curiosity, how is one able to replace an os.fork() call with subprocess and have the child execute multiple statements? I typically see subprocess used for spawning a shell command, piping, etc... -- Thanks, Minesh Patel -- http://mail.python.org/mailman/listinfo/python-list
Re: parallel/concurrent process in python
On Mon, Mar 9, 2009 at 2:47 PM, wrote: > I'm trying to figure out parallel process python code. Something > similar to fork funtion in C. > > For example, I using sniff tool in scapy to capture packets but i want > this to run in the background: > > --- > from scapy.all import * > import subprocess > import netsnmp > > pkts=sniff(iface="eth0",filter="UDP",count=100) # This should run in > the background > > print "Next Code."' > - > > > "Next Code." should be printed out right away and does not have to > wait for pkts=sniff(...) to finish. > > Any ideas? Why not use os.fork(), it is the same as C's fork? if os.fork(): # Returns 0 to child, non-zero to parent # Do parent stuff else: # Do child stuff -- Thanks, Minesh Patel -- http://mail.python.org/mailman/listinfo/python-list
Re: Concurrent tasklets in Stackless Python
On Mon, Mar 9, 2009 at 3:17 PM, Chris Rebert wrote: > On Mon, Mar 9, 2009 at 3:05 PM, Minesh Patel wrote: >> Is there a way for multiple tasklets to run in parallel? > > Seems doubtful (though I'm not an expert). > > From the Wikipedia article: "Stackless microthreads are managed by the > language interpreter itself, not the operating system kernel—context > switching and task scheduling is done purely in the interpreter. " > > This suggests that only one microthread is ever really being run at > any given time. I would venture a guess that the lack of "true" > parallel-ness is probably a design decision deeply ingrained into > Stackless and is not changeable. You'd probably have to change to > multiprocessing or threads. > Thanks Chris, Can you suggest any Python libraries for true parallelism or should I just stick with Python Threads or asyncore Thanks, Minesh -- http://mail.python.org/mailman/listinfo/python-list
Concurrent tasklets in Stackless Python
Is there a way for multiple tasklets to run in parallel? I have been following the examples in http://members.verizon.net/olsongt/stackless/why_stackless.html but it seems that tasklets block for data or are scheduled and there is no way to run them concurrently. -- Thanks, Minesh Patel -- http://mail.python.org/mailman/listinfo/python-list
Re: Should I use stackless python or threads?
On Fri, Mar 6, 2009 at 3:16 PM, Jean-Paul Calderone wrote: > On Fri, 6 Mar 2009 14:50:51 -0800, Minesh Patel wrote: >> >> I am trying to figure out the best approach to solve this problem: >> >> I want to poll various directories(can be run in the main thread). >> Once I notice a file has been added to any directory, I grab a lock, >> spawn a thread to go perform the necessary actions, and then release >> the lock. > > That's not a description of a problem. That's a description of a potential > solution. What problem are you trying to solve? > I have a build system that is outputting various forms of installations in a particular directory structure, e.g. /pxe-installs, /iso-install, /dd-installs, etc... I need to monitor each directory for the latest install, take it and go perform some tests on a specific machine. I would like these testing tasks to run concurrently for the obvious reasons. Thanks again for the help, Minesh -- http://mail.python.org/mailman/listinfo/python-list
Should I use stackless python or threads?
I am trying to figure out the best approach to solve this problem: I want to poll various directories(can be run in the main thread). Once I notice a file has been added to any directory, I grab a lock, spawn a thread to go perform the necessary actions, and then release the lock. -- Thanks for the help, Minesh Patel -- http://mail.python.org/mailman/listinfo/python-list
Python patch module
Hi, I was wondering if there is any patch management module for Python. Basically I am looking to only apply a hunk from a patch if the file exists. -- Thanks, Minesh -- http://mail.python.org/mailman/listinfo/python-list