schedule: Allow arguments for scheduled functions, lock before modifying heap

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Google: Use standard json module now that 2.6 is minimum Python version

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Remove a few more references to local.simplejson

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
setup.py: Use setuptools instead of distutils

This will allow us to automatically install dependencies with easy_install
instead of shipping stale copies with Supybot

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Time: Remove dateutil and add it to install_requires

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Ignore setuptools directories

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Use relative imports for all packages under the supybot namespace

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Import external dateutil module

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Admin: Change message 'It's banned me' into 'I am banned.'. Closes GH-329.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Indicate supybot.networks.$network.servers/channels are space-separated lists in their help

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Bootstrap setuptools if it isn't available.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
RSS: Remove local/feedparser and add it to install_requires

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
core: force inet_aton argument to string to prevent occasional error on reconnect.

it /should/ always be a string anyway, but sometimes things break with
a TypeError that it is an int instead of the expected string and hangs
up the bot.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Filter: add unbinary command, as counterpart to binary command.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Filter: catch invalid input for unbinary command.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Topic: fix bug in invalid number error output.
Previously, when giving an invalid positive number, error would reference number-1 as being invalid.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Create a commands.process function which runs a function inside a separate process.

This is the only way to limit the execution time of a possibly long-running python statement.
Use this on String.re, due to the possibility of pathologically long re matching in python.
This allows us to remove the 'trusted-only' restriction on string.re.
In the future, this should probably be used in other places that take user-supplied regexps,
such as 'misc last --regexp', for example, as well as other potentially long-running tasks
that can block the bot.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Some improvements to the commands.process function - better process naming and informational output.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
Status: add 'processes' command, the multiprocessing equivalent of the threads command.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
commands.process: return immediately when terminating process, without having to deal with the queue.
otherwise, we have to block for $smalldelay between putting and getting the item, since queue putting is not instantaneous
and sometimes we would get 'nothing returned' instead of the timeout message.

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>