sentry-arroyo 2.19.7__tar.gz → 2.19.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {sentry_arroyo-2.19.7/sentry_arroyo.egg-info → sentry_arroyo-2.19.9}/PKG-INFO +1 -1
  2. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/dlq.py +7 -1
  3. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/processor.py +23 -5
  4. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9/sentry_arroyo.egg-info}/PKG-INFO +1 -1
  5. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/setup.py +1 -1
  6. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/LICENSE +0 -0
  7. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/MANIFEST.in +0 -0
  8. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/README.md +0 -0
  9. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/__init__.py +0 -0
  10. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/__init__.py +0 -0
  11. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/abstract.py +0 -0
  12. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/__init__.py +0 -0
  13. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/commit.py +0 -0
  14. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/configuration.py +0 -0
  15. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/consumer.py +0 -0
  16. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/__init__.py +0 -0
  17. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/backend.py +0 -0
  18. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/__init__.py +0 -0
  19. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/abstract.py +0 -0
  20. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/memory.py +0 -0
  21. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/commit.py +0 -0
  22. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/errors.py +0 -0
  23. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/__init__.py +0 -0
  24. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/__init__.py +0 -0
  25. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/abstract.py +0 -0
  26. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/batching.py +0 -0
  27. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/buffer.py +0 -0
  28. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/commit.py +0 -0
  29. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/filter.py +0 -0
  30. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/guard.py +0 -0
  31. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/healthcheck.py +0 -0
  32. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/noop.py +0 -0
  33. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/produce.py +0 -0
  34. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/reduce.py +0 -0
  35. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task.py +0 -0
  36. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task_in_threads.py +0 -0
  37. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task_with_multiprocessing.py +0 -0
  38. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/unfold.py +0 -0
  39. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/py.typed +0 -0
  40. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/types.py +0 -0
  41. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/__init__.py +0 -0
  42. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/clock.py +0 -0
  43. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/codecs.py +0 -0
  44. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/concurrent.py +0 -0
  45. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/logging.py +0 -0
  46. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metricDefs.json +0 -0
  47. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metric_defs.py +0 -0
  48. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metrics.py +0 -0
  49. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/profiler.py +0 -0
  50. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/retries.py +0 -0
  51. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/__init__.py +0 -0
  52. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/batched.py +0 -0
  53. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/script.py +0 -0
  54. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/simple.py +0 -0
  55. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/requirements.txt +0 -0
  56. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/SOURCES.txt +0 -0
  57. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/dependency_links.txt +0 -0
  58. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/not-zip-safe +0 -0
  59. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/requires.txt +0 -0
  60. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/top_level.txt +0 -0
  61. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/setup.cfg +0 -0
  62. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/__init__.py +0 -0
  63. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/mixins.py +0 -0
  64. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_commit.py +0 -0
  65. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_kafka.py +0 -0
  66. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_local.py +0 -0
  67. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/__init__.py +0 -0
  68. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/__init__.py +0 -0
  69. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_all.py +0 -0
  70. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_batching.py +0 -0
  71. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_buffer.py +0 -0
  72. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_commit.py +0 -0
  73. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_filter.py +0 -0
  74. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_guard.py +0 -0
  75. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_noop.py +0 -0
  76. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_produce.py +0 -0
  77. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_reduce.py +0 -0
  78. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task.py +0 -0
  79. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task_in_threads.py +0 -0
  80. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task_with_multiprocessing.py +0 -0
  81. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_unfold.py +0 -0
  82. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/test_processor.py +0 -0
  83. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_commit.py +0 -0
  84. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_dlq.py +0 -0
  85. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_types.py +0 -0
  86. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/__init__.py +0 -0
  87. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_concurrent.py +0 -0
  88. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_metrics.py +0 -0
  89. {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_retries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sentry-arroyo
3
- Version: 2.19.7
3
+ Version: 2.19.9
4
4
  Summary: Arroyo is a Python library for working with streaming data.
5
5
  Home-page: https://github.com/getsentry/arroyo
6
6
  Author: Sentry
@@ -44,12 +44,18 @@ class InvalidMessage(Exception):
44
44
  """
45
45
 
46
46
  def __init__(
47
- self, partition: Partition, offset: int, needs_commit: bool = True, reason: Optional[str] = None,
47
+ self,
48
+ partition: Partition,
49
+ offset: int,
50
+ needs_commit: bool = True,
51
+ reason: Optional[str] = None,
52
+ log_exception: bool = True
48
53
  ) -> None:
49
54
  self.partition = partition
50
55
  self.offset = offset
51
56
  self.needs_commit = needs_commit
52
57
  self.reason = reason
58
+ self.log_exception = log_exception
53
59
 
54
60
  @classmethod
55
61
  def from_value(cls, value: BrokerValue[Any]) -> InvalidMessage:
@@ -365,7 +365,8 @@ class StreamProcessor(Generic[TStrategyPayload]):
365
365
  ):
366
366
  self.__message = None
367
367
 
368
- logger.exception(exc)
368
+ if exc.log_exception:
369
+ logger.exception(exc)
369
370
  self.__metrics_buffer.incr_counter("arroyo.consumer.invalid_message.count", 1)
370
371
  if self.__dlq_policy:
371
372
  start_dlq = time.time()
@@ -446,10 +447,27 @@ class StreamProcessor(Generic[TStrategyPayload]):
446
447
  self.__is_paused = True
447
448
 
448
449
  elif self.__is_paused:
449
- # A paused consumer should still poll periodically to avoid it's partitions
450
- # getting revoked by the broker after reaching the max.poll.interval.ms
451
- # Polling a paused consumer should never yield a message.
452
- assert self.__consumer.poll(0.1) is None
450
+ paused_partitions = set(self.__consumer.paused())
451
+ unpaused_partitions = (
452
+ set(self.__consumer.tell()) - paused_partitions
453
+ )
454
+ if unpaused_partitions:
455
+ logger.warning(
456
+ "Processor in paused state while consumer is partially unpaused: %s, paused: %s",
457
+ unpaused_partitions,
458
+ paused_partitions,
459
+ )
460
+ self.__is_paused = False
461
+ # unpause paused partitions... just in case a subset is paused
462
+ self.__metrics_buffer.incr_counter(
463
+ "arroyo.consumer.resume", 1
464
+ )
465
+ self.__consumer.resume([*paused_partitions])
466
+ else:
467
+ # A paused consumer should still poll periodically to avoid it's partitions
468
+ # getting revoked by the broker after reaching the max.poll.interval.ms
469
+ # Polling a paused consumer should never yield a message.
470
+ assert self.__consumer.poll(0.1) is None
453
471
  else:
454
472
  time.sleep(0.01)
455
473
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sentry-arroyo
3
- Version: 2.19.7
3
+ Version: 2.19.9
4
4
  Summary: Arroyo is a Python library for working with streaming data.
5
5
  Home-page: https://github.com/getsentry/arroyo
6
6
  Author: Sentry
@@ -10,7 +10,7 @@ def get_requirements() -> Sequence[str]:
10
10
 
11
11
  setup(
12
12
  name="sentry-arroyo",
13
- version="2.19.7",
13
+ version="2.19.9",
14
14
  author="Sentry",
15
15
  author_email="oss@sentry.io",
16
16
  license="Apache-2.0",
File without changes
File without changes
File without changes