fdc-shared-kernel 0.0.73__tar.gz → 0.0.74__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 (79) hide show
  1. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/PKG-INFO +1 -1
  2. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/fdc_shared_kernel.egg-info/PKG-INFO +1 -1
  3. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/pyproject.toml +1 -1
  4. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/event_executor/event_executor.py +43 -2
  5. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/README.md +0 -0
  6. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/README_pypi.md +0 -0
  7. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/fdc_shared_kernel.egg-info/SOURCES.txt +0 -0
  8. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/fdc_shared_kernel.egg-info/dependency_links.txt +0 -0
  9. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/fdc_shared_kernel.egg-info/requires.txt +0 -0
  10. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/fdc_shared_kernel.egg-info/top_level.txt +0 -0
  11. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/requirements.txt +0 -0
  12. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/setup.cfg +0 -0
  13. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/__init__.py +0 -0
  14. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/async_task_executor/__init__.py +0 -0
  15. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/async_task_executor/async_task_executor.py +0 -0
  16. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/auth/__init__.py +0 -0
  17. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/auth/jwt_helper.py +0 -0
  18. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/auth/token_handler.py +0 -0
  19. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/config/__init__.py +0 -0
  20. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/database/__init__.py +0 -0
  21. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/enums/__init__.py +0 -0
  22. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/enums/async_task_executor.py +0 -0
  23. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/enums/status_tracker.py +0 -0
  24. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/event_executor/__init__.py +0 -0
  25. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/event_executor/utils.py +0 -0
  26. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/__init__.py +0 -0
  27. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/configuration_exceptions.py +0 -0
  28. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/custom_exceptions.py +0 -0
  29. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/data_validation_exceptions.py +0 -0
  30. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/http_exceptions.py +0 -0
  31. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/infrastructure_exceptions.py +0 -0
  32. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/operational_exceptions.py +0 -0
  33. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/exceptions/security_exceptions.py +0 -0
  34. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/http/__init__.py +0 -0
  35. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/http/httpx_http_client.py +0 -0
  36. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/http/request_http_client.py +0 -0
  37. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/interfaces/__init__.py +0 -0
  38. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/interfaces/databus.py +0 -0
  39. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/interfaces/http.py +0 -0
  40. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/interfaces/keyvault.py +0 -0
  41. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/logger/__init__.py +0 -0
  42. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/__init__.py +0 -0
  43. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/aws_databus.py +0 -0
  44. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/http_databus.py +0 -0
  45. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/nats_databus.py +0 -0
  46. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/nats_publisher.py +0 -0
  47. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/nats_test.py +0 -0
  48. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/utils/aws_utility.py +0 -0
  49. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/messaging/utils/event_messages.py +0 -0
  50. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/metrics/__init__.py +0 -0
  51. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/metrics/status_tracker.py +0 -0
  52. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/models/__init__.py +0 -0
  53. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/registries/__init__.py +0 -0
  54. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/registries/service_event_registry.py +0 -0
  55. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/security/__init__.py +0 -0
  56. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/security/key_vault/__init__.py +0 -0
  57. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/security/key_vault/aws_secret_manager.py +0 -0
  58. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/security/key_vault/azure_keyvault.py +0 -0
  59. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/status_tracker/__init__.py +0 -0
  60. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/status_tracker/status_tracker.py +0 -0
  61. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/__init__.py +0 -0
  62. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/config/__init__.py +0 -0
  63. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/config/test_config.py +0 -0
  64. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/logger/__init__.py +0 -0
  65. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/logger/test_logger.py +0 -0
  66. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/messaging/__init__.py +0 -0
  67. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/messaging/test_aws_databus.py +0 -0
  68. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/messaging/test_event_executor.py +0 -0
  69. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/messaging/test_nats_interface.py +0 -0
  70. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/utils/__init__.py +0 -0
  71. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/utils/test_data_validators.py +0 -0
  72. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/utils/test_date_format_utils.py +0 -0
  73. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/tests/utils/test_string_utils.py +0 -0
  74. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/__init__.py +0 -0
  75. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/data_validators_utils.py +0 -0
  76. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/date_format_utils.py +0 -0
  77. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/string_utils.py +0 -0
  78. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/template_renderer.py +0 -0
  79. {fdc_shared_kernel-0.0.73 → fdc_shared_kernel-0.0.74}/shared_kernel/utils/thread_local_util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fdc_shared_kernel
3
- Version: 0.0.73
3
+ Version: 0.0.74
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.73
3
+ Version: 0.0.74
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.73"
7
+ version = "0.0.74"
8
8
  requires-python = ">=3.7"
9
9
  readme = "README_pypi.md"
10
10
  description = "Shared library for microservice"
@@ -1,8 +1,10 @@
1
1
  import json
2
2
  import threading
3
- from concurrent.futures import ThreadPoolExecutor, Future
3
+ from concurrent.futures import Future
4
4
  from typing import Any, Callable, Dict, Optional
5
5
  from threading import Semaphore
6
+ import os
7
+ from typing import Tuple
6
8
 
7
9
  from shared_kernel.config import Config
8
10
  from shared_kernel.event_executor.utils import EventConcurrencyManager, EventStats
@@ -308,6 +310,41 @@ class EventExecutor:
308
310
  logger.error(f"Error in event listener for {event_name}: {str(e)}")
309
311
  logger.info(f"Event listener for {event_name} has been stopped.")
310
312
 
313
+ # TODO: enable caching here
314
+ def _load_event_schema_and_description(self, event_name: str) -> Tuple[dict, str]:
315
+ """
316
+ Load event schema and description.
317
+
318
+ Args:
319
+ event_name: Name of the event
320
+
321
+ Returns:
322
+ A tuple containing:
323
+ - schema: Parsed JSON schema for the event.
324
+ - description: Text description for the event.
325
+ """
326
+ schema_path = os.path.join('src', 'infrastructure', 'event_details', f"{event_name.lower()}", 'schema.json')
327
+ description_path = os.path.join('src', 'infrastructure', 'event_details', f"{event_name.lower()}", 'description.txt')
328
+
329
+ if not os.path.exists(schema_path):
330
+ logger.error(f"Schema file missing for event {event_name}: {schema_path}")
331
+ raise Exception(f"Schema file missing for event {event_name}: {schema_path}")
332
+ if not os.path.exists(description_path):
333
+ logger.error(f"Description file missing for event {event_name}: {description_path}")
334
+ raise Exception(f"Description file missing for event {event_name}: {description_path}")
335
+
336
+ try:
337
+ with open(schema_path, 'r') as schema_file:
338
+ schema = json.load(schema_file)
339
+ with open(description_path, 'r') as description_file:
340
+ description = description_file.read().strip()
341
+
342
+ return schema, description
343
+
344
+ except json.JSONDecodeError:
345
+ logger.error(f"Invalid JSON schema for event {event_name}")
346
+ raise Exception(f"Invalid JSON schema for event {event_name}")
347
+
311
348
  def get_all_stats(self) -> dict:
312
349
  """
313
350
  Get comprehensive statistics for all registered events.
@@ -322,6 +359,8 @@ class EventExecutor:
322
359
 
323
360
  with self._stats_lock:
324
361
  event_stats = self._stats.get(event_name, EventStats())
362
+
363
+ event_schema, event_description = self._load_event_schema_and_description(event_name)
325
364
 
326
365
  all_stats[event_name] = {
327
366
  "workers": {
@@ -333,7 +372,9 @@ class EventExecutor:
333
372
  "successful": event_stats.successful_events,
334
373
  "failed": event_stats.failed_events,
335
374
  "total": event_stats.total_events
336
- }
375
+ },
376
+ "schema": event_schema,
377
+ "description": event_description,
337
378
  }
338
379
 
339
380
  return all_stats