bizon 0.1.1__py3-none-any.whl → 0.1.2__py3-none-any.whl

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 (32) hide show
  1. bizon/common/models.py +2 -0
  2. bizon/connectors/destinations/bigquery/src/config.py +1 -0
  3. bizon/connectors/destinations/bigquery/src/destination.py +3 -1
  4. bizon/connectors/destinations/bigquery_streaming/src/config.py +6 -5
  5. bizon/connectors/destinations/bigquery_streaming/src/destination.py +9 -4
  6. bizon/connectors/destinations/bigquery_streaming_v2/src/config.py +6 -1
  7. bizon/connectors/destinations/bigquery_streaming_v2/src/destination.py +230 -45
  8. bizon/connectors/destinations/bigquery_streaming_v2/src/proto_utils.py +1 -13
  9. bizon/connectors/destinations/file/src/config.py +1 -0
  10. bizon/connectors/destinations/file/src/destination.py +3 -1
  11. bizon/connectors/destinations/logger/src/config.py +1 -0
  12. bizon/connectors/destinations/logger/src/destination.py +3 -0
  13. bizon/connectors/sources/kafka/config/kafka.example.yml +1 -3
  14. bizon/connectors/sources/kafka/config/kafka_debezium.example.yml +1 -3
  15. bizon/connectors/sources/kafka/src/config.py +0 -6
  16. bizon/connectors/sources/kafka/src/decode.py +71 -66
  17. bizon/connectors/sources/kafka/src/source.py +44 -24
  18. bizon/connectors/sources/kafka/tests/kafka_pipeline.py +1 -1
  19. bizon/destination/config.py +9 -0
  20. bizon/destination/destination.py +37 -5
  21. bizon/engine/runner/adapters/streaming.py +60 -42
  22. bizon/engine/runner/runner.py +14 -7
  23. bizon/monitoring/config.py +12 -2
  24. bizon/monitoring/datadog/monitor.py +98 -14
  25. bizon/monitoring/monitor.py +41 -12
  26. bizon/monitoring/noop/monitor.py +22 -3
  27. bizon/source/source.py +1 -1
  28. {bizon-0.1.1.dist-info → bizon-0.1.2.dist-info}/METADATA +2 -1
  29. {bizon-0.1.1.dist-info → bizon-0.1.2.dist-info}/RECORD +32 -32
  30. {bizon-0.1.1.dist-info → bizon-0.1.2.dist-info}/WHEEL +1 -1
  31. {bizon-0.1.1.dist-info → bizon-0.1.2.dist-info}/LICENSE +0 -0
  32. {bizon-0.1.1.dist-info → bizon-0.1.2.dist-info}/entry_points.txt +0 -0
@@ -1,44 +1,48 @@
1
1
  import os
2
- from typing import Dict
2
+ from contextlib import contextmanager
3
+ from typing import Dict, List, Union
3
4
 
4
5
  from datadog import initialize, statsd
5
6
  from loguru import logger
6
7
 
7
- from bizon.common.models import BizonConfig
8
+ from bizon.common.models import SyncMetadata
8
9
  from bizon.engine.pipeline.models import PipelineReturnStatus
10
+ from bizon.monitoring.config import MonitoringConfig
9
11
  from bizon.monitoring.monitor import AbstractMonitor
12
+ from bizon.source.models import SourceRecord
10
13
 
11
14
 
12
15
  class DatadogMonitor(AbstractMonitor):
13
- def __init__(self, pipeline_config: BizonConfig):
14
- super().__init__(pipeline_config)
16
+ def __init__(self, sync_metadata: SyncMetadata, monitoring_config: MonitoringConfig):
17
+ super().__init__(sync_metadata, monitoring_config)
15
18
 
16
19
  # In Kubernetes, set the host dynamically
17
20
  try:
18
- datadog_host_from_env_var = os.getenv(pipeline_config.monitoring.config.datadog_host_env_var)
21
+ datadog_host_from_env_var = os.getenv(monitoring_config.config.datadog_host_env_var)
19
22
  if datadog_host_from_env_var:
20
23
  initialize(
21
24
  statsd_host=datadog_host_from_env_var,
22
- statsd_port=pipeline_config.monitoring.config.datadog_agent_port,
25
+ statsd_port=monitoring_config.config.datadog_agent_port,
23
26
  )
24
27
  else:
25
28
  initialize(
26
- statsd_host=pipeline_config.monitoring.config.datadog_agent_host,
27
- statsd_port=pipeline_config.monitoring.config.datadog_agent_port,
29
+ statsd_host=monitoring_config.config.datadog_agent_host,
30
+ statsd_port=monitoring_config.config.datadog_agent_port,
28
31
  )
29
32
  except Exception as e:
30
33
  logger.info(f"Failed to initialize Datadog agent: {e}")
31
34
 
32
35
  self.pipeline_monitor_status = "bizon_pipeline.status"
33
36
  self.tags = [
34
- f"pipeline_name:{self.pipeline_config.name}",
35
- f"pipeline_stream:{self.pipeline_config.source.stream}",
36
- f"pipeline_source:{self.pipeline_config.source.name}",
37
- f"pipeline_destination:{self.pipeline_config.destination.name}",
38
- ] + [f"{key}:{value}" for key, value in self.pipeline_config.monitoring.config.tags.items()]
37
+ f"pipeline_name:{self.sync_metadata.name}",
38
+ f"pipeline_stream:{self.sync_metadata.stream_name}",
39
+ f"pipeline_source:{self.sync_metadata.source_name}",
40
+ f"pipeline_destination:{self.sync_metadata.destination_name}",
41
+ ] + [f"{key}:{value}" for key, value in self.monitoring_config.config.tags.items()]
39
42
 
40
43
  self.pipeline_active_pipelines = "bizon_pipeline.active_pipelines"
41
44
  self.pipeline_records_synced = "bizon_pipeline.records_synced"
45
+ self.pipeline_large_records = "bizon_pipeline.large_records"
42
46
 
43
47
  def track_pipeline_status(self, pipeline_status: PipelineReturnStatus, extra_tags: Dict[str, str] = {}) -> None:
44
48
  """
@@ -55,7 +59,9 @@ class DatadogMonitor(AbstractMonitor):
55
59
  + [f"{key}:{value}" for key, value in extra_tags.items()],
56
60
  )
57
61
 
58
- def track_records_synced(self, num_records: int, extra_tags: Dict[str, str] = {}) -> None:
62
+ def track_records_synced(
63
+ self, num_records: int, destination_id: str, extra_tags: Dict[str, str] = {}, headers: List[Dict[str, str]] = []
64
+ ) -> Union[List[Dict[str, str]], None]:
59
65
  """
60
66
  Track the number of records synced in the pipeline.
61
67
 
@@ -67,3 +73,81 @@ class DatadogMonitor(AbstractMonitor):
67
73
  value=num_records,
68
74
  tags=self.tags + [f"{key}:{value}" for key, value in extra_tags.items()],
69
75
  )
76
+ if os.getenv("DD_DATA_STREAMS_ENABLED") == "true":
77
+ from ddtrace.data_streams import set_produce_checkpoint
78
+
79
+ destination_type = self.sync_metadata.destination_alias
80
+
81
+ for header in headers:
82
+ if "x-datadog-sampling-priority" in header:
83
+ del header["x-datadog-sampling-priority"]
84
+ if "dd-pathway-ctx-base64" in header:
85
+ del header["dd-pathway-ctx-base64"]
86
+ set_produce_checkpoint(destination_type, destination_id, header.setdefault)
87
+ return headers
88
+
89
+ def track_large_records_synced(self, num_records: int, extra_tags: Dict[str, str] = {}) -> None:
90
+ statsd.increment(
91
+ self.pipeline_large_records,
92
+ value=num_records,
93
+ tags=self.tags + [f"{key}:{value}" for key, value in extra_tags.items()],
94
+ )
95
+
96
+ def track_source_iteration(self, records: List[SourceRecord]) -> Union[List[Dict[str, str]], None]:
97
+ """
98
+ Track the number of records consumed from a Kafka topic.
99
+
100
+ Args:
101
+ kafka_topic (str): The Kafka topic name
102
+ """
103
+
104
+ if os.getenv("DD_DATA_STREAMS_ENABLED") == "true":
105
+ from ddtrace.data_streams import set_consume_checkpoint
106
+
107
+ headers_list = []
108
+ for record in records:
109
+ headers = record.data.get("headers", {})
110
+ set_consume_checkpoint("kafka", record.data["topic"], headers.get)
111
+ headers_list.append(headers)
112
+ return headers_list
113
+
114
+ @contextmanager
115
+ def trace(self, operation_name: str, resource: str = None, extra_tags: Dict[str, str] = None):
116
+ """
117
+ Create a trace span for monitoring using Datadog APM.
118
+
119
+ Args:
120
+ operation_name (str): The name of the operation being traced
121
+ resource (str): The resource being operated on (e.g., topic name, table name)
122
+ extra_tags (Dict[str, str]): Additional tags for the trace
123
+
124
+ Yields:
125
+ A span object that can be used to add additional metadata
126
+ """
127
+ if not self.monitoring_config.config.enable_tracing:
128
+ yield None
129
+ return
130
+
131
+ try:
132
+ from ddtrace import tracer
133
+
134
+ # Combine tags
135
+ all_tags = self.tags.copy()
136
+ if extra_tags:
137
+ all_tags.extend([f"{key}:{value}" for key, value in extra_tags.items()])
138
+
139
+ # Create the span
140
+ with tracer.trace(operation_name, resource=resource) as span:
141
+ # Add tags to the span
142
+ for tag in all_tags:
143
+ if ":" in tag:
144
+ key, value = tag.split(":", 1)
145
+ span.set_tag(key, value)
146
+ span.set_tag("_sampling_priority_v1", 1)
147
+ yield span
148
+ except ImportError:
149
+ logger.warning("ddtrace not available, skipping tracing")
150
+ yield None
151
+ except Exception as e:
152
+ logger.warning(f"Failed to create trace: {e}")
153
+ yield None
@@ -1,15 +1,16 @@
1
1
  from abc import ABC, abstractmethod
2
- from typing import Dict
2
+ from typing import Dict, List, Union
3
3
 
4
- from bizon.common.models import BizonConfig
4
+ from bizon.common.models import SyncMetadata
5
5
  from bizon.engine.pipeline.models import PipelineReturnStatus
6
- from bizon.monitoring.config import MonitorType
6
+ from bizon.monitoring.config import MonitoringConfig, MonitorType
7
+ from bizon.source.models import SourceRecord
7
8
 
8
9
 
9
10
  class AbstractMonitor(ABC):
10
- def __init__(self, pipeline_config: BizonConfig):
11
- self.pipeline_config = pipeline_config
12
- # Initialize the monitor
11
+ def __init__(self, sync_metadata: SyncMetadata, monitoring_config: MonitoringConfig):
12
+ self.sync_metadata = sync_metadata
13
+ self.monitoring_config = monitoring_config
13
14
 
14
15
  @abstractmethod
15
16
  def track_pipeline_status(self, pipeline_status: PipelineReturnStatus, extra_tags: Dict[str, str] = {}) -> None:
@@ -21,22 +22,50 @@ class AbstractMonitor(ABC):
21
22
  """
22
23
  pass
23
24
 
24
- def track_records_synced(self, num_records: int, extra_tags: Dict[str, str] = {}) -> None:
25
+ def track_source_iteration(self, records: List[SourceRecord], headers: Dict[str, str] = {}) -> None:
26
+ """
27
+ Run a process that tracks the source iteration.
28
+ """
29
+ pass
30
+
31
+ def track_records_synced(
32
+ self, num_records: int, destination_id: str, extra_tags: Dict[str, str] = {}, headers: Dict[str, str] = {}
33
+ ) -> None:
25
34
  """
26
35
  Track the number of records synced in the pipeline.
27
36
  """
28
37
  pass
29
38
 
39
+ def trace(self, operation_name: str, resource: str = None, extra_tags: Dict[str, str] = None):
40
+ """
41
+ Create a trace span for monitoring.
42
+
43
+ Args:
44
+ operation_name (str): The name of the operation being traced
45
+ resource (str): The resource being operated on (e.g., topic name, table name)
46
+ extra_tags (Dict[str, str]): Additional tags for the trace
47
+
48
+ Returns:
49
+ A context manager that can be used with 'with' statement
50
+ """
51
+ pass
52
+
53
+ def track_large_records_synced(self, num_records: int, extra_tags: Dict[str, str] = {}) -> None:
54
+ """
55
+ Track the number of large records synced in the destination system. This aims at helping to identify the source of the large records.
56
+ """
57
+ pass
58
+
30
59
 
31
60
  class MonitorFactory:
32
61
  @staticmethod
33
- def get_monitor(pipeline_config: BizonConfig) -> AbstractMonitor:
34
- if pipeline_config.monitoring is None:
62
+ def get_monitor(sync_metadata: SyncMetadata, monitoring_config: Union[MonitoringConfig, None]) -> AbstractMonitor:
63
+ if monitoring_config is None:
35
64
  from bizon.monitoring.noop.monitor import NoOpMonitor
36
65
 
37
- return NoOpMonitor(pipeline_config)
66
+ return NoOpMonitor(sync_metadata, monitoring_config)
38
67
 
39
- if pipeline_config.monitoring.type == MonitorType.DATADOG:
68
+ if monitoring_config.type == MonitorType.DATADOG:
40
69
  from bizon.monitoring.datadog.monitor import DatadogMonitor
41
70
 
42
- return DatadogMonitor(pipeline_config)
71
+ return DatadogMonitor(sync_metadata, monitoring_config)
@@ -1,11 +1,30 @@
1
- from bizon.common.models import BizonConfig
1
+ from contextlib import contextmanager
2
+ from typing import Dict
3
+
4
+ from bizon.common.models import BizonConfig, SyncMetadata
2
5
  from bizon.engine.pipeline.models import PipelineReturnStatus
6
+ from bizon.monitoring.config import MonitoringConfig
3
7
  from bizon.monitoring.monitor import AbstractMonitor
4
8
 
5
9
 
6
10
  class NoOpMonitor(AbstractMonitor):
7
- def __init__(self, pipeline_config: BizonConfig):
8
- super().__init__(pipeline_config)
11
+ def __init__(self, sync_metadata: SyncMetadata, monitoring_config: MonitoringConfig):
12
+ super().__init__(sync_metadata, monitoring_config)
9
13
 
10
14
  def track_pipeline_status(self, pipeline_status: PipelineReturnStatus) -> None:
11
15
  pass
16
+
17
+ @contextmanager
18
+ def trace(self, operation_name: str, resource: str = None, extra_tags: Dict[str, str] = None):
19
+ """
20
+ No-op trace implementation.
21
+
22
+ Args:
23
+ operation_name (str): The name of the operation being traced
24
+ resource (str): The resource being operated on (e.g., topic name, table name)
25
+ extra_tags (Dict[str, str]): Additional tags for the trace
26
+
27
+ Yields:
28
+ None (no-op implementation)
29
+ """
30
+ yield None
bizon/source/source.py CHANGED
@@ -101,6 +101,6 @@ class AbstractSource(ABC):
101
101
  """Return a new session"""
102
102
  return Session()
103
103
 
104
- def commit(self, records: Optional[List[SourceRecord]] = None):
104
+ def commit(self):
105
105
  """Commit the records to the source"""
106
106
  pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bizon
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Extract and load your data reliably from API Clients with native fault-tolerant and checkpointing mechanism.
5
5
  Author: Antoine Balliet
6
6
  Author-email: antoine.balliet@gmail.com
@@ -21,6 +21,7 @@ Requires-Dist: backoff (>=2.2.1,<3.0.0)
21
21
  Requires-Dist: click (>=8.1.7,<9.0.0)
22
22
  Requires-Dist: confluent-kafka (>=2.6.0,<3.0.0) ; extra == "kafka"
23
23
  Requires-Dist: datadog (>=0.50.2,<0.51.0) ; extra == "datadog"
24
+ Requires-Dist: ddtrace (>=3.10.0,<4.0.0) ; extra == "datadog"
24
25
  Requires-Dist: dpath (>=2.2.0,<3.0.0)
25
26
  Requires-Dist: fastavro (>=1.9.7,<2.0.0) ; extra == "kafka"
26
27
  Requires-Dist: google-cloud-bigquery (>=3.25.0,<4.0.0) ; extra == "bigquery"
@@ -10,19 +10,19 @@ bizon/cli/main.py,sha256=pQnphPLznllBVzifyIrn3es0U9E1VGSzeEv_COzq9FI,3364
10
10
  bizon/cli/utils.py,sha256=aZ47YjFfifHkW95bAVzWfEQD3ZnxGSMT32bkRLmc5-c,953
11
11
  bizon/common/errors/backoff.py,sha256=z7RkQt1Npdh0sfD3hBDaiWQKe4iqS6ewvT1Q4Fds5aU,508
12
12
  bizon/common/errors/errors.py,sha256=mrYx1uE2kOuR2pEaB7ztK1l2m0E4V-_-hxq-DuILerY,682
13
- bizon/common/models.py,sha256=NyZJLctW7rZnXmRe64qM7g4xY4lSrx-3MtOZ4R4xKsk,2627
13
+ bizon/common/models.py,sha256=yJbYhdzsMWwp2qWXO1cjT3nUhLtqMKM9yLEecb5NFTg,2710
14
14
  bizon/connectors/destinations/bigquery/config/bigquery.example.yml,sha256=sy5-Piew00BlcjX5CFayFVrUq9G_vFYWXDmpWi9beTY,1263
15
- bizon/connectors/destinations/bigquery/src/config.py,sha256=q7UV4dTkRzCPvyQqxkORH4VUw4WcTwOU9b02r0AnCWE,3973
16
- bizon/connectors/destinations/bigquery/src/destination.py,sha256=kkDoEw72F_1XkHTvtDKWegjZ3b9rjas19tnrgZl4H6g,8873
17
- bizon/connectors/destinations/bigquery_streaming/src/config.py,sha256=YuxTVGqfVaGtzZHC5S2jCoFNQt9aqAQgScudSWUsShA,1997
18
- bizon/connectors/destinations/bigquery_streaming/src/destination.py,sha256=aiB37wrUpg40QMFjrUJ9WPkzF62ipYRCrjrXD77ReEM,15778
19
- bizon/connectors/destinations/bigquery_streaming_v2/src/config.py,sha256=GJOWEVhSOD-lV3j7bmxdSOXfOmHOcyIcq_MFUjOFxQE,1816
20
- bizon/connectors/destinations/bigquery_streaming_v2/src/destination.py,sha256=u-bNKlz6alTITJ9XnScChY9SMtGd98f03OI66v_iLlk,11296
21
- bizon/connectors/destinations/bigquery_streaming_v2/src/proto_utils.py,sha256=16GSAZz-6kVLFfn9EXNKwL390RB30-Hpv0csuPB5O_A,4032
22
- bizon/connectors/destinations/file/src/config.py,sha256=44eCBk_gZuEI7x_Px7UQbjJYw_rmtUsv09p6-MQg5vg,571
23
- bizon/connectors/destinations/file/src/destination.py,sha256=kT0ugGNN29OQNT8hcSFTN-U6t7Bo7N5GyzawZ4WTHGI,1736
24
- bizon/connectors/destinations/logger/src/config.py,sha256=a68fC9mcIaZjoScNTWzpxxwpFzSznXHdKnP2jn3BU5s,432
25
- bizon/connectors/destinations/logger/src/destination.py,sha256=fbb5dG2IR3t0UugFANyX5Eshc2T55MAcjnVD_gWTnt8,1117
15
+ bizon/connectors/destinations/bigquery/src/config.py,sha256=erTcw4M3ki5uvB2UJD5yxI80T7KVZj57_e70TB8ddLY,4001
16
+ bizon/connectors/destinations/bigquery/src/destination.py,sha256=5LtIH2i3tNivYiRj8RBXjRmeGJNIaYQJOIMNuXw42Ds,8969
17
+ bizon/connectors/destinations/bigquery_streaming/src/config.py,sha256=LdBKEqHPaGll8PW6c6q_lH7PJvsGdtv2BCrtB-TukTA,1898
18
+ bizon/connectors/destinations/bigquery_streaming/src/destination.py,sha256=aqMRDcSeX1hGO3VjyGs6lvd9BKbtwtbpdGSLI9xliko,16000
19
+ bizon/connectors/destinations/bigquery_streaming_v2/src/config.py,sha256=cdHST5Vx1VQbLsIVsPkoEtOJKmbA35XjsKzj6fZ5DHw,1907
20
+ bizon/connectors/destinations/bigquery_streaming_v2/src/destination.py,sha256=UgUne8dNsWIfhB7bXiPVZMlq5jx7eeAshc0sPglULzc,18638
21
+ bizon/connectors/destinations/bigquery_streaming_v2/src/proto_utils.py,sha256=aWYVzMPMTgsdDapYniu8h6Tf2Pty4fDisT_33d9yEJ4,3692
22
+ bizon/connectors/destinations/file/src/config.py,sha256=_SwVmFouv9HBCyBVR5B4CwSrfeOy8RFMcekvseTpD7Y,595
23
+ bizon/connectors/destinations/file/src/destination.py,sha256=9jXPm6nRrdQAD0udmOJtTt5Aab_tUuuDg7mHhngBgaA,1832
24
+ bizon/connectors/destinations/logger/src/config.py,sha256=IIB9DiGHTMJ0kJ7pkNojoyywiFwQlmVFdYL627nJ4rA,458
25
+ bizon/connectors/destinations/logger/src/destination.py,sha256=OU2eGcVXGzCNTu8qYxokKt3OmDHG5-hsPRIW2PqfZrM,1233
26
26
  bizon/connectors/sources/cycle/config/cycle.example.yml,sha256=UDiqOa-8ZsykmNT625kxq9tyXOj_gKe9CFwg9r_8SYk,230
27
27
  bizon/connectors/sources/cycle/src/source.py,sha256=NCYiAnQZOCwwyMPoRhv3LFlG-UlMBCR3iPapuk3AwAA,4265
28
28
  bizon/connectors/sources/cycle/tests/cycle_customers.py,sha256=A48S20LxIC0A74JLoFn4NTHNTgBWV_5stTFtF1Gfk2c,271
@@ -46,13 +46,13 @@ bizon/connectors/sources/hubspot/src/hubspot_base.py,sha256=F9_jEZnQTCRazETJ2_He
46
46
  bizon/connectors/sources/hubspot/src/hubspot_objects.py,sha256=rlZl-pUb9IGq5Hbfa15JwrQZOr4uCp7q_rrQus7u3OI,6289
47
47
  bizon/connectors/sources/hubspot/src/models/hs_object.py,sha256=-Y20H3-nenJyySMlvM4TPttPz4O8qm3ArKP_I8pxsuo,1235
48
48
  bizon/connectors/sources/hubspot/tests/hubspot_pipeline.py,sha256=e6dCF5_MHMySkeiF6kKrSAuCa_48J22-ZeSCZSjrfUI,216
49
- bizon/connectors/sources/kafka/config/kafka.example.yml,sha256=o0FoyO5D6OVvAcWlj_1TFtnwUrK-18WkrGBVzR0kBUU,957
50
- bizon/connectors/sources/kafka/config/kafka_debezium.example.yml,sha256=CsZORf7fcRhck-0aSEEvfSX5tM2YVP5aezSEs2Ux95w,2278
49
+ bizon/connectors/sources/kafka/config/kafka.example.yml,sha256=taIj3QUL3jynQCpO-YlDtt6nGvQp8hOzGkS0_RJFUQU,933
50
+ bizon/connectors/sources/kafka/config/kafka_debezium.example.yml,sha256=lqFbNbSAFRh1Q8a9xQ_7nhhvVsyVIZM4amGEvCqHXQE,2254
51
51
  bizon/connectors/sources/kafka/src/callback.py,sha256=NgP9PLquHbVagz6E9VJK5Vx-kK8K2l80MhoeenbhOXY,484
52
- bizon/connectors/sources/kafka/src/config.py,sha256=Gw5Qi84FuBzYRayfCVq4VlQTwDauAwovqSjnWSJ4O-w,2708
53
- bizon/connectors/sources/kafka/src/decode.py,sha256=dwgf5aoFky4GUeiJKc8bAYKPjYnBJs_dqz8JKtgVCEg,2992
54
- bizon/connectors/sources/kafka/src/source.py,sha256=AXAeHnl7B-qDoGFa1JfRhYCFudzHyksYtPePcx-oe8g,14058
55
- bizon/connectors/sources/kafka/tests/kafka_pipeline.py,sha256=Alcwx9vZ_2OWgKvQgVuc5u34hgZX5WJiluiLCCKl6LU,203
52
+ bizon/connectors/sources/kafka/src/config.py,sha256=jyvpEkT2PUXXcyZgPK2T-YmwPpqeQBntY3gU5Zk5cKU,2510
53
+ bizon/connectors/sources/kafka/src/decode.py,sha256=5Xr1_u1KEqpQsJR9cQ9Y-UTFd40lNNg48tAoQFSj7WQ,2822
54
+ bizon/connectors/sources/kafka/src/source.py,sha256=uL1kQFLlrGXf-ebG8Cqx8mljVPnVsujOsQzDjxyZ9bM,15069
55
+ bizon/connectors/sources/kafka/tests/kafka_pipeline.py,sha256=9LaCqXJIEx2ye3dkWq0YK_bPX7d4fCX_OcDOJCk34WE,206
56
56
  bizon/connectors/sources/periscope/config/periscope_charts.example.yml,sha256=9OgFDB7vguiNz2F2fmRqDNV8S_ddO9ncN5hgW9MhME4,350
57
57
  bizon/connectors/sources/periscope/config/periscope_dashboards.example.yml,sha256=mQey_04cfCzNpm-tYICDRUmPOFTZGSaTYI2OpK604d0,364
58
58
  bizon/connectors/sources/periscope/src/source.py,sha256=N4auF-PwME7SjsqR0ear3DO1WSRAIOaJCnOmsUFCYzE,12354
@@ -62,8 +62,8 @@ bizon/connectors/sources/pokeapi/config/pokeapi_pokemon_to_json.example.yml,sha2
62
62
  bizon/connectors/sources/pokeapi/config/pokeapi_pokemon_to_logger.example.yml,sha256=wuJUob6QF1jwm5pnfNcFfXeO01HCcu-TEoZCeuYl_lo,134
63
63
  bizon/connectors/sources/pokeapi/src/source.py,sha256=gmR58dk7mNOqimJTdJKVT1doSpEaKIM5mY1hfWGKJvk,2538
64
64
  bizon/destination/buffer.py,sha256=77sns18cjmo7_ejk9jjDF4uCT1mlaTCHqn82c2K2BIs,3156
65
- bizon/destination/config.py,sha256=5AiODMxpCUnAu-xLytyNdeF_8KAtkpuK6T8oYJYet_g,2704
66
- bizon/destination/destination.py,sha256=Wgxc6fJeZfUZ3oLZiF-TGKWlC_sVdG56to-tShhDlWM,13502
65
+ bizon/destination/config.py,sha256=YX_rxh7U2-gh6NEPFByD9VBaDG0eMkv3yOgR8Vzi8g4,3034
66
+ bizon/destination/destination.py,sha256=Tx76KpOmLTzYx-HkNnVFVOL57Eh-GoqZwvKd6l_LjAo,14621
67
67
  bizon/destination/models.py,sha256=_LUnkbbD_9XauYrNTthh9VmbYwWsVgPHF90FX6vmSjg,1278
68
68
  bizon/engine/backend/adapters/sqlalchemy/backend.py,sha256=dXp4kszGuMDeJMEmf6MsVCC02Je1X9meAfmh92GQTfI,15454
69
69
  bizon/engine/backend/adapters/sqlalchemy/config.py,sha256=K-FpE_-VHnTSAQOduouhXFVy43EkrKbeZLqr9_OfeMw,1846
@@ -87,17 +87,17 @@ bizon/engine/queue/adapters/rabbitmq/queue.py,sha256=pg_XUtXAd14Yi4H3k-yLXF3JM5y
87
87
  bizon/engine/queue/config.py,sha256=tTxo4OgSoDItMyWYIHLufFcOFqBGbIyPN5ZDNi1jZhI,1269
88
88
  bizon/engine/queue/queue.py,sha256=Y9uj31d-ZgW2f0F02iccp_o-m-RoMm_jR61NkLdMQ2M,3461
89
89
  bizon/engine/runner/adapters/process.py,sha256=0szaMKew7hbLcKR3k1pvwpDDynU7lcowpOJf48C8i3Y,3051
90
- bizon/engine/runner/adapters/streaming.py,sha256=CT3R56pixNrfis2bRhL7rg9UiREqcCHzh2wG42PmeUI,4340
90
+ bizon/engine/runner/adapters/streaming.py,sha256=fLl5JvW6__GD0yBsvraqr7XKRyHEmjO3bsjbcoCk_tE,5213
91
91
  bizon/engine/runner/adapters/thread.py,sha256=3BOGJlVFFWSA_NcK4NmwzB5FMFe6fqp0Ev_shukksPc,3792
92
92
  bizon/engine/runner/config.py,sha256=CK3rsudAo1cDhr2-fTmKcozWrmTsFmGzScKPl4cndWQ,2456
93
- bizon/engine/runner/runner.py,sha256=MpsZ9TVHK9sNvQiAcQ0-OtjQKFftct7hlGvcN9ByAeY,10788
93
+ bizon/engine/runner/runner.py,sha256=3AObfFotMkqaRPjBxJXmWRE-h0onMQBi3EpFU0JsKy8,11069
94
94
  bizon/monitoring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
- bizon/monitoring/config.py,sha256=sGiTdmCYrVO2QPrePCW3GpYiJu-svK94ZdJwTcPDGRU,867
95
+ bizon/monitoring/config.py,sha256=wRZRfW4ejjFDSG6swWj7kIULlaNYUPdbIKblQC9lzsk,1112
96
96
  bizon/monitoring/datadog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- bizon/monitoring/datadog/monitor.py,sha256=L6X22MIYch87y3_WFlABz2SDTwHWWT8nEryjmolqURQ,2732
98
- bizon/monitoring/monitor.py,sha256=czROAeoyu9uSOz-EMHM63B_Vfh-u9frfxNHJnKra4eA,1373
97
+ bizon/monitoring/datadog/monitor.py,sha256=NMtnIYq6n3I-QYmMJ6r8w63SO5DJ3wiDxXkcwqXEswY,6120
98
+ bizon/monitoring/monitor.py,sha256=aJ3JEgD-f-HydGFAmprwL8YCA0WumDeXpm2P-uqp4wM,2627
99
99
  bizon/monitoring/noop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- bizon/monitoring/noop/monitor.py,sha256=uiK39XPT4ykzckkGULMMfWugL6KhAeS6lc_jVvl4pd8,391
100
+ bizon/monitoring/noop/monitor.py,sha256=9fALRj6LSxvNcqUTp6aKj5fLJqbpUMqu_xbP-T9Dbso,1079
101
101
  bizon/source/auth/authenticators/abstract_oauth.py,sha256=gJ40Sbrt0lnHfLupzkzOvUmse3X0Fp2XRHHqjqnVXdI,5274
102
102
  bizon/source/auth/authenticators/abstract_token.py,sha256=GMEQNyqkPYHmpY_FygChfokLLbohsz2r0WxttAQjsbw,899
103
103
  bizon/source/auth/authenticators/basic.py,sha256=78xtyw9fR1Nvr3DnKWT2qzyvJnBOT84evzZV53UhKrc,1290
@@ -112,12 +112,12 @@ bizon/source/cursor.py,sha256=ZQGXYvTOoJA77w3hbsocjpjT-QOYeqBki032Fc1FVB8,4239
112
112
  bizon/source/discover.py,sha256=4qPtHN_LFO4tVrq9mXwhoVDmaDP7R8I1zrksi3ksSEo,11156
113
113
  bizon/source/models.py,sha256=swyyS3bE6HtctX8_EBPwIVhChu1DQ7SFcPEIQ0eZAkw,1706
114
114
  bizon/source/session.py,sha256=z4dZlKC_PD8w_utTuAqs1vsfGuRkxHh5WQZhVKamNd0,1979
115
- bizon/source/source.py,sha256=Ft_i4DnO_N_l3zR4aQzbKYCSlxw8PtI81QmoqDUXcGI,3749
115
+ bizon/source/source.py,sha256=j-aWCMd7Su8tVdWo143LU-n14ebNkgXlxnYMhMT6pHI,3703
116
116
  bizon/transform/config.py,sha256=DFfzUCprOy5mv0G5CDBKeZFXRtegIuRQ5fBdnye9czE,242
117
117
  bizon/transform/transform.py,sha256=IjluHZ2DY4uuuA-sn1x_1AqcavltglRbGbK4PJCr7Dk,1417
118
118
  bizon/utils.py,sha256=HXaPiyxpWKoy3XN5vSYOve1ezlFeOYin3aFqTjcabUQ,81
119
- bizon-0.1.1.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
120
- bizon-0.1.1.dist-info/METADATA,sha256=LP037ygGU6LLhwo5DZG5I0UXKJm5a6w6pHNbXiFVEqc,6221
121
- bizon-0.1.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
122
- bizon-0.1.1.dist-info/entry_points.txt,sha256=wtCd-6JswSY8lPWYSvOf7ASX1zfKgmgXtgg5XQS5274,44
123
- bizon-0.1.1.dist-info/RECORD,,
119
+ bizon-0.1.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
120
+ bizon-0.1.2.dist-info/METADATA,sha256=Vr0kr2kAhglxQdDx9Re5LJoDZ8OVxL4RFUWcyLbdicw,6283
121
+ bizon-0.1.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
122
+ bizon-0.1.2.dist-info/entry_points.txt,sha256=wtCd-6JswSY8lPWYSvOf7ASX1zfKgmgXtgg5XQS5274,44
123
+ bizon-0.1.2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
File without changes