The urlparse module is load only when this module run as main entry. Its for test purpose of modules.
2010/10/17, chad <cdal...@gmail.com>: > On Oct 16, 11:02 am, Felipe Bastos Nunes <felipe.bast...@gmail.com> > wrote: >> You edited the source of asyncore.py puttin the print statments and >> nothing happend? It should work as the method is called as the page >> you posted said. >> >> 2010/10/16, chad <cdal...@gmail.com>: >> >> >> >> > On Oct 16, 6:47 am, Lucasm <lordlucr...@gmail.com> wrote: >> >> On 16 Okt, 15:31, chad <cdal...@gmail.com> wrote: >> >> >> > At the following url.. >> >> >> >http://www.nightmare.com/medusa/programming.html >> >> >> > The author has the following code for a simple HTTP client >> >> >> > #!/usr/bin/python >> >> >> > import asyncore >> >> > import socket >> >> > import string >> >> >> > class http_client (asyncore.dispatcher): >> >> >> > def __init__ (self, host, path): >> >> > asyncore.dispatcher.__init__ (self) >> >> > self.path = path >> >> > self.create_socket (socket.AF_INET, socket.SOCK_STREAM) >> >> > self.connect ((host, 80)) >> >> >> > def handle_connect (self): >> >> > self.send ('GET %s HTTP/1.0\r\n\r\n' % self.path) >> >> >> > def handle_read (self): >> >> > data = self.recv (8192) >> >> > print data >> >> >> > def handle_write (self): >> >> > pass >> >> >> > if __name__ == '__main__': >> >> > import sys >> >> > import urlparse >> >> > for url in sys.argv[1:]: >> >> > parts = urlparse.urlparse (url) >> >> > if parts[0] != 'http': >> >> > raise ValueError, "HTTP URL's only, please" >> >> > else: >> >> > host = parts[1] >> >> > path = parts[2] >> >> > http_client (host, path) >> >> > asyncore.loop() >> >> >> > Right after that, the author states the following... >> >> >> > " A really good way to understand select() is to put a print >> >> > statement >> >> > into the asyncore.poll() function: >> >> >> > [...] >> >> > (r,w,e) = select.select (r,w,e, timeout) >> >> > print '---' >> >> > print 'read', r >> >> > print 'write', w >> >> > [...] >> >> >> > Each time through the loop you will see which channels have fired >> >> > which events. >> >> > " >> >> >> > How the heck do I modify the code put the print statement into the >> >> > asyncore.poll() function? >> >> >> > Chad >> >> >> Hi, >> >> >> You can find the file in your Python directory, in my case /usr/lib/ >> >> Python2.6/asyncore.py. You should delete the .pyc file to make sure it >> >> is recompiled. And you will need root access :). >> >> >> Lucas >> >> > I just did that... >> >> > [r...@localhost python2.6]# ls -al asyncore.py >> > -rw-r--r-- 1 root root 19262 Oct 16 10:22 asyncore.py >> > [r...@localhost python2.6]# ls -al asyncore.pyc >> > -rw-r--r-- 1 root root 16773 Oct 16 10:26 asyncore.pyc >> > [r...@localhost python2.6]# ls -al asyncore.pyo >> > -rw-r--r-- 1 root root 16773 Oct 16 10:42 asyncore.pyo >> > [r...@localhost python2.6]# >> >> > And nothing happened. Ideas? >> > -- > > One last question. > > Why does the author have both import sys and import urlparse below > __main__? Ie > > if __name__ == '__main__': > import sys > import urlparse > > Why not just put them at the top with the rest? > > Chad > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list