IRC (Internet Relay Chat) protocol library for Python
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 5 weeks to 1.3 years
Nearly every release is documented
notes for 54 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
127 releases · first in 2012
Release timeline
127 releases since 2012One column per quarter.
Releases
- 10.027 Oct 2014
Release notes2 sources agree
Open source →Dropped support for Python 2.6.
Dropped irc.client.LineBuffer and irc.client.DecodingBuffer (available in irc.client.buffer).
Renamed irc.client.IRC to irc.client.Manifold to provide a clearer name for that object. Clients supporting 8.6 and later can use the Manifold name. Latest clients must use the Manifold name.
Renamed irc.client.Connection.irclibobj property to manifold. The property is still exposed as irclibobj for compatibility but will be removed in a future version.
Removed unused irc.client.mask_matches function.
Removed unused irc.client.nick_characters.
Added extra numerics for 'whoisaccount' and 'cannotknock'.
- 9.022 Oct 2014
Release notes2 sources agree
Open source →Issue #46: The whois command now accepts a single string or iterable for the target.
NickMask now returns None when user, host, or userhost are not present. Previously, an IndexError was raised. See Pull Request #26 for details.
- 8.9.113 May 2014
Nothing published for this version
- 8.927 Apr 2014
Additional notes
Open source →26 Apr 2014
Documentation is now published at https://pythonhosted.org/irc .
- 8.827 Apr 2014
Release notes
Open source →Issue #35: Removed the mutex during process_once.
Issue #37: Deprecated buffer.LineBuffer for Python 3.
Additional notes
Open source →25 Apr 2014
Issue #35 : Removed the mutex during process_once.
Issue #37 : Deprecated buffer.LineBuffer for Python 3.
- 8.725 Apr 2014
Release notes2 sources agree
Open source →Issue #34: Introduced buffer.LenientDecodingLineBuffer for handling input in a more lenient way, preferring UTF-8 but falling back to latin-1 if the content cannot be decoded as UTF-8. To enable it by default for your application, set it as the default decoder:
irc.client.ServerConnection.buffer_class = irc.buffer.LenientDecodingLineBuffer
- 8.621 Apr 2014
Release notes2 sources agree
Open source →Introduced 'Manifold' as an alias for irc.client.IRC. This better name will replace the IRC name in a future version.
Introduced the 'manifold' property of SimpleIRCClient as an alias for ircobj.
Added 'manifold_class' property to the client.SimpleIRCClient to allow consumers to provide a customized Manifold.
- 8.5.417 Nov 2013
Release notes
Open source →Issue #32: Add logging around large DCC messages to facilitate troubleshooting.
Issue #31: Fix error in connection wrapper for SSL example.
Additional notes
Open source →17 Nov 2013
Issue #32 : Add logging around large DCC messages to facilitate troubleshooting.
Issue #31 : Fix error in connection wrapper for SSL example.
- 8.5.322 Sept 2013
Release notes
Open source →Issue #28: Fix TypeError in version calculation in irc.bot CTCP version.
Additional notes
Open source →22 Sep 2013
Issue #28 : Fix TypeError in version calculation in irc.bot CTCP version.
- 8.5.222 Sept 2013
- 8.5.116 Aug 2013
Additional notes
Open source →16 Aug 2013
Fix timestamp support in schedule.DelayedCommand construction.
- 8.510 Aug 2013
Release notes2 sources agree
Open source →irc.client.NickMask is now a Unicode object on Python 2. Fixes issue reported in pull request #19.
Issue #24: Added DCCConnection.send_bytes for transmitting binary data. privmsg remains to support transmitting text.
- 8.419 Jul 2013
Release notes2 sources agree
Open source →Code base now runs natively on Python 2 and Python 3, but requires six to be installed.
Issue #25: Rate-limiting has been updated to be finer grained (preventing bursts exceeding the limit following idle periods).
- 8.3.217 Jul 2013
Release notes
Open source →Issue #22: Catch error in bot.py on NAMREPLY when nick is not in any visible channel.
Additional notes
Open source →17 Jul 2013
Issue #22 : Catch error in bot.py on NAMREPLY when nick is not in any visible channel.
- 8.3.14 Jul 2013
- 8.322 Apr 2013
Release notes
Open source →Added a set_keepalive method to the ServerConnection. Sends a periodic PING message every indicated interval.
Additional notes
Open source →22 Apr 2013
Added a set_keepalive method to the ServerConnection. Sends a periodic PING message every indicated interval.
- 8.215 Apr 2013
Release notes2 sources agree
Open source →Added support for throttling send_raw messages via the ServerConnection object. For example, on any connection object:
connection.set_rate_limit(30)
That would set the rate limit to 30 Hz (30 per second). Thanks to Jason Kendall for the suggestion and bug fixes.
- 8.1.212 Apr 2013
- 8.1.14 Apr 2013
- 8.12 Apr 2013
Release notes2 sources agree
Open source →Issue #15: Added client support for ISUPPORT directives on server connections. Now, each ServerConnection has a features attribute which reflects the features supported by the server. See the docs for irc.features for details about the implementation.
- 8.0.111 Feb 2013
Release notes
Open source →Issue #14: Fix errors when handlers of the same priority are added under Python 3. This also fixes the unintended behavior of allowing handlers of the same priority to compare as unequal.
Additional notes
Open source →11 Feb 2013
Issue #14 : Fix errors when handlers of the same priority are added under Python 3. This also fixes the unintended behavior of allowing handlers of the same priority to compare as unequal.
- 8.013 Jan 2013
Release notes2 sources agree
Open source →This release brings several backward-incompatible changes to the scheduled commands.
Refactored implementation of schedule classes. No longer do they override the datetime constructor, but now only provide suitable classmethods for construction in various forms.
Removed backward-compatible references from irc.client.
Remove 'arguments' parameter from scheduled commands.
Clients that reference the schedule classes from irc.client or that construct them from the basic constructor will need to update to use the new class methods:
- DelayedCommand -> DelayedCommand.after - PeriodicCommand -> PeriodicCommand.after
Arguments may no longer be passed to the 'function' callback, but one is encouraged instead to use functools.partial to attach parameters to the callback. For example:
DelayedCommand.after(3, func, ('a', 10))becomes:
func = functools.partial(func, 'a', 10) DelayedCommand.after(3, func)
This mode puts less constraints on the both the handler and the caller. For example, a caller can now pass keyword arguments instead:
func = functools.partial(func, name='a', quantity=10) DelayedCommand.after(3, func)
Readability, maintainability, and usability go up.
- 7.1.213 Jan 2013
Release notes
Open source →Issue #13: TypeError on Python 3 when constructing PeriodicCommand (and thus execute_every).
Additional notes
Open source →12 Jan 2013
Issue #13 : TypeError on Python 3 when constructing PeriodicCommand (and thus execute_every).
- 7.1.15 Jan 2013
Release notes
Open source →Fixed regression created in 7.0 where PeriodicCommandFixedDelay would only cause the first command to be scheduled, but not subsequent ones.
Additional notes
Open source →05 Jan 2013
Fixed regression created in 7.0 where PeriodicCommandFixedDelay would only cause the first command to be scheduled, but not subsequent ones.
- 7.14 Jan 2013
Release notes
Open source →Moved scheduled command classes to irc.schedule module. Kept references for backwards-compatibility.
Additional notes
Open source →04 Jan 2013
Moved scheduled command classes to irc.schedule module. Kept references for backwards-compatibility.
- 7.01 Jan 2013
Release notes2 sources agree
Open source →PeriodicCommand now raises a ValueError if it's created with a negative or zero delay (meaning all subsequent commands are immediately due). This fixes #12.
Renamed the parameters to the IRC object. If you use a custom event loop and your code constructs the IRC object with keyword parameters, you will need to update your code to use the new names, so:
IRC(fn_to_add_socket=adder, fn_to_remove_socket=remover, fn_to_add_timeout=timeout)
becomes:
IRC(on_connect=adder, on_disconnect=remover, on_schedule=timeout)
If you don't use a custom event loop or you pass the parameters positionally, no change is necessary.
- 6.0.129 Dec 2012
Release notes
Open source →Fixed some unhandled exceptions in server client connections when the client would disconnect in response to messages sent after select was called.
Additional notes
Open source →29 Dec 2012
Fixed some unhandled exceptions in server client connections when the client would disconnect in response to messages sent after select was called.
- 6.029 Dec 2012
Release notes2 sources agree
Open source →Moved LineBuffer and DecodingLineBuffer from client to buffer module. Backward-compatible references have been kept for now.
Removed daemon mode and log-to-file options for server.
Miscellaneous bugfixes in server.
- 5.1.127 Dec 2012
Additional notes
Open source →27 Dec 2012
Fix error in 2to3 conversion on irc/server.py (issue #11 ).
- 5.125 Dec 2012
Release notes2 sources agree
Open source →The IRC library is now licensed under the MIT license.
Added irc/server.py, based on hircd by Ferry Boender.
Added support for CAP command (pull request #10), thanks to Danneh Oaks.
- 5.0.116 Nov 2012
Nothing published for this version
- 5.016 Nov 2012
Release notes2 sources agree
Open source →Another backward-incompatible change. In irc 5.0, many of the unnecessary getter functions have been removed and replaced with simple attributes. This change addresses issue #2. In particular:
Connection._get_socket() -> Connection.socket (including subclasses)
Event.eventtype() -> Event.type
Event.source() -> Event.source
Event.target() -> Event.target
Event.arguments() -> Event.arguments
The nm_to_* functions were removed. Instead, use the NickMask class attributes.
These deprecated function aliases were removed from irc.client:
- parse_nick_modes -> modes.parse_nick_modes - parse_channel_modes -> modes.parse_channel_modes - generated_events -> events.generated - protocol_events -> events.protocol - numeric_events -> events.numeric - all_events -> events.all - irc_lower -> strings.lower
Also, the parameter name when constructing an event was renamed from eventtype to simply type.
- 4.016 Nov 2012
Release notes2 sources agree
Open source →Removed deprecated arguments to ServerConnection.connect. See notes on the 3.3 release on how to use the connect_factory parameter if your application requires ssl, ipv6, or other connection customization.
- 3.6.116 Nov 2012
- 3.68 Nov 2012
Release notes
Open source →Created two new exceptions in irc.client: MessageTooLong and InvalidCharacters.
Use explicit exceptions instead of ValueError when sending data.
Additional notes
Open source →08 Nov 2012
Created two new exceptions in irc.client : MessageTooLong and InvalidCharacters .
Use explicit exceptions instead of ValueError when sending data.
- 3.57 Nov 2012
Release notes2 sources agree
Open source →SingleServerIRCBot now accepts keyword arguments which are passed through to the ServerConnection.connect method. One can use this to use SSL for connections:
factory = irc.connection.Factory(wrapper=ssl.wrap_socket) bot = irc.bot.SingleServerIRCBot(..., connect_factory = factory)
- 3.4.225 Oct 2012
Release notes
Open source →Issue #6: Fix AttributeError when legacy parameters are passed to ServerConnection.connect.
Issue #7: Fix TypeError on iter(LineBuffer).
Additional notes
Open source →25 Oct 2012
Issue #6 : Fix AttributeError when legacy parameters are passed to ServerConnection.connect .
Issue #7 : Fix TypeError on iter(LineBuffer) .
- 3.4.121 Oct 2012
Release notes2 sources agree
Open source →3.4 never worked - the decoding customization feature was improperly implemented and never tested.
The ServerConnection now allows custom classes to be supplied to customize the decoding of incoming lines. For example, to disable the decoding of incoming lines, replace the buffer_class on the ServerConnection with a version that passes through the lines directly:
irc.client.ServerConnection.buffer_class = irc.client.LineBuffer
This fixes #5.
- 3.420 Oct 2012
- 3.318 Oct 2012
Release notes2 sources agree
Open source →Added connection module with a Factory for creating socket connections.
Added connect_factory parameter to the ServerConnection.
It's now possible to create connections with custom SSL parameters or other socket wrappers. For example, to create a connection with a custom SSL cert:
import ssl import irc.client import irc.connection import functools irc = irc.client.IRC() server = irc.server() wrapper = functools.partial(ssl.wrap_socket, ssl_cert=my_cert()) server.connect(connect_factory = irc.connection.Factory(wrapper=wrapper))
With this release, many of the parameters to ServerConnection.connect are now deprecated:
localaddress
localport
ssl
ipv6
Instead, one should pass the appropriate values to a connection.Factory instance and pass that factory to the .connect method. Backwards-compatibility will be maintained for these parameters until the release of irc 4.0.
- 3.2.314 Oct 2012
- 3.2.212 Oct 2012
Release notes
Open source →Protect from UnicodeDecodeError when decoding data on the wire when data is not properly encoded in ASCII or UTF-8.
Additional notes
Open source →11 Oct 2012
Protect from UnicodeDecodeError when decoding data on the wire when data is not properly encoded in ASCII or UTF-8.
- 3.2.111 Oct 2012
- 3.210 Oct 2012
Release notes
Open source →Implemented thread safety via a reentrant lock guarding shared state in IRC objects.
Additional notes
Open source →09 Oct 2012
Implemented thread safety via a reentrant lock guarding shared state in IRC objects.
- 3.1.17 Oct 2012
- 3.17 Oct 2012
Release notes
Open source →Distribute using setuptools rather than paver.
Minor tweaks for Python 3 support. Now installs on Python 3.
Additional notes
Open source →07 Oct 2012
Distribute using setuptools rather than paver.
Minor tweaks for Python 3 support. Now installs on Python 3.
- 3.0.2dev30 Sept 2012pre-release
Nothing published for this version
- 3.0.130 Sept 2012
Release notes
Open source →Added error checking when sending a message - for both message length and embedded carriage returns. Fixes #4.
Updated README.
Additional notes
Open source →29 Sep 2012
Added error checking when sending a message - for both message length and embedded carriage returns. Fixes #4 .
Updated README.
- 3.05 Sept 2012
Release notes2 sources agree
Open source →Improved Unicode support. Fixes failing tests and errors lowering Unicode channel names.
Sourceforge 18 - The ServerConnection and DCCConnection now encode any strings as UTF-8 before transmitting.
Sourceforge 17 - Updated strings.FoldedCase to support comparison against objects of other types.
Shutdown the sockets before closing.
Applications that are currently encoding unicode as UTF-8 before passing the strings to ServerConnection.send_raw need to be updated to send Unicode or ASCII.
- 2.0.45 Sept 2012
Release notes2 sources agree
Open source →This release officially deprecates 2.0.1-2.0.3 in favor of 3.0.
Re-release of irc 2.0 (without the changes from 2.0.1-2.0.3) for correct compatibility indication.
- 2.0.330 Aug 2012
Nothing published for this version
- 2.0.227 Aug 2012
Nothing published for this version
- 2.0.127 Aug 2012
Nothing published for this version
- 2.023 May 2012
Release notes2 sources agree
Open source →DelayedCommands now use the local time for calculating 'at' and 'due' times. This will be more friendly for simple servers. Servers that expect UTC times should either run in UTC or override DelayedCommand.now to return an appropriate time object for 'now'. For example:
def startup_bot(): irc.client.DelayedCommand.now = irc.client.DelayedCommand.utcnow ...
- 1.111 May 2012
Release notes
Open source →Added irc.client.PeriodicCommandFixedDelay. Schedule this command to have a function executed at a specific time and then at periodic intervals thereafter.
Additional notes
Open source →11 May 2012
Added irc.client.PeriodicCommandFixedDelay. Schedule this command to have a function executed at a specific time and then at periodic intervals thereafter.
- 1.011 May 2012
- 0.92 May 2012
Release notes2 sources agree
Open source →Fix file saving using dccreceive.py on Windows. Fixes Sourceforge 6.
Created NickMask class from nm_to_* functions. Now if a source is a NickMask, one can access the .nick, .host, and .user attributes.
Use correct attribute for saved connect args. Fixes Sourceforge 16.
- 0.824 Apr 2012
Additional notes
Open source →24 Apr 2012
Added ServerConnection.reconnect method. Fixes Sourceforge 13 .
- 0.7.124 Apr 2012
- 0.724 Apr 2012
Release notes2 sources agree
Open source →Moved functionality from irclib module to irc.client module.
Moved functionality from ircbot module to irc.bot module.
Retained irclib and ircbot modules for backward-compatibility. These will be removed in 1.0.
Renamed project to simply 'irc'.
To support the new module structure, simply replace references to the irclib module with irc.client and ircbot module with irc.bot. This project will support that interface through all versions of irc 1.x, so if you've made these changes, you can safely depend on irc >= 0.7, <2.0dev.