Use super() instead of parent class name

This commit is contained in:
nemunaire 2016-04-18 19:58:10 +02:00
commit 1c21231f31
9 changed files with 80 additions and 37 deletions

View file

@ -31,7 +31,7 @@ PORTS = list()
class DCC(server.AbstractServer):
def __init__(self, srv, dest, socket=None):
server.Server.__init__(self)
super().__init__(self)
self.error = False # An error has occur, closing the connection?
self.messages = list() # Message queued before connexion

View file

@ -55,7 +55,7 @@ class IRC(SocketServer):
self.realname = realname
self.id = self.username + "@" + host + ":" + str(port)
SocketServer.__init__(self, host=host, port=port, ssl=ssl)
super().__init__(host=host, port=port, ssl=ssl)
self.printer = IRCPrinter
self.encoding = encoding
@ -232,8 +232,8 @@ class IRC(SocketServer):
# Open/close
def _open(self):
if SocketServer._open(self):
def open(self):
if super().open():
if self.password is not None:
self.write("PASS :" + self.password)
if self.capabilities is not None:
@ -244,9 +244,10 @@ class IRC(SocketServer):
return False
def _close(self):
if self.connected: self.write("QUIT")
return SocketServer._close(self)
def close(self):
if not self.closed:
self.write("QUIT")
return super().close()
# Writes: as inherited
@ -254,7 +255,7 @@ class IRC(SocketServer):
# Read
def read(self):
for line in SocketServer.read(self):
for line in super().read():
# PING should be handled here, so start parsing here :/
msg = IRCMessage(line, self.encoding)

View file

@ -32,6 +32,8 @@ class AbstractServer(io.IOBase):
send_callback -- Callback when developper want to send a message
"""
super().__init__()
if not hasattr(self, "id"):
raise Exception("No id defined for this server. Please set one!")

View file

@ -26,7 +26,7 @@ class SocketServer(AbstractServer):
def __init__(self, sock_location=None, host=None, port=None, ssl=False, socket=None, id=None):
if id is not None:
self.id = id
AbstractServer.__init__(self)
super().__init__()
if sock_location is not None:
self.filename = sock_location
elif host is not None:
@ -44,18 +44,17 @@ class SocketServer(AbstractServer):
@property
def connected(self):
def closed(self):
"""Indicator of the connection aliveness"""
return self.socket is not None
return self.socket is None
# Open/close
def _open(self):
import os
def open(self):
import socket
if self.connected:
if not self.closed:
return True
try:
@ -66,11 +65,14 @@ class SocketServer(AbstractServer):
else:
self.socket = socket.create_connection((self.host, self.port))
self.logger.info("Connected to %s:%d", self.host, self.port)
except socket.error as e:
except:
self.socket = None
self.logger.critical("Unable to connect to %s:%d: %s",
self.host, self.port,
os.strerror(e.errno))
if hasattr(self, "filename"):
self.logger.exception("Unable to connect to %s",
self.filename)
else:
self.logger.exception("Unable to connect to %s:%d",
self.host, self.port)
return False
# Wrap the socket for SSL
@ -79,17 +81,17 @@ class SocketServer(AbstractServer):
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
self.socket = ctx.wrap_socket(self.socket)
return True
return super().open()
def _close(self):
def close(self):
import socket
from nemubot.server import _lock
_lock.release()
self._sending_queue.join()
_lock.acquire()
if self.connected:
if not self.closed:
try:
self.socket.shutdown(socket.SHUT_RDWR)
self.socket.close()
@ -98,16 +100,16 @@ class SocketServer(AbstractServer):
self.socket = None
return True
return super().close()
# Write
def _write(self, cnt):
if not self.connected:
if self.closed:
return
self.socket.send(cnt)
self.socket.sendall(cnt)
def format(self, txt):
@ -120,7 +122,7 @@ class SocketServer(AbstractServer):
# Read
def read(self):
if not self.connected:
if self.closed:
return []
raw = self.socket.recv(1024)
@ -147,7 +149,7 @@ class SocketListener(AbstractServer):
def __init__(self, new_server_cb, id, sock_location=None, host=None, port=None, ssl=None):
self.id = id
AbstractServer.__init__(self)
super().__init__()
self.new_server_cb = new_server_cb
self.sock_location = sock_location
self.host = host
@ -161,30 +163,31 @@ class SocketListener(AbstractServer):
@property
def connected(self):
def closed(self):
"""Indicator of the connection aliveness"""
return self.socket is not None
return self.socket is None
def _open(self):
def open(self):
import os
import socket
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
if self.sock_location is not None:
self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
try:
os.remove(self.sock_location)
except FileNotFoundError:
pass
self.socket.bind(self.sock_location)
elif self.host is not None and self.port is not None:
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.bind((self.host, self.port))
self.socket.listen(5)
return True
return super().open()
def _close(self):
def close(self):
import os
import socket
@ -196,10 +199,13 @@ class SocketListener(AbstractServer):
except socket.error:
pass
return super().close()
# Read
def read(self):
if not self.connected:
if self.closed:
return []
conn, addr = self.socket.accept()