sentry-arroyo 2.28.1__tar.gz → 2.28.3__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 (91) hide show
  1. {sentry_arroyo-2.28.1/sentry_arroyo.egg-info → sentry_arroyo-2.28.3}/PKG-INFO +1 -1
  2. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/produce.py +12 -1
  3. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3/sentry_arroyo.egg-info}/PKG-INFO +1 -1
  4. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/setup.py +1 -1
  5. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/test_processor.py +4 -5
  6. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/LICENSE +0 -0
  7. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/MANIFEST.in +0 -0
  8. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/README.md +0 -0
  9. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/__init__.py +0 -0
  10. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/__init__.py +0 -0
  11. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/abstract.py +0 -0
  12. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/kafka/__init__.py +0 -0
  13. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/kafka/commit.py +0 -0
  14. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/kafka/configuration.py +0 -0
  15. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/kafka/consumer.py +0 -0
  16. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/local/__init__.py +0 -0
  17. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/local/backend.py +0 -0
  18. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/local/storages/__init__.py +0 -0
  19. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/local/storages/abstract.py +0 -0
  20. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/backends/local/storages/memory.py +0 -0
  21. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/commit.py +0 -0
  22. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/dlq.py +0 -0
  23. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/errors.py +0 -0
  24. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/__init__.py +0 -0
  25. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/processor.py +0 -0
  26. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/__init__.py +0 -0
  27. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/abstract.py +0 -0
  28. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/batching.py +0 -0
  29. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/buffer.py +0 -0
  30. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/commit.py +0 -0
  31. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/filter.py +0 -0
  32. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/guard.py +0 -0
  33. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/healthcheck.py +0 -0
  34. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/noop.py +0 -0
  35. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/reduce.py +0 -0
  36. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/run_task.py +0 -0
  37. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/run_task_in_threads.py +0 -0
  38. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/run_task_with_multiprocessing.py +0 -0
  39. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/processing/strategies/unfold.py +0 -0
  40. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/py.typed +0 -0
  41. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/types.py +0 -0
  42. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/__init__.py +0 -0
  43. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/clock.py +0 -0
  44. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/codecs.py +0 -0
  45. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/concurrent.py +0 -0
  46. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/logging.py +0 -0
  47. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/metricDefs.json +0 -0
  48. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/metric_defs.py +0 -0
  49. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/metrics.py +0 -0
  50. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/profiler.py +0 -0
  51. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/arroyo/utils/retries.py +0 -0
  52. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/examples/transform_and_produce/__init__.py +0 -0
  53. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/examples/transform_and_produce/batched.py +0 -0
  54. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/examples/transform_and_produce/script.py +0 -0
  55. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/examples/transform_and_produce/simple.py +0 -0
  56. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/requirements.txt +0 -0
  57. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/sentry_arroyo.egg-info/SOURCES.txt +0 -0
  58. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/sentry_arroyo.egg-info/dependency_links.txt +0 -0
  59. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/sentry_arroyo.egg-info/not-zip-safe +0 -0
  60. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/sentry_arroyo.egg-info/requires.txt +0 -0
  61. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/sentry_arroyo.egg-info/top_level.txt +0 -0
  62. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/setup.cfg +0 -0
  63. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/__init__.py +0 -0
  64. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/mixins.py +0 -0
  65. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/test_commit.py +0 -0
  66. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/test_kafka.py +0 -0
  67. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/test_kafka_producer.py +0 -0
  68. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/backends/test_local.py +0 -0
  69. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/__init__.py +0 -0
  70. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/__init__.py +0 -0
  71. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_all.py +0 -0
  72. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_batching.py +0 -0
  73. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_buffer.py +0 -0
  74. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_commit.py +0 -0
  75. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_filter.py +0 -0
  76. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_guard.py +0 -0
  77. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_noop.py +0 -0
  78. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_produce.py +0 -0
  79. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_reduce.py +0 -0
  80. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_run_task.py +0 -0
  81. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_run_task_in_threads.py +0 -0
  82. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_run_task_with_multiprocessing.py +0 -0
  83. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/processing/strategies/test_unfold.py +0 -0
  84. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/test_commit.py +0 -0
  85. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/test_dlq.py +0 -0
  86. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/test_kip848_e2e.py +0 -0
  87. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/test_types.py +0 -0
  88. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/utils/__init__.py +0 -0
  89. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/utils/test_concurrent.py +0 -0
  90. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/utils/test_metrics.py +0 -0
  91. {sentry_arroyo-2.28.1 → sentry_arroyo-2.28.3}/tests/utils/test_retries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-arroyo
3
- Version: 2.28.1
3
+ Version: 2.28.3
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
@@ -1,7 +1,9 @@
1
1
  import logging
2
2
  import time
3
3
  from collections import deque
4
- from typing import Deque, Optional, Tuple, Union
4
+ from typing import Deque, Optional, Tuple, Union, cast
5
+
6
+ from confluent_kafka import KafkaError, KafkaException
5
7
 
6
8
  from arroyo.backends.abstract import Producer, ProducerFuture
7
9
  from arroyo.processing.strategies.abstract import MessageRejected, ProcessingStrategy
@@ -78,6 +80,15 @@ class Produce(ProcessingStrategy[Union[FilteredPayload, TStrategyPayload]]):
78
80
  self.__metrics.increment(
79
81
  "arroyo.producer.produce_status", tags={"status": "success"}
80
82
  )
83
+ except KafkaException as e:
84
+ self.__metrics.increment(
85
+ "arroyo.producer.produce_status",
86
+ tags={
87
+ "status": "error",
88
+ "code": str(cast(KafkaError, e.args[0]).code),
89
+ },
90
+ )
91
+ raise e
81
92
  except Exception as e:
82
93
  self.__metrics.increment(
83
94
  "arroyo.producer.produce_status", tags={"status": "error"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry-arroyo
3
- Version: 2.28.1
3
+ Version: 2.28.3
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.28.1",
13
+ version="2.28.3",
14
14
  author="Sentry",
15
15
  author_email="oss@sentry.io",
16
16
  license="Apache-2.0",
@@ -3,7 +3,6 @@ from datetime import datetime, timedelta
3
3
  from typing import Any, Mapping, Optional, Sequence, cast
4
4
  from unittest import mock
5
5
 
6
- import py.path
7
6
  import pytest
8
7
 
9
8
  from arroyo.backends.local.backend import LocalBroker
@@ -583,7 +582,7 @@ def test_dlq() -> None:
583
582
  assert dlq_policy.producer.produce.call_count == 1
584
583
 
585
584
 
586
- def test_healthcheck(tmpdir: py.path.local) -> None:
585
+ def test_healthcheck(tmp_path: Any) -> None:
587
586
  """
588
587
  Test healthcheck strategy e2e with StreamProcessor, to ensure the
589
588
  combination of both actually touches the file often enough.
@@ -599,7 +598,7 @@ def test_healthcheck(tmpdir: py.path.local) -> None:
599
598
  strategy.submit.side_effect = InvalidMessage(partition, 1)
600
599
  factory = mock.Mock()
601
600
  factory.create_with_partitions.return_value = Healthcheck(
602
- healthcheck_file=str(tmpdir.join("health.txt")), next_step=strategy
601
+ healthcheck_file=str(tmp_path / "health.txt"), next_step=strategy
603
602
  )
604
603
 
605
604
  processor: StreamProcessor[int] = StreamProcessor(
@@ -617,11 +616,11 @@ def test_healthcheck(tmpdir: py.path.local) -> None:
617
616
  assignment_callback(offsets)
618
617
 
619
618
  processor._run_once()
620
- health_mtime = tmpdir.join("health.txt").mtime()
619
+ health_mtime = (tmp_path / "health.txt").stat().st_mtime
621
620
  assert health_mtime < time.time() + 1
622
621
 
623
622
  processor._run_once()
624
- assert tmpdir.join("health.txt").mtime() == health_mtime
623
+ assert (tmp_path / "health.txt").stat().st_mtime == health_mtime
625
624
 
626
625
 
627
626
  def test_processor_pause_with_invalid_message() -> None:
File without changes
File without changes
File without changes