Browse Source

Moving two exceptions out of earwigbot.irc

tags/v0.1^2
Ben Kurtovic 12 years ago
parent
commit
1b88f63d27
3 changed files with 27 additions and 19 deletions
  1. +19
    -2
      earwigbot/exceptions.py
  2. +4
    -9
      earwigbot/irc/connection.py
  3. +4
    -8
      earwigbot/irc/data.py

+ 19
- 2
earwigbot/exceptions.py View File

@@ -26,6 +26,9 @@ EarwigBot Exceptions
This module contains all exceptions used by EarwigBot:: This module contains all exceptions used by EarwigBot::


EarwigBotError EarwigBotError
+-- IRCError
| +-- BrokenSocketError
| +-- KwargParseError
+-- WikiToolsetError +-- WikiToolsetError
+-- SiteNotFoundError +-- SiteNotFoundError
+-- SiteAPIError +-- SiteAPIError
@@ -49,10 +52,24 @@ EarwigBotError
+-- SearchQueryError +-- SearchQueryError
""" """


class EarwigBotErorr(Exception):
class EarwigBotError(Exception):
"""Base exception class for errors in EarwigBot.""" """Base exception class for errors in EarwigBot."""


class WikiToolsetError(EarwigBotErorr):
class IRCError(EarwigBotError):
"""Base exception class for errors in IRC-relation sections of the bot."""

class BrokenSocketError(IRCError):
"""A socket has broken, because it is not sending data.

Raised by earwigbot.irc.IRCConnection()._get().
"""

class KwargParseError(IRCError):
"""Couldn't parse a certain keyword argument in Data().args, probably
because it was given incorrectly: e.g., no value (abc), just a value
(=xyz), just an equal sign (=), instead of the correct (abc=xyz)."""

class WikiToolsetError(EarwigBotError):
"""Base exception class for errors in the Wiki Toolset.""" """Base exception class for errors in the Wiki Toolset."""


class SiteNotFoundError(WikiToolsetError): class SiteNotFoundError(WikiToolsetError):


+ 4
- 9
earwigbot/irc/connection.py View File

@@ -24,14 +24,9 @@ import socket
from threading import Lock from threading import Lock
from time import sleep from time import sleep


__all__ = ["BrokenSocketException", "IRCConnection"]
from earwigbot.exceptions import BrokenSocketError


class BrokenSocketException(Exception):
"""A socket has broken, because it is not sending data.

Raised by IRCConnection()._get().
"""
pass
__all__ = ["IRCConnection"]


class IRCConnection(object): class IRCConnection(object):
"""A class to interface with IRC.""" """A class to interface with IRC."""
@@ -72,7 +67,7 @@ class IRCConnection(object):
data = self._sock.recv(size) data = self._sock.recv(size)
if not data: if not data:
# Socket isn't giving us any data, so it is dead or broken: # Socket isn't giving us any data, so it is dead or broken:
raise BrokenSocketException()
raise BrokenSocketError()
return data return data


def _send(self, msg): def _send(self, msg):
@@ -137,7 +132,7 @@ class IRCConnection(object):
while 1: while 1:
try: try:
read_buffer += self._get() read_buffer += self._get()
except BrokenSocketException:
except BrokenSocketError:
self._is_running = False self._is_running = False
break break




+ 4
- 8
earwigbot/irc/data.py View File

@@ -22,13 +22,9 @@


import re import re


__all__ = ["KwargParseException", "Data"]
from earwigbot.exceptions import KwargParseError


class KwargParseException(Exception):
"""Couldn't parse a certain keyword argument in self.args, probably because
it was given incorrectly: e.g., no value (abc), just a value (=xyz), just
an equal sign (=), instead of the correct (abc=xyz)."""
pass
__all__ = ["Data"]


class Data(object): class Data(object):
"""Store data from an individual line received on IRC.""" """Store data from an individual line received on IRC."""
@@ -81,8 +77,8 @@ class Data(object):
try: try:
key, value = re.findall("^(.*?)\=(.*?)$", arg)[0] key, value = re.findall("^(.*?)\=(.*?)$", arg)[0]
except IndexError: except IndexError:
raise KwargParseException(arg)
raise KwargParseError(arg)
if key and value: if key and value:
self.kwargs[key] = value self.kwargs[key] = value
else: else:
raise KwargParseException(arg)
raise KwargParseError(arg)

Loading…
Cancel
Save