Skip to content

pydle v0.8.0 - "tasteless tortoise"

Pre-release
Pre-release
Compare
Choose a tag to compare
@shizmob shizmob released this 30 Jul 22:38
· 284 commits to master since this 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) and Client.kick(channel, target, reason=None) to API.
  • Added client-side ping timeout.
  • Added APIs for asynchronous operations such as pydle.coroutine, pydle.parallel and pydle.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 and pydle.features.ircv3_2.
  • Changed setting Client.nickname to change nickname to Client.set_nickname API.
  • Changed Client.mode(target, *modes) to Client.set_mode(target, *modes).
  • Made Client.users and Client.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 to pydle-irccat to prevent name conflicts.
  • A whole slew of bugfixes and stability fixes!

Removals

  • Remove STARTTLS support for now due its lack of testing.