architectonics 0.0.39__tar.gz → 0.0.41__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 (40) hide show
  1. {architectonics-0.0.39 → architectonics-0.0.41}/PKG-INFO +1 -1
  2. architectonics-0.0.41/architectonics/contracts/step_model/step_model_contract.py +10 -0
  3. architectonics-0.0.41/architectonics/infrastructure/config/__init__.py +0 -0
  4. architectonics-0.0.41/architectonics/infrastructure/repositories/__init__.py +0 -0
  5. architectonics-0.0.41/architectonics/rabbit_mq/__init__.py +0 -0
  6. architectonics-0.0.41/architectonics/rabbit_mq/config/__init__.py +0 -0
  7. architectonics-0.0.41/architectonics/rabbit_mq/config/rabbit_mq_settings.py +14 -0
  8. architectonics-0.0.41/architectonics/rabbit_mq/consumer/__init__.py +0 -0
  9. architectonics-0.0.41/architectonics/rabbit_mq/consumer/base_consumer.py +55 -0
  10. {architectonics-0.0.39 → architectonics-0.0.41}/pyproject.toml +1 -1
  11. {architectonics-0.0.39 → architectonics-0.0.41}/setup.py +7 -2
  12. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/__init__.py +0 -0
  13. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/__init__.py +0 -0
  14. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/consts/__init__.py +0 -0
  15. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/enums/__init__.py +0 -0
  16. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/enums/step_type.py +0 -0
  17. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/utils/utils.py +0 -0
  18. {architectonics-0.0.39/architectonics/core → architectonics-0.0.41/architectonics/contracts}/__init__.py +0 -0
  19. {architectonics-0.0.39/architectonics/core/config → architectonics-0.0.41/architectonics/contracts/step_model}/__init__.py +0 -0
  20. {architectonics-0.0.39/architectonics/core/factory → architectonics-0.0.41/architectonics/core}/__init__.py +0 -0
  21. {architectonics-0.0.39/architectonics/core/models → architectonics-0.0.41/architectonics/core/config}/__init__.py +0 -0
  22. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/config/application_settings.py +0 -0
  23. {architectonics-0.0.39/architectonics/infrastructure → architectonics-0.0.41/architectonics/core/factory}/__init__.py +0 -0
  24. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/factory/factory.py +0 -0
  25. {architectonics-0.0.39/architectonics/infrastructure/config → architectonics-0.0.41/architectonics/core/models}/__init__.py +0 -0
  26. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/models/base_model.py +0 -0
  27. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/models/deleted_models.py +0 -0
  28. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/result/error_message.py +0 -0
  29. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/result/service_result.py +0 -0
  30. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/schemas/base_schemas.py +0 -0
  31. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_schemas.py +0 -0
  32. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_service.py +0 -0
  33. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/user_auth_service.py +0 -0
  34. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/validation/base_model_validation_errors.py +0 -0
  35. {architectonics-0.0.39/architectonics/infrastructure/repositories → architectonics-0.0.41/architectonics/infrastructure}/__init__.py +0 -0
  36. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/config/database.py +0 -0
  37. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/config/database_settings.py +0 -0
  38. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/entities/base_entity.py +0 -0
  39. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/repositories/base_exceptions.py +0 -0
  40. {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/repositories/base_repository.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: architectonics
3
- Version: 0.0.39
3
+ Version: 0.0.41
4
4
  Summary:
5
5
  Author: Your Name
6
6
  Author-email: you@example.com
@@ -0,0 +1,10 @@
1
+ from architectonics.common.enums.step_type import StepType
2
+ from pydantic import BaseModel
3
+
4
+
5
+ class StepModelContract(BaseModel):
6
+ id: str
7
+ title: str | None
8
+ icon: str | None
9
+ is_publish: bool
10
+ step_type: StepType
@@ -0,0 +1,14 @@
1
+ import os
2
+
3
+ from dotenv import load_dotenv
4
+ from pydantic import BaseModel
5
+
6
+ load_dotenv()
7
+
8
+
9
+ class BaseRabbitMQSettings(BaseModel):
10
+ RABBITMQ_USER: str = os.getenv("RABBITMQ_USER")
11
+ RABBITMQ_PASSWORD: str = os.getenv("RABBITMQ_PASSWORD")
12
+ RABBITMQ_HOST: str = os.getenv("RABBITMQ_HOST")
13
+ RABBITMQ_PORT: int = int(os.getenv("RABBITMQ_PORT"))
14
+ RABBITMQ_VHOST: str = os.getenv("RABBITMQ_VHOST")
@@ -0,0 +1,55 @@
1
+ from aio_pika import ExchangeType, connect_robust
2
+
3
+ from architectonics.rabbit_mq.config.rabbit_mq_settings import BaseRabbitMQSettings
4
+
5
+
6
+ class BaseRabbitMQConsumer:
7
+ _settings = BaseRabbitMQSettings()
8
+
9
+ _exchange_name: str = NotImplemented
10
+ _exchange_type: ExchangeType = NotImplemented
11
+ _queue_name: str = NotImplemented
12
+ _routing_key: str = NotImplemented
13
+
14
+ _prefetch_count: int = 1
15
+
16
+ async def connect(self):
17
+ self.connection = await connect_robust(
18
+ host=self._settings.RABBITMQ_HOST,
19
+ port=self._settings.RABBITMQ_PORT,
20
+ login=self._settings.RABBITMQ_USER,
21
+ password=self._settings.RABBITMQ_PASSWORD,
22
+ virtualhost=self._settings.RABBITMQ_VHOST,
23
+ )
24
+
25
+ self.channel = await self.connection.channel()
26
+ await self.channel.set_qos(
27
+ prefetch_count=self._prefetch_count,
28
+ )
29
+
30
+ self.exchange = await self.channel.declare_exchange(
31
+ name=self._exchange_name,
32
+ type=self._exchange_type,
33
+ durable=True,
34
+ )
35
+
36
+ self.queue = await self.channel.declare_queue(
37
+ name=self._queue_name,
38
+ durable=True,
39
+ )
40
+
41
+ await self.queue.bind(
42
+ exchange=self.exchange,
43
+ routing_key=self._routing_key,
44
+ )
45
+
46
+ async def consume(self):
47
+ async with self.connection:
48
+ async with self.queue.iterator() as queue_iter:
49
+ async for message in queue_iter:
50
+ async with message.process():
51
+ await self.process_message(message.body)
52
+
53
+ async def process_message(self, message: bytes) -> None:
54
+
55
+ return NotImplemented
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "architectonics"
3
- version = "0.0.39"
3
+ version = "0.0.41"
4
4
  description = ""
5
5
  authors = ["Your Name <you@example.com>"]
6
6
 
@@ -7,6 +7,8 @@ packages = \
7
7
  'architectonics.common.consts',
8
8
  'architectonics.common.enums',
9
9
  'architectonics.common.utils',
10
+ 'architectonics.contracts',
11
+ 'architectonics.contracts.step_model',
10
12
  'architectonics.core',
11
13
  'architectonics.core.config',
12
14
  'architectonics.core.factory',
@@ -18,7 +20,10 @@ packages = \
18
20
  'architectonics.infrastructure',
19
21
  'architectonics.infrastructure.config',
20
22
  'architectonics.infrastructure.entities',
21
- 'architectonics.infrastructure.repositories']
23
+ 'architectonics.infrastructure.repositories',
24
+ 'architectonics.rabbit_mq',
25
+ 'architectonics.rabbit_mq.config',
26
+ 'architectonics.rabbit_mq.consumer']
22
27
 
23
28
  package_data = \
24
29
  {'': ['*']}
@@ -35,7 +40,7 @@ install_requires = \
35
40
 
36
41
  setup_kwargs = {
37
42
  'name': 'architectonics',
38
- 'version': '0.0.39',
43
+ 'version': '0.0.41',
39
44
  'description': '',
40
45
  'long_description': None,
41
46
  'author': 'Your Name',