classes
index
/home/gl/pylink/classes.py

classes.py - Base classes for PyLink IRC Services.
 
This module contains the base classes used by PyLink, including threaded IRC
connections and objects used to represent IRC servers, users, and channels.
 
Here be dragons.

 
Modules
       
hashlib
logging
os
socket
ssl
sys
threading
time
utils
world

 
Classes
       
builtins.Exception(builtins.BaseException)
ProtocolError
builtins.object
Irc
FakeIRC
IrcChannel
IrcServer
IrcUser
Protocol
FakeProto

 
class FakeIRC(Irc)
    Fake IRC object used for unit tests.
 
 
Method resolution order:
FakeIRC
Irc
builtins.object

Methods defined here:
connect(self)
Runs the connect loop for the IRC object. This is usually called by
__init__ in a separate thread to allow multiple concurrent connections.
run(self, data)
Queues a message to the fake IRC server.
send(self, data)
Sends raw text to the uplink server.
takeCommands(self, msgs)
Returns a list of commands parsed from the output of takeMsgs().
takeHooks(self)
Returns a list of hook arguments sent by the protocol module since
the last takeHooks() call.
takeMsgs(self)
Returns a list of messages sent by the protocol module since
the last takeMsgs() call, so we can track what has been sent.

Methods inherited from Irc:
__init__(self, netname, proto, conf)
Initializes an IRC object. This takes 3 variables: the network name
(a string), the name of the protocol module to use for this connection,
and a configuration object.
__repr__(self)
Return repr(self).
callCommand(self, source, text)
Calls a PyLink bot command. source is the caller's UID, and text is the
full, unparsed text of the message.
callHooks(self, hook_args)
Calls a hook function with the given hook args.
disconnect(self)
Handle disconnects from the remote server.
getServer(self, numeric)
Finds the SID of the server a user is on.
initVars(self)
(Re)sets an IRC object to its default state. This should be called when
an IRC object is first created, and on every reconnection to a network.
isInternalClient(self, numeric)
Checks whether the given numeric is a PyLink Client,
returning the SID of the server it's on if so.
isInternalServer(self, sid)
Returns whether the given SID is an internal PyLink server.
logSetup(self)
Initializes any channel loggers defined for the current network.
msg(self, target, text, notice=False, source=None)
Handy function to send messages/notices to clients. Source
is optional, and defaults to the main PyLink client if not specified.
nickToUid(self, nick)
Looks up the UID of a user with the given nick, if one is present.
reply(self, text, notice=False, source=None)
Replies to the last caller in the right context (channel or PM).
runline(self, line)
Sends a command to the protocol module.
schedulePing(self)
Schedules periodic pings in a loop.
spawnMain(self)
Spawns the main PyLink client.

Data descriptors inherited from Irc:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class FakeProto(Protocol)
    Dummy protocol module for testing purposes.
 
 
Method resolution order:
FakeProto
Protocol
builtins.object

Methods defined here:
connect(self)
handle_events(self, data)
join(self, client, channel)
spawnClient(self, nick, *args, **kwargs)

Data and other attributes defined here:
Class = <class 'classes.FakeProto'>
Dummy protocol module for testing purposes.

Methods inherited from Protocol:
__init__(self, irc)
Initialize self.  See help(type(self)) for accurate signature.
parseArgs(self, args)
Parses a string of RFC1459-style arguments split into a list, where ":" may
be used for multi-word arguments that last until the end of a line.
removeClient(self, numeric)
Internal function to remove a client from our internal state.
updateTS(self, channel, their_ts)
Compares the current TS of the channel given with the new TS, resetting
all modes we have if the one given is older.

Data descriptors inherited from Protocol:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Irc(builtins.object)
    Base IRC object for PyLink.
 
  Methods defined here:
__init__(self, netname, proto, conf)
Initializes an IRC object. This takes 3 variables: the network name
(a string), the name of the protocol module to use for this connection,
and a configuration object.
__repr__(self)
Return repr(self).
callCommand(self, source, text)
Calls a PyLink bot command. source is the caller's UID, and text is the
full, unparsed text of the message.
callHooks(self, hook_args)
Calls a hook function with the given hook args.
connect(self)
Runs the connect loop for the IRC object. This is usually called by
__init__ in a separate thread to allow multiple concurrent connections.
disconnect(self)
Handle disconnects from the remote server.
getServer(self, numeric)
Finds the SID of the server a user is on.
initVars(self)
(Re)sets an IRC object to its default state. This should be called when
an IRC object is first created, and on every reconnection to a network.
isInternalClient(self, numeric)
Checks whether the given numeric is a PyLink Client,
returning the SID of the server it's on if so.
isInternalServer(self, sid)
Returns whether the given SID is an internal PyLink server.
logSetup(self)
Initializes any channel loggers defined for the current network.
msg(self, target, text, notice=False, source=None)
Handy function to send messages/notices to clients. Source
is optional, and defaults to the main PyLink client if not specified.
nickToUid(self, nick)
Looks up the UID of a user with the given nick, if one is present.
reply(self, text, notice=False, source=None)
Replies to the last caller in the right context (channel or PM).
run(self)
Main IRC loop which listens for messages.
runline(self, line)
Sends a command to the protocol module.
schedulePing(self)
Schedules periodic pings in a loop.
send(self, data)
Sends raw text to the uplink server.
spawnMain(self)
Spawns the main PyLink client.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class IrcChannel(builtins.object)
    PyLink IRC channel class.
 
  Methods defined here:
__init__(self)
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
Return repr(self).
deepcopy(self)
Returns a deep copy of the channel object.
removeuser(self, target)
Removes a user from a channel.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class IrcServer(builtins.object)
    PyLink IRC server class.
 
uplink: The SID of this IrcServer instance's uplink. This is set to None
        for the main PyLink PseudoServer!
name: The name of the server.
internal: Whether the server is an internal PyLink PseudoServer.
 
  Methods defined here:
__init__(self, uplink, name, internal=False, desc='(None given)')
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
Return repr(self).

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class IrcUser(builtins.object)
    PyLink IRC user class.
 
  Methods defined here:
__init__(self, nick, ts, uid, ident='null', host='null', realname='PyLink dummy client', realhost='null', ip='0.0.0.0', manipulatable=False)
Initialize self.  See help(type(self)) for accurate signature.
__repr__(self)
Return repr(self).

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class Protocol(builtins.object)
    Base Protocol module class for PyLink.
 
  Methods defined here:
__init__(self, irc)
Initialize self.  See help(type(self)) for accurate signature.
parseArgs(self, args)
Parses a string of RFC1459-style arguments split into a list, where ":" may
be used for multi-word arguments that last until the end of a line.
removeClient(self, numeric)
Internal function to remove a client from our internal state.
updateTS(self, channel, their_ts)
Compares the current TS of the channel given with the new TS, resetting
all modes we have if the one given is older.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class ProtocolError(builtins.Exception)
    Common base class for all non-exit exceptions.
 
 
Method resolution order:
ProtocolError
builtins.Exception
builtins.BaseException
builtins.object

Data descriptors defined here:
__weakref__
list of weak references to the object (if defined)

Methods inherited from builtins.Exception:
__init__(self, /, *args, **kwargs)
Initialize self.  See help(type(self)) for accurate signature.
__new__(*args, **kwargs) from builtins.type
Create and return a new object.  See help(type) for accurate signature.

Methods inherited from builtins.BaseException:
__delattr__(self, name, /)
Implement delattr(self, name).
__getattribute__(self, name, /)
Return getattr(self, name).
__reduce__(...)
helper for pickle
__repr__(self, /)
Return repr(self).
__setattr__(self, name, value, /)
Implement setattr(self, name, value).
__setstate__(...)
__str__(self, /)
Return str(self).
with_traceback(...)
Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.

Data descriptors inherited from builtins.BaseException:
__cause__
exception cause
__context__
exception context
__dict__
__suppress_context__
__traceback__
args

 
Data
        conf = {'bot': {'nick': 'PyLink', 'realname': 'PyLink Service Client', 'serverdesc': 'PyLink unit tests', 'user': 'pylink'}, 'logging': {'stdout': 'CRITICAL'}, 'servers': defaultdict(<function <lambda> at 0x7f07198fc840>, {})}
confname = 'testconf'
curdir = '/home/gl/pylink'
files = None
log = <logging.RootLogger object>
logdir = '/home/gl/pylink/log'
logformatter = <logging.Formatter object>
stdout_level = 'CRITICAL'