Adding a break point just before the failing point reported in the snippet, this is the MRO of the objects, depending on the version:
py38: (<class 'eventlet.green.ssl.GreenSSLSocket'>, <class 'ssl.SSLSocket'>, <class 'socket.socket'>, <class '_socket.socket'>, <class 'object'>)
py36: (<class 'eventlet.green.ssl.GreenSSLSocket'>, <class 'ssl.SSLSocket'>, <class 'eventlet.greenio.base.GreenSocket'>, <class 'object'>)
In py36, the instance of the class GreenSSLSocket, do not inherit from socket.
Adding a break point just before the failing point reported in the snippet, this is the MRO of the objects, depending on the version:
py38: green.ssl. GreenSSLSocket' >, <class 'ssl.SSLSocket'>, <class 'socket.socket'>, <class '_socket.socket'>, <class 'object'>)
(<class 'eventlet.
py36: green.ssl. GreenSSLSocket' >, <class 'ssl.SSLSocket'>, <class 'eventlet. greenio. base.GreenSocke t'>, <class 'object'>)
(<class 'eventlet.
In py36, the instance of the class GreenSSLSocket, do not inherit from socket.