STINNER Victor added the comment: socket.SocketIO inherits from io.RawIOBase which inherits from io.IOBase.
io.IOBase has a finalizer which calls the close() method. I tried to add a __del__ method to socket.SocketIO, but the object was already closed by the finalizer. io.FileIO uses a trick at the C level: it sets an internal "finalizing" attribute to check if close() was called by IOBase finalizer. If it's the case, a ResourceWarning is emitted. I don't see a simpler way to emit a ResourceWarning in SocketIO. Maybe it's not the right approach. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31520> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com