Change Log¶
:support:`281` Dropped support for Python 2.7, 3.5, 3.6
:support:`327` Added support for Python 3.11, 3.12
:bug:`-`` namespacing is now done with
importlibinstead ofpkgutil.extend_path():bug:`-`` the code has been autoformatted and refactored with
ruffvia pre-commit:bug:`-`` unused
parse_body(),dictform(),is_ssl_handshake()andquoted_slashhave been removed fromcircuits.web.utils:support:`298` Added support for Python 3.10
:feature:`132` The initial
requestcontaining thesessionhas been added to the websocket dispatcher events incircuits.web.websockets:feature:`96`
circuits.tools.graph()has been split into smaller functions (for creatingdot,ascii,pngseparately):bug:`197` Exceptions during initialization of
Polleris now handlded via anerrorEvent:bug:`197` Exceptions during
socket.accept()are now re-raised in the main thread:bug:`261` A workaroung for websocket clients has been added, which prevents that the first websocket is not lost
:bug:`307` Various format string syntaxes have been relaxed so that they don’t cause exceptions on non string input
:bug:`-`` typos in docstrings/comments have been fixed
:bug:`293` (security) HTML escaping of error responses, 3XX redirects and Powered-by texts has been fixed
:bug:`251` (security) A HTTP header injection vulnerability in
circuits.web.websockets.clienthas been fixed:bug:`289` (security) potential XSS attacks via crafted files in directory listing is now prevented via HTML escaping in the
circuits.web.dispatchers.staticcomponent.:bug:`291` HTTP
Connectionheader values are now correctly evaluated case insensitive inwebsocketcomponents:bug:`292` HTTP
Connectionheader values are now correctly evaluated case insensitive inweb.clientcomponents:bug:`-`` Fixed Python 3 compatibility for
circuits.web.tools.validate_etag()with ``MD5` hashes:bug:`238` Reverted changes fixed by upstream
http-parserlibrary:bug:`285`
circuits.web.parsers.httphas been upgraded to latest upstreamhttp-parserversion:bug:`285` requests with chunked transfer encoding are not dispatched if the message body is not yet received completely
:bug:`253`
circuits.io.serial: add readline argument to only fire read events for full lines:bug:`252`
circuits.io.serial: missing encoding parameter has been added:support:`-` Added support for Python 3.6, 3.7, 3.8, 3.9-dev
:support:`152` Dropped the support for Python 2.6 and 3.x < 3.4
:bug:`176` Generator expressions don’t raise StopIteration anymore
:feature:`-` The exception handling has been improoved
:feature:`273` Added a
bufsizeargument to the__init__of BaseServer:bug:`270` fix TLS support for websockets (unhandled SSLWantReadError)
:bug:`263` Improove error handling during TLS handshake
:bug:`269` Fix error handling when TLS handshake fails
:bug:`266` Fix python2
str(circuits.core.values.Value()):bug:`264` Improoved robustness of IRC messages
:bug:`257` Fix WSGI component for Python 2.7 and Python 3
:bug:`254` Fix CRLF injection in IRC protocol
:feature:`245` IRC: enhance stripping of colors
:feature:`249` Add
irc.utils.irc_color_to_ansi():bug:`241` Adjust
circuits.tools.graph()to API change innetworkx:feature:`240` Added
auto_addtocircuits.io.notify:feature:`231` Add support for
STOMPprotocol:bug:`238` Fix parsing HTTP request without headers
:bug:`235` the
prefixin theDebuggermight be acallablenow:feature:`233`
circuits.core.values.Valueis now__str__compatible with Python 2:feature:`212` Improves the API for session management and adds expire support
:feature:`224` Add new HTTP status code
308 moved permanently(RFC 7538):feature:`214` Implement
STARTTLSfor sockets asevent:feature:`-` Add support to set additional socket options
:bug:`198` Made pushing onto the event queue via
firethreadsafe.:feature:`202` Removed
EventTypemetaclass:bug:`-` Fixed
manager.join():bug:`202` Removed the (unused) internal cache from
EventType.:feature:`168` Add interface for selecting the websocket subprotocol
:bug:`54` Fix a memory leak due to
on_donehandlers:bug:`-` Fix python3 compatibility when parsing
HTTPrequest body:bug:`-` Fix error handling if error contains traceback instance
:bug:`187` Fix parsing and decoding of
application/x-www-urlencodedpayloads:bug:`185` Fix Denial of Service socket/memory leak for not connected clients
:bug:`184` Fix websocket data parsing if content is larger than BUFSIZE
:bug:`170` Fix crash from deleting undefined variables
:bug:`173` Fix the type difference between _current_thread and _flushing_thread
:bug:`123` Fixes bug in the
completeevent:bug:`165` Fix
HostHTTP header parsing whencircuits.web.Serveris bound to aUNIXSocket:bug:`119` Fixed bug in
circuits.web.url.parse_url()that caused a display issue with port bindings on ports 80 and 443.: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.
:bug:`-` Rename the FallbackErrorHandler to FallbackExceptionHandler and the event it listens to to exception
:bug:`-` Fixes optional parameters handling (client / server).
:bug:`-` Node: add peer node: return channel name.
:bug:`-` Node: add event firewall (client / server).
:bug:`-` Node: fixes the event value issue.
:bug:`-` Node: fixes event response flood.
:bug:`-` Node: Add node examples.
:bug:`-` Fixed import of FallBackExceptionHandler
:bug:`-` Fixed exception handing in circuits.web
:bug:`-` Fixed issue in brige with ommiting all but the first events sent at once
:bug:`-` Bridge: Do not propagate no results via bridge
: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:`113` Fixed bug with forced shutdown of subprocesses in Windows.
:bug:`115` Fixed FallbackErrorHandler API Change
:support:`117` Fixed inconsistent top-level examples.
:support:`96` Link to ChangeLog from README
:bug:`111 major` Fixed broken Digest Auth Test for circuits.web
:feature:`112` Improved Signal Handling
:bug:`109 major` Fixed
Event.create()factory and metaclass.:feature:`108` Improved server support for the IRC Protocol.
:bug:`107 major` Added
__le__and__ge__methods tocircuits.web.wrappers.HTTPStatus:bug:`106 major` Added
__format__method to circuits.web.wrappers.HTTPStatus.:bug:`104 major` Prevent other websockets sessions from closing.
:feature:`103` Added the firing of a
disconnectevent for the WebSocketsDispatcher.:bug:`102 major` Fixed minor bug with WebSocketsDispatcher causing superflusous
connect()events from being fired.:bug:`100 major` Fixed returned Content-Type in JSON-RPC Dispatcher.
:feature:`99` Added Digest Auth support to the
circuits.webCLI Tool:feature:`98` Dockerized circuits. See: https://docker.io/
:bug:`97 major` Fixed
tests.net.test_tcp.test_lookup_failuretest for Windows:support:`95` Updated Developer Documentation with corrections and a new workflow.
:feature:`94` Modified the
circuits.web.Loggerto use theresponse_successevent.:support:`86` Telnet Tutorial
:bug:`47 major` Dispatcher does not fully respect optional arguments. web
:support:`61` circuits.web documentation enhancements docs
:support:`85` Migrate away from ShiningPanda
:support:`87` A rendered example of
circuits.tools.graph(). docs:support:`88` Document the implicit registration of components attached as class attributes docs
:bug:`89 major` Class attribtues that reference methods cause duplicate event handlers core
:support:`92` Update circuitsframework.com content docs
:support:`71` Document the value_changed event docs
:support:`78` Migrate Change Log maintenance and build to Releases
:bug:`91 major` Call/Wait and specific instances of events
:bug:`59 major` circuits.web DoS in serve_file (remote denial of service) web
:bug:`66 major` web examples jsonserializer broken web
:support:`73` Fix duplication in auto generated API Docs. docs
:support:`72` Update Event Filtering section of Users Manual docs
:bug:`76 major` Missing unit test for DNS lookup failures net
:support:`70` Convention around method names of event handlers
:support:`75` Document and show examples of using circuits.tools docs
:bug:`81 major` “index” method not serving / web
:bug:`77 major` Uncaught exceptions Event collides with sockets and others core
:support:`69` Merge #circuits-dev FreeNode Channel into #circuits
:support:`65` Update tutorial to match circuits 3.0 API(s) and Semantics docs
:support:`60` meantion @handler decorator in tutorial docs
:bug:`67 major` web example jsontool is broken on python3 web
:support:`63` typos in documentation docs
:bug:`53 major` WebSocketClient treating WebSocket data in same TCP segment as HTTP response as part the HTTP response. web
:bug:`62 major` Fix packaging and bump circuits 1.5.1 for @dsuch (Dariusz Suchojad) for Zato
:bug:`56 major` circuits.web HEAD request send response body web
:bug:`45 major` Fixed use of
cmp()and__cmp__()for Python 3 compatibility.:bug:`48 major` Allow
eventto be passed to the decorated function (the request handler) for circuits.web:bug:`46 major` Set
Content-Typeheader on response for errors. (circuits.web):bug:`38 major` Guard against invalid headers. (circuits.web)
:bug:`37 major` Fixed a typo in
File
Older Change Logs¶
For older Change Logs of previous versions of circuits please see the respective PyPi page(s):