fdc-shared-kernel 0.0.41__tar.gz → 0.0.43__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 (63) hide show
  1. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/PKG-INFO +1 -1
  2. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/fdc_shared_kernel.egg-info/PKG-INFO +1 -1
  3. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/pyproject.toml +1 -1
  4. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/messaging/__init__.py +1 -1
  5. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/messaging/nats_databus.py +15 -16
  6. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/README.md +0 -0
  7. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/README_pypi.md +0 -0
  8. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/fdc_shared_kernel.egg-info/SOURCES.txt +0 -0
  9. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/fdc_shared_kernel.egg-info/dependency_links.txt +0 -0
  10. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/fdc_shared_kernel.egg-info/requires.txt +0 -0
  11. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/fdc_shared_kernel.egg-info/top_level.txt +0 -0
  12. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/requirements.txt +0 -0
  13. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/setup.cfg +0 -0
  14. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/__init__.py +0 -0
  15. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/async_task_executor/__init__.py +0 -0
  16. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/async_task_executor/async_task_executor.py +0 -0
  17. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/auth/__init__.py +0 -0
  18. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/auth/jwt_helper.py +0 -0
  19. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/auth/token_handler.py +0 -0
  20. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/config/__init__.py +0 -0
  21. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/database/__init__.py +0 -0
  22. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/enums/__init__.py +0 -0
  23. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/enums/async_task_status.py +0 -0
  24. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/__init__.py +0 -0
  25. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/configuration_exceptions.py +0 -0
  26. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/custom_exceptions.py +0 -0
  27. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/data_validation_exceptions.py +0 -0
  28. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/http_exceptions.py +0 -0
  29. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/infrastructure_exceptions.py +0 -0
  30. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/operational_exceptions.py +0 -0
  31. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/exceptions/security_exceptions.py +0 -0
  32. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/http/__init__.py +0 -0
  33. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/http/httpx_http_client.py +0 -0
  34. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/http/request_http_client.py +0 -0
  35. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/interfaces/__init__.py +0 -0
  36. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/interfaces/databus.py +0 -0
  37. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/interfaces/http.py +0 -0
  38. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/interfaces/keyvault.py +0 -0
  39. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/logger/__init__.py +0 -0
  40. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/messaging/aws_databus.py +0 -0
  41. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/messaging/http_databus.py +0 -0
  42. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/metrics/__init__.py +0 -0
  43. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/metrics/status_tracker.py +0 -0
  44. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/models/__init__.py +0 -0
  45. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/security/__init__.py +0 -0
  46. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/security/key_vault/__init__.py +0 -0
  47. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/security/key_vault/aws_secret_manager.py +0 -0
  48. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/security/key_vault/azure_keyvault.py +0 -0
  49. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/__init__.py +0 -0
  50. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/config/__init__.py +0 -0
  51. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/config/test_config.py +0 -0
  52. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/logger/__init__.py +0 -0
  53. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/logger/test_logger.py +0 -0
  54. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/messaging/__init__.py +0 -0
  55. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/messaging/test_nats_interface.py +0 -0
  56. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/utils/__init__.py +0 -0
  57. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/utils/test_data_validators.py +0 -0
  58. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/utils/test_date_format_utils.py +0 -0
  59. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/tests/utils/test_string_utils.py +0 -0
  60. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/utils/__init__.py +0 -0
  61. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/utils/data_validators_utils.py +0 -0
  62. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/utils/date_format_utils.py +0 -0
  63. {fdc_shared_kernel-0.0.41 → fdc_shared_kernel-0.0.43}/shared_kernel/utils/string_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fdc_shared_kernel
3
- Version: 0.0.41
3
+ Version: 0.0.43
4
4
  Summary: Shared library for microservice
5
5
  Author-email: Shikhil S <shikhil.s@dbizsolution.com>, Ahammed Akdham N <ahammedakdham.n@dbizsolution.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fdc_shared_kernel
3
- Version: 0.0.41
3
+ Version: 0.0.43
4
4
  Summary: Shared library for microservice
5
5
  Author-email: Shikhil S <shikhil.s@dbizsolution.com>, Ahammed Akdham N <ahammedakdham.n@dbizsolution.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "fdc_shared_kernel"
7
- version = "0.0.41"
7
+ version = "0.0.43"
8
8
  requires-python = ">=3.7"
9
9
  readme = "README_pypi.md"
10
10
  description = "Shared library for microservice"
@@ -14,7 +14,7 @@ class DataBusFactory:
14
14
 
15
15
  @staticmethod
16
16
  def create_data_bus(bus_type: str, config: dict) -> DataBus:
17
- data_bus_class = DataBus.data_bus_classes.get(bus_type)
17
+ data_bus_class = DataBusFactory.data_bus_classes.get(bus_type)
18
18
  if data_bus_class is None:
19
19
  raise ValueError(f"Unknown data bus type: {bus_type}")
20
20
  return data_bus_class(config)
@@ -100,12 +100,12 @@ class NATSDataBus(DataBus):
100
100
  )
101
101
  await self.nats_jet_stream_context.add_stream(dlq_config)
102
102
  logger.info(
103
- f"DLQ Stream '{app_config.get('NATS_DLQ_STREAM_NAME')}' created"
103
+ f"DLQ Stream [{app_config.get('NATS_DLQ_STREAM_NAME')}] created"
104
104
  )
105
105
  except JetstreamBadRequestError as e:
106
106
  if e.err_code == 10058: # Stream already exists
107
107
  logger.info(
108
- f"DLQ Stream '{app_config.get('NATS_DLQ_STREAM_NAME')}' already exists"
108
+ f"DLQ Stream [{app_config.get('NATS_DLQ_STREAM_NAME')}] already exists"
109
109
  )
110
110
  else:
111
111
  raise
@@ -132,11 +132,11 @@ class NATSDataBus(DataBus):
132
132
  max_age=600,
133
133
  )
134
134
  await self.nats_jet_stream_context.add_stream(stream_config)
135
- logger.info(f"Stream {app_config.get("NATS_STREAM_NAME")} created")
135
+ logger.info(f"Stream [{app_config.get('NATS_STREAM_NAME')}] created")
136
136
  except JetstreamBadRequestError as e:
137
137
  # case where the stream already exists (error code 10058)
138
138
  if e.err_code == 10058:
139
- logger.info(f"Stream {app_config.get("NATS_STREAM_NAME")} already exists with other topics")
139
+ logger.info(f"Stream [{app_config.get('NATS_STREAM_NAME')}] already exists with other topics")
140
140
  # retrieve the existing stream's information
141
141
  stream_info = await self.nats_jet_stream_context.stream_info(
142
142
  app_config.get("NATS_STREAM_NAME")
@@ -154,7 +154,7 @@ class NATSDataBus(DataBus):
154
154
  )
155
155
  # apply the updated configuration to the existing stream
156
156
  await self.nats_jet_stream_context.update_stream(stream_config)
157
- logger.info(f"Added topic: {topic[0]} to the stream {app_config.get("NATS_STREAM_NAME")}")
157
+ logger.info(f"Added topic: [{topic[0]}] to the stream [{app_config.get('NATS_STREAM_NAME')}]")
158
158
  except Exception as e:
159
159
  logger.error(f"Error creating/updating stream: {e}")
160
160
  raise e
@@ -239,7 +239,7 @@ class NATSDataBus(DataBus):
239
239
  event_name, json.dumps(event_payload).encode("utf-8")
240
240
  )
241
241
  logger.info(
242
- f"Published event '{event_payload.get('event_name')}' to subject '{event_name}', ack: {ack}"
242
+ f"""Published event [{event_payload.get('event_name')}] to subject [{event_name}], ack: {ack}"""
243
243
  )
244
244
  return ack
245
245
 
@@ -286,7 +286,7 @@ class NATSDataBus(DataBus):
286
286
  pull_subscription_object: JetStreamContext.PullSubscription = (
287
287
  await self.nats_jet_stream_context.pull_subscribe(subject=event_name, durable=consumer_name)
288
288
  )
289
- logger.info(f"Subscribed to async event on subject '{event_name}'")
289
+ logger.info(f"""Subscribed to async event on subject [{event_name}]""")
290
290
  while True:
291
291
  try:
292
292
  message_object: Msg = await self._fetch_messages(
@@ -297,19 +297,18 @@ class NATSDataBus(DataBus):
297
297
  has_job_failed = False
298
298
  try:
299
299
  callback(event_data)
300
- # acknowledge the message after processing and finishing the job
301
- await message_object.ack()
302
- logger.info(f"Acknowledged job: {event_data}")
303
300
  except Exception as e:
304
301
  logger.error(
305
- f"Invoking callback during execution of {event_name} failed due to {str(e)}"
302
+ f"Invoking callback during execution of [{event_name}] failed due to {str(e)}"
306
303
  )
307
304
  has_job_failed = True
308
305
 
309
- if (
310
- has_job_failed
311
- and message_object.metadata.num_delivered == self.max_delivery_count
312
- ):
306
+ if not has_job_failed:
307
+ # acknowledge the message after processing and finishing the job successfully
308
+ await message_object.ack()
309
+ logger.info(f"Acknowledged job: {event_data}")
310
+ elif message_object.metadata.num_delivered == self.max_delivery_count:
311
+ # move to DLQ if max retries have been reached
313
312
  logger.warning("Moving event to the dead letter topic after max retries")
314
313
  await self._create_dlq_stream()
315
314
  await self._move_to_dlq(event_name, event_data)
@@ -331,7 +330,7 @@ class NATSDataBus(DataBus):
331
330
  callback (Callable[[Any], None]): A callback function to handle received messages.
332
331
  """
333
332
  await self.nats_client.subscribe(event_name, cb=callback)
334
- logger.info(f"Subscribed to sync event on subject '{event_name}'")
333
+ logger.info(f"Subscribed to sync event on subject [{event_name}]")
335
334
 
336
335
  def delete_message(self, receipt_handle: str):
337
336
  pass