Change Log

3.2.2 2021-10-19

  • [Bug] #252: circuits.io.serial: missing encoding parameter has been added
  • [Bug] #253: circuits.io.serial: add readline argument to only fire read events for full lines
  • [Bug] #285: requests with chunked transfer encoding are not dispatched if the message body is not yet received completely
  • [Bug] #285: circuits.web.parsers.http has been upgraded to latest upstream http-parser version
  • [Bug] #238: Reverted changes fixed by upstream http-parser library
  • [Bug]: Fixed Python 3 compatibility for circuits.web.tools.validate_etag() with MD5 hashes
  • [Bug] #292: HTTP Connection header values are now correctly evaluated case insensitive in web.client components
  • [Bug] #291: HTTP Connection header values are now correctly evaluated case insensitive in websocket components
  • [Bug]: :security:`289` potential XSS attacks via crafted files in directory listing is now prevented via HTML escaping in the circuits.web.dispatchers.static component.
  • [Bug]: :security:`251` A HTTP header injection vulnerability in circuits.web.websockets.client has been fixed
  • [Bug]: :security:`293` HTML escaping of error responses, 3XX redirects and Powered-by texts has been fixed
  • [Bug]: - typos in docstrings/comments have been fixed
  • [Bug] #307: Various format string syntaxes have been relaxed so that they don’t cause exceptions on non string input
  • [Bug] #261: A workaroung for websocket clients has been added, which prevents that the first websocket is not lost
  • [Bug] #197: Exceptions during socket.accept() are now re-raised in the main thread
  • [Bug] #197: Exceptions during initialization of Poller`s is now handlded via an `error Event

3.2.1 2020-10-30

  • [Feature] #168: Add interface for selecting the websocket subprotocol
  • [Feature] #202: Removed EventType metaclass
  • [Feature]: Add support to set additional socket options
  • [Feature] #214: Implement STARTTLS for sockets as event
  • [Feature] #224: Add new HTTP status code 308 moved permanently (RFC 7538)
  • [Feature] #212: Improves the API for session management and adds expire support
  • [Feature] #233: circuits.core.values.Value is now __str__ compatible with Python 2
  • [Feature] #231: Add support for STOMP protocol
  • [Feature] #240: Added auto_add to circuits.io.notify
  • [Feature] #249: Add irc.utils.irc_color_to_ansi()
  • [Feature] #245: IRC: enhance stripping of colors
  • [Feature] #273: Added a bufsize argument to the __init__ of BaseServer
  • [Feature]: The exception handling has been improoved
  • [Support] #152: Dropped the support for Python 2.6 and 3.x < 3.4
  • [Support]: Added support for Python 3.6, 3.7, 3.8, 3.9-dev

3.2 2016-06-02

  • [Bug] #119: Fixed bug in circuits.web.url.parse_url() that caused a display issue with port bindings on ports 80 and 443.

3.1 2014-11-01

  • [Bug] #115: Fixed FallbackErrorHandler API Change
  • [Bug] #113: Fixed bug with forced shutdown of subprocesses in Windows.
  • [Bug]: Bridge: Send exceptions via brige before change the exceptions weren’t propagated via bridge because traceback object is not pickable, now traceback object is replaced by corresponding traceback list
  • [Bug]: Bridge: Do not propagate no results via bridge
  • [Bug]: Fixed issue in brige with ommiting all but the first events sent at once
  • [Bug]: Fixed exception handing in circuits.web
  • [Bug]: Fixed import of FallBackExceptionHandler
  • [Bug]: Node: Add node examples.
  • [Bug]: Node: fixes event response flood.
  • [Bug]: Node: fixes the event value issue.
  • [Bug]: Node: add event firewall (client / server).
  • [Bug]: Node: add peer node: return channel name.
  • [Bug]: Fixes optional parameters handling (client / server).
  • [Bug]: Rename the FallbackErrorHandler to FallbackExceptionHandler and the event it listens to to exception
  • [Bug]: Bridge waits for event processing on the other side before proxy handler ends. Now it is possible to collect values from remote handlers in %_success event.

3.0.1 2014-11-01

  • [Support] #96: Link to ChangeLog from README
  • [Support] #117: Fixed inconsistent top-level examples.

3.0 2014-08-31

  • [Feature] #94: Modified the circuits.web.Logger to use the response_success event.
  • [Feature] #98: Dockerized circuits. See: https://docker.io/
  • [Feature] #99: Added Digest Auth support to the circuits.web CLI Tool
  • [Feature] #103: Added the firing of a disconnect event for the WebSocketsDispatcher.
  • [Feature] #108: Improved server support for the IRC Protocol.
  • [Feature] #112: Improved Signal Handling
  • [Bug] #37: Fixed a typo in File
  • [Bug] #38: Guard against invalid headers. (circuits.web)
  • [Bug] #46: Set Content-Type header on response for errors. (circuits.web)
  • [Bug] #48: Allow event to be passed to the decorated function (the request handler) for circuits.web
  • [Bug] #45: Fixed use of cmp() and __cmp__() for Python 3 compatibility.
  • [Bug] #56: circuits.web HEAD request send response body web
  • [Bug] #62: Fix packaging and bump circuits 1.5.1 for @dsuch (Dariusz Suchojad) for Zato
  • [Bug] #53: WebSocketClient treating WebSocket data in same TCP segment as HTTP response as part the HTTP response. web
  • [Bug] #67: web example jsontool is broken on python3 web
  • [Bug] #77: Uncaught exceptions Event collides with sockets and others core
  • [Bug] #81: “index” method not serving / web
  • [Bug] #76: Missing unit test for DNS lookup failures net
  • [Bug] #66: web examples jsonserializer broken web
  • [Bug] #59: circuits.web DoS in serve_file (remote denial of service) web
  • [Bug] #91: Call/Wait and specific instances of events
  • [Bug] #89: Class attribtues that reference methods cause duplicate event handlers core
  • [Bug] #47: Dispatcher does not fully respect optional arguments. web
  • [Bug] #97: Fixed tests.net.test_tcp.test_lookup_failure test for Windows
  • [Bug] #100: Fixed returned Content-Type in JSON-RPC Dispatcher.
  • [Bug] #102: Fixed minor bug with WebSocketsDispatcher causing superflusous connect() events from being fired.
  • [Bug] #104: Prevent other websockets sessions from closing.
  • [Bug] #106: Added __format__ method to circuits.web.wrappers.HTTPStatus.
  • [Bug] #107: Added __le__ and __ge__ methods to circuits.web.wrappers.HTTPStatus
  • [Bug] #109: Fixed Event.create() factory and metaclass.
  • [Bug] #111: Fixed broken Digest Auth Test for circuits.web
  • [Support] #63: typos in documentation docs
  • [Support] #60: meantion @handler decorator in tutorial docs
  • [Support] #65: Update tutorial to match circuits 3.0 API(s) and Semantics docs
  • [Support] #69: Merge #circuits-dev FreeNode Channel into #circuits
  • [Support] #75: Document and show examples of using circuits.tools docs
  • [Support] #70: Convention around method names of event handlers
  • [Support] #72: Update Event Filtering section of Users Manual docs
  • [Support] #73: Fix duplication in auto generated API Docs. docs
  • [Support] #78: Migrate Change Log maintenance and build to Releases
  • [Support] #71: Document the value_changed event docs
  • [Support] #92: Update circuitsframework.com content docs
  • [Support] #88: Document the implicit registration of components attached as class attributes docs
  • [Support] #87: A rendered example of circuits.tools.graph(). docs
  • [Support] #85: Migrate away from ShiningPanda
  • [Support] #61: circuits.web documentation enhancements docs
  • [Support] #86: Telnet Tutorial
  • [Support] #95: Updated Developer Documentation with corrections and a new workflow.

Older Change Logs

For older Change Logs of previous versions of circuits please see the respective PyPi page(s):