pydle v0.8.0 - "tasteless tortoise"
Pre-release
Pre-release
pydle has undergone a lot of refactoring in this release. Around 90% of the code was rewritten, along with a whole slew of stability and protocol fixes, and a move from a polling system to a fully asynchronous event loop.
New features
- Added support for WHOX.
- Added support for IRCv3.2 message tagging
- Added support for IRCv3.2 online status monitoring.
- Added partial support for an IRC account system as used by a lot of IRC service systems. Currently restricted to low-level internals, user database, and WHOIS results.
- Added WHOIS (
Client.whois(nick)
) and WHOWAS (Client.whowas(nick)
) support. - Added
Client.set_topic(channel, topic=None)
andClient.kick(channel, target, reason=None)
to API. - Added client-side ping timeout.
- Added APIs for asynchronous operations such as
pydle.coroutine
,pydle.parallel
andpydle.Future
. - Added the ability to pass a PEM password for a TLS keyfile.
- Added setting the source address to connect from.
- Documentation! See http://pydle.readthedocs.org.
Changes
- Moved to an asynchronous event loop system using Tornado as backend, refactored operations as a result of that.
- Moved from homebrew log solution to Python's
logging
module. - Moved base RFC1459 IRC functionality to
pydle.features.rfc1459
. - Changed message system to add an IRC message class for extensibility and modifed raw callbacks to take them.
- Grouped IRCv3.1 and IRCv3.2 features into
pydle.features.ircv3_1
andpydle.features.ircv3_2
. - Changed setting
Client.nickname
to change nickname toClient.set_nickname
API. - Changed
Client.mode(target, *modes)
toClient.set_mode(target, *modes)
. - Made
Client.users
andClient.channels
a normalizing dict, so that case does not mapper when looking up entries. - Made it always safe for features to call
super().on_raw_<command>(message)
in their command handlers. - Renamed the installed
irccat
utility topydle-irccat
to prevent name conflicts. - A whole slew of bugfixes and stability fixes!
Removals
- Remove
STARTTLS
support for now due its lack of testing.