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.
- {architectonics-0.0.39 → architectonics-0.0.41}/PKG-INFO +1 -1
- architectonics-0.0.41/architectonics/contracts/step_model/step_model_contract.py +10 -0
- architectonics-0.0.41/architectonics/infrastructure/config/__init__.py +0 -0
- architectonics-0.0.41/architectonics/infrastructure/repositories/__init__.py +0 -0
- architectonics-0.0.41/architectonics/rabbit_mq/__init__.py +0 -0
- architectonics-0.0.41/architectonics/rabbit_mq/config/__init__.py +0 -0
- architectonics-0.0.41/architectonics/rabbit_mq/config/rabbit_mq_settings.py +14 -0
- architectonics-0.0.41/architectonics/rabbit_mq/consumer/__init__.py +0 -0
- architectonics-0.0.41/architectonics/rabbit_mq/consumer/base_consumer.py +55 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/pyproject.toml +1 -1
- {architectonics-0.0.39 → architectonics-0.0.41}/setup.py +7 -2
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/consts/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/enums/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/enums/step_type.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/common/utils/utils.py +0 -0
- {architectonics-0.0.39/architectonics/core → architectonics-0.0.41/architectonics/contracts}/__init__.py +0 -0
- {architectonics-0.0.39/architectonics/core/config → architectonics-0.0.41/architectonics/contracts/step_model}/__init__.py +0 -0
- {architectonics-0.0.39/architectonics/core/factory → architectonics-0.0.41/architectonics/core}/__init__.py +0 -0
- {architectonics-0.0.39/architectonics/core/models → architectonics-0.0.41/architectonics/core/config}/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/config/application_settings.py +0 -0
- {architectonics-0.0.39/architectonics/infrastructure → architectonics-0.0.41/architectonics/core/factory}/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/factory/factory.py +0 -0
- {architectonics-0.0.39/architectonics/infrastructure/config → architectonics-0.0.41/architectonics/core/models}/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/models/base_model.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/models/deleted_models.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/result/error_message.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/result/service_result.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/schemas/base_schemas.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_schemas.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_service.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/user_auth_service.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/validation/base_model_validation_errors.py +0 -0
- {architectonics-0.0.39/architectonics/infrastructure/repositories → architectonics-0.0.41/architectonics/infrastructure}/__init__.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/config/database.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/config/database_settings.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/entities/base_entity.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/repositories/base_exceptions.py +0 -0
- {architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/repositories/base_repository.py +0 -0
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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")
|
|
File without changes
|
|
@@ -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
|
|
@@ -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.
|
|
43
|
+
'version': '0.0.41',
|
|
39
44
|
'description': '',
|
|
40
45
|
'long_description': None,
|
|
41
46
|
'author': 'Your Name',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/config/application_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/models/deleted_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/result/service_result.py
RENAMED
|
File without changes
|
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_schemas.py
RENAMED
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/base_service.py
RENAMED
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/core/services/user_auth_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{architectonics-0.0.39 → architectonics-0.0.41}/architectonics/infrastructure/config/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|