Asyncore

Neil Benn benn at cenix-bioscience.com
Wed Jul 14 05:45:20 EDT 2004


Hello,

          I was wondering if someone could provide assistance.  I'm 
writing a thin wrapper around asyncore for compatibility with a common 
Comms API that I use. 

class (SocketComms(_AbstractComms, dispatcher)

I have a class which extends dispatcher and adds in a few things more.  
However when I call the connect method (this is simplified to remove any 
influence that my class may have) using the following:

 self.connect(('127.0.0.1', 1025))

    I get an error where getattr is being called recursively :

File "h:\CeLMA\Automation\Comms\CommsImpl.py", line 624, in open
    self.connect(('127.0.0.1', 1025))
  File "c:\program files\python23\lib\asyncore.py", line 307, in connect
    err = self.socket.connect_ex(address)
  File "c:\program files\python23\lib\asyncore.py", line 365, in __getattr__
    return getattr(self.socket, attr)
  File "c:\program files\python23\lib\asyncore.py", line 365, in __getattr__
    return getattr(self.socket, attr)
  File "c:\program files\python23\lib\asyncore.py", line 365, in __getattr__
    return getattr(self.socket, attr)
*<snip a few hundred lines>
*  File "c:\program files\python23\lib\asyncore.py", line 365, in 
__getattr__
    return getattr(self.socket, attr)
RuntimeError: maximum recursion depth exceeded

    Looking at this it seems like in asyncore self.socket is itself a 
dispatcher.  None of the classes in _AbstractComms are using getattr and 
neither do they define a socket method, attribute, property or pink 
elephant!

    Has anyone seen this before?  If you have please could you provide 
me with some pointers as to what the issue could be?

Cheers,

Neil
**

-- 

Neil Benn
Senior Automation Engineer
Cenix BioScience
BioInnovations Zentrum
Tatzberg 47
D-01307
Dresden
Germany

Tel : +49 (0)351 4173 154
e-mail : benn at cenix-bioscience.com
Cenix Website : http://www.cenix-bioscience.com




More information about the Python-list mailing list