Skip to content

Releases: pystorm/pystorm

pystorm 3.1.4

01 Oct 17:29

Choose a tag to compare

This release makes msgpack an optional requirement, since hardly anyone uses the msgpack serializer. This should solve the issues raised in (#50 and #51).

pystorm 3.1.3

10 Aug 21:07

Choose a tag to compare

  • ReliableSpout now inherits from Spout as it should (issue #49)

pystorm 3.1.2

07 Jul 19:26

Choose a tag to compare

This release fixes an issue where sometimes hung threads would not be killed when a Component exits on an exception. (PR #47)

pystorm 3.1.1

29 Jun 20:59

Choose a tag to compare

This bugfix release fixes an issue where importing anything from pystorm would cause crashes on Windows (Issue #40)

pystorm 3.1.0

26 Jan 21:06
d013631

Choose a tag to compare

Features

  • Added a ReliableSpout implementation that can be used to have spouts that will automatically replay failed tuples up to a specified number of times before giving up on them. (PR #39)
  • Added Spout.activate and Spout.deactivate methods that will be called in Storm 1.1.0 and above when a spout is activated or deactivated. This is handy if you want to close database connections on deactivation and reconnect on activation. (Issue #41, PR #42)

Fixes

  • Fixed an issue where batching bolts would fail all batches they had received when they encountered an exception, even when exit_on_exception was False. Now they will only fail the current batch when exit_on_exception is False; if it is True, all batches are still failed. (PR #43)

pystorm 3.0.3

26 Aug 19:41
24fb18c

Choose a tag to compare

This bugfix release fixes an issue where a nested exception could still cause a StormWentAwayError to be raised (instead of logged). #38

pystorm 3.0.2

24 Aug 19:02
4f53012

Choose a tag to compare

This bugfix release fixes an issue where trying to emit a namedtuple would cause Storm workers to crash with a JSON serialization exception. (PR #37)

pystorm 3.0.1

04 Aug 19:36
da548f7

Choose a tag to compare

This release fixes a few minor issues with pystorm 3.0.0 (all fixed in PR #36).

  • Serialization exceptions are now caught and logged when sending messages, so components won't crash when they try to send malformed messages.
  • Use Component.logger if its set when Component.send_message is passed something that isn't a dict.
  • The pystorm logger's level now get's set to pystorm.log.level instead of just individual components' logging levels. This will ensure that module-level pystorm messages are not missed.

pystorm 3.0.0

15 Apr 20:13

Choose a tag to compare

This release changes a couples defaults to be more sensible, which is the only reason it is considered backward-incompatible. Otherwise, it has a couple handy logging-related features.

⚠️ API Breaking Changes ⚠️

  • need_task_ids defaults to False instead of True in all emit() method calls. If you were previously storing the task IDs that your tuples were emitted to (which is pretty rare), then you must pass need_task_ids=True in your emit() calls. This should provide a little speed boost to most users, because we do not need to wait on a return message from Storm for every emitted tuple.
  • Instead of having pystorm.log.level influence the root logger's level, only your component (and its StormHandler if you haven't set pystorm.log.path)'s levels will be set.
  • When pystorm.log.path is not set, pystorm will no longer issue warning about how you should set it; instead, it will automatically set up a StormHandler and log everything directly to your Storm logs. This is really handy as in Storm 1.0 there's support through the UI for searching logs.

Features

  • Added support for custom log filenames via pystorm.log.file (PR #25 — thanks @ kalmanolah)
  • Added support for custom log format strings via pystorm.log.format (PR #33)
  • Automatically log to Storm when pystorm.log.path is not set (PR #32)
  • __version__ is directly available under the pystorm namespace instead of just in pystorm.version
  • need_task_ids defaults to False, which should provide a speed boost, as discussed above (Issue #29, PR #31)

Fixes

  • Add missing _reader_lock in msgpack_serializer. This could have caused task IDs to not match with emits if using need_task_ids, multithreading, and the msgpack serializer. (PR #28)
  • Simplified emit logic, so that we only request _reader_lock if need_task_ids is True (PR #23)
  • Added missing TicklessBatchingBolt to __all__ in __init__.py.

pystorm 2.0.1

22 Mar 02:16

Choose a tag to compare

This is a bugfix release that fixes an issue where an IOError was being raised instead of a StormWentAwayError when the pipe to Storm breaks during send_message. (Issue #20).