diff options
| author | 2018-10-30 14:58:48 +0000 | |
|---|---|---|
| committer | 2018-10-30 14:58:48 +0000 | |
| commit | e07553c3627b80f20cdc81a35030bf0540924db8 (patch) | |
| tree | 0a81640b280e007cbe5d2cb956681068ab80c58e /src/Socket.py | |
| parent | Don't needlessly search a youtube URL before getting the information for it's (diff) | |
| signature | ||
Add type/return hints throughout src/ and, in doing so, fix some cyclical
references.
Diffstat (limited to 'src/Socket.py')
| -rw-r--r-- | src/Socket.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/Socket.py b/src/Socket.py index f405b0a9..474336d0 100644 --- a/src/Socket.py +++ b/src/Socket.py @@ -1,7 +1,9 @@ - +import socket, typing class Socket(object): - def __init__(self, socket, on_read, encoding="utf8"): + def __init__(self, socket: socket.socket, + on_read: typing.Callable[["Socket", str], None], + encoding: str="utf8"): self.socket = socket self._on_read = on_read self.encoding = encoding @@ -12,18 +14,18 @@ class Socket(object): self.length = None self.connected = True - def fileno(self): + def fileno(self) -> int: return self.socket.fileno() def disconnect(self): self.connected = False - def _decode(self, s): - return s.decode(self.encoding) if self.encoding else s - def _encode(self, s): - return s.encode(self.encoding) if self.encoding else s + def _decode(self, s: bytes) -> str: + return s.decode(self.encoding) + def _encode(self, s: str) -> bytes: + return s.encode(self.encoding) - def read(self): + def read(self) -> typing.Optional[typing.List[str]]: data = self.socket.recv(1024) if not data: return None @@ -35,17 +37,17 @@ class Socket(object): if data_split[-1]: self._read_buffer = data_split.pop(-1) return [self._decode(data) for data in data_split] - return [data.decode(self.encoding)] + return [self._decode(data)] - def parse_data(self, data): + def parse_data(self, data: str): self._on_read(self, data) - def send(self, data): + def send(self, data: str): self._write_buffer += self._encode(data) def _send(self): self._write_buffer = self._write_buffer[self.socket.send( self._write_buffer):] - def waiting_send(self): + def waiting_send(self) -> bool: return bool(len(self._write_buffer)) |
