talentro-commons 0.20.3__tar.gz → 0.20.5__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 (46) hide show
  1. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/PKG-INFO +1 -1
  2. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/pyproject.toml +1 -1
  3. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/messaging/topology.py +7 -7
  4. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/rabbitmq.py +13 -6
  5. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/README.md +0 -0
  6. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/__init__.py +0 -0
  7. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/acquisition/__init__.py +0 -0
  8. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/acquisition/dataclasses.py +0 -0
  9. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/acquisition/models.py +0 -0
  10. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/billing/__init__.py +0 -0
  11. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/billing/dataclasses.py +0 -0
  12. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/billing/models.py +0 -0
  13. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/candidates/__init__.py +0 -0
  14. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/candidates/dataclasses.py +0 -0
  15. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/candidates/models.py +0 -0
  16. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/constants.py +0 -0
  17. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/event.py +0 -0
  18. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/exceptions.py +0 -0
  19. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/general/__init__.py +0 -0
  20. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/general/dataclasses.py +0 -0
  21. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/general/models.py +0 -0
  22. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/iam/__init__.py +0 -0
  23. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/iam/dataclasses.py +0 -0
  24. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/iam/models.py +0 -0
  25. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/iam/types.py +0 -0
  26. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/integrations/__init__.py +0 -0
  27. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/integrations/dataclasses.py +0 -0
  28. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/integrations/models.py +0 -0
  29. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/messaging/__init__.py +0 -0
  30. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/__init__.py +0 -0
  31. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/billing.py +0 -0
  32. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/caching.py +0 -0
  33. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/clients.py +0 -0
  34. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/db.py +0 -0
  35. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/services/google_storage.py +0 -0
  36. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/__init__.py +0 -0
  37. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/attributes.py +0 -0
  38. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/enum.py +0 -0
  39. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/files.py +0 -0
  40. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/singleton.py +0 -0
  41. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/string.py +0 -0
  42. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/util/vacancy.py +0 -0
  43. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/vacancies/__init__.py +0 -0
  44. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/vacancies/dataclasses.py +0 -0
  45. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/vacancies/models.py +0 -0
  46. {talentro_commons-0.20.3 → talentro_commons-0.20.5}/src/talentro/vacancies/taxanomy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: talentro-commons
3
- Version: 0.20.3
3
+ Version: 0.20.5
4
4
  Summary: This package contains all globally used code, services, models and data structures for Talentro
5
5
  License: Proprietary
6
6
  Author: Emiel van Essen
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "talentro-commons"
3
- version = "0.20.3"
3
+ version = "0.20.5"
4
4
  description = "This package contains all globally used code, services, models and data structures for Talentro"
5
5
  authors = ["Emiel van Essen <emiel@marksmen.nl>"]
6
6
  license = "Proprietary"
@@ -60,18 +60,18 @@ APPLICATIONS_TOPOLOGY = TopologyConfig(
60
60
  dlx_name="x.applications.dlx",
61
61
  retry_config={
62
62
  # Integrations
63
- "q.applications.raw.integrations": {"enabled": True, "ttl_ms": FIVE_MINUTES},
64
- "q.applications.send.integrations": {"enabled": True, "ttl_ms": FIVE_MINUTES},
63
+ "q.applications.raw.integrations": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3},
64
+ "q.applications.send.integrations": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3},
65
65
 
66
66
  # Acquisitions
67
- "q.applications.saved.acquisitions": {"enabled": True, "ttl_ms": FIVE_MINUTES},
67
+ "q.applications.saved.acquisitions": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3},
68
68
 
69
69
  # Vacancies
70
- "q.applications.saved.vacancies": {"enabled": True, "ttl_ms": FIVE_MINUTES},
70
+ "q.applications.saved.vacancies": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3},
71
71
 
72
72
  # Candidates
73
- "q.applications.normalized.candidates": {"enabled": True, "ttl_ms": FIVE_MINUTES},
74
- "q.applications.external.upserted.candidates": {"enabled": True, "ttl_ms": FIVE_MINUTES}
73
+ "q.applications.normalized.candidates": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3},
74
+ "q.applications.external.upserted.candidates": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3}
75
75
  }
76
76
  )
77
77
 
@@ -85,7 +85,7 @@ FEEDS_TOPOLOGY = TopologyConfig(
85
85
  ],
86
86
  dlx_name="x.feeds.dlx",
87
87
  retry_config={
88
- "q.feeds.sync.acquisitions": {"enabled": True, "ttl_ms": FIVE_MINUTES}
88
+ "q.feeds.sync.acquisitions": {"enabled": True, "ttl_ms": FIVE_MINUTES, "max_retries": 3}
89
89
  }
90
90
  )
91
91
 
@@ -210,7 +210,7 @@ class QueueContext(metaclass=SingletonMeta):
210
210
  def __init__(self):
211
211
  self._rabbit_mq = RabbitMQ()
212
212
  self._message_callbacks = []
213
- self._topology_config: TopologyConfig | None = None
213
+ self._topology_configs: dict[str, TopologyConfig] = {} # Store all topologies
214
214
 
215
215
  async def connect(self):
216
216
  try:
@@ -227,7 +227,8 @@ class QueueContext(metaclass=SingletonMeta):
227
227
  await self._setup_topology_with_config(topology)
228
228
 
229
229
  async def _setup_topology_with_config(self, topology_config: TopologyConfig):
230
- self._topology_config = topology_config
230
+ # Sla topology op met exchange_name als key
231
+ self._topology_configs[topology_config.exchange_name] = topology_config
231
232
 
232
233
  await self._rabbit_mq.setup_topology(
233
234
  topology_config.exchange_name,
@@ -237,15 +238,21 @@ class QueueContext(metaclass=SingletonMeta):
237
238
  retry_config=topology_config.retry_config
238
239
  )
239
240
 
240
- async def start_consuming(self, queue: str):
241
- max_retries = self._topology_config.get_max_retries(queue) if self._topology_config else 3
241
+
242
+ async def start_consuming(self, queue: str, exchange_name: str):
243
+ topology_config = self._topology_configs.get(exchange_name)
244
+
245
+ if not topology_config:
246
+ raise ValueError(f"Topology not found for exchange: {exchange_name}")
247
+
248
+ max_retries = topology_config.get_max_retries(queue)
242
249
 
243
250
  asyncio.create_task(
244
251
  self._rabbit_mq.consume(
245
- self._topology_config.exchange_name,
252
+ exchange_name,
246
253
  queue,
247
254
  self._on_new_message,
248
- dlx_name=self._topology_config.dlx_name,
255
+ dlx_name=topology_config.dlx_name,
249
256
  max_retries=max_retries
250
257
  )
251
258
  )