Skip to content

Commit a32f3d7

Browse files
committed
* Fix Pydantic alias issue, add allow_population_by_field_name = True enabling the preservation of 'name' as an attribute
1 parent c89b6ef commit a32f3d7

File tree

2 files changed

+31
-29
lines changed

2 files changed

+31
-29
lines changed

src/aleph/web/controllers/messages.py

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
11
import logging
2-
from typing import List, Optional, Any, Dict, Iterable
2+
from typing import Any, Dict, Iterable, List, Optional
33

44
import aio_pika.abc
55
import aiohttp.web_ws
6-
from aiohttp import web, WSMsgType
7-
from aleph_message.models import MessageType, ItemHash, Chain
8-
from pydantic import BaseModel, Field, validator, ValidationError, root_validator
9-
106
import aleph.toolkit.json as aleph_json
7+
from aiohttp import WSMsgType, web
118
from aleph.db.accessors.messages import (
12-
get_matching_messages,
139
count_matching_messages,
14-
get_message_status,
15-
get_message_by_item_hash,
1610
get_forgotten_message,
11+
get_matching_messages,
12+
get_message_by_item_hash,
13+
get_message_status,
1714
get_rejected_message,
1815
)
1916
from aleph.db.accessors.pending_messages import get_pending_messages
20-
from aleph.db.models import MessageStatusDb, MessageDb
17+
from aleph.db.models import MessageDb, MessageStatusDb
2118
from aleph.schemas.api.messages import (
22-
format_message,
19+
AlephMessage,
20+
ForgottenMessage,
21+
ForgottenMessageStatus,
2322
MessageWithStatus,
23+
PendingMessage,
2424
PendingMessageStatus,
2525
ProcessedMessageStatus,
26-
ForgottenMessageStatus,
27-
ForgottenMessage,
2826
RejectedMessageStatus,
29-
PendingMessage,
30-
AlephMessage,
27+
format_message,
3128
format_message_dict,
3229
)
3330
from aleph.toolkit.shield import shielded
34-
from aleph.types.db_session import DbSessionFactory, DbSession
31+
from aleph.types.db_session import DbSession, DbSessionFactory
3532
from aleph.types.message_status import MessageStatus
36-
from aleph.types.sort_order import SortOrder, SortBy
33+
from aleph.types.sort_order import SortBy, SortOrder
3734
from aleph.web.controllers.app_state_getters import (
38-
get_session_factory_from_request,
3935
get_config_from_request,
4036
get_mq_ws_channel_from_request,
37+
get_session_factory_from_request,
4138
)
4239
from aleph.web.controllers.utils import (
4340
DEFAULT_MESSAGES_PER_PAGE,
4441
DEFAULT_PAGE,
45-
)
46-
from aleph.web.controllers.utils import (
4742
LIST_FIELD_SEPARATOR,
4843
mq_make_aleph_message_topic_queue,
4944
)
45+
from aleph_message.models import Chain, ItemHash, MessageType
46+
from pydantic import BaseModel, Field, ValidationError, root_validator, validator
5047

5148
LOGGER = logging.getLogger(__name__)
5249

@@ -140,6 +137,9 @@ def split_str(cls, v):
140137
return v.split(LIST_FIELD_SEPARATOR)
141138
return v
142139

140+
class Config:
141+
allow_population_by_field_name = True
142+
143143

144144
class MessageQueryParams(BaseMessageQueryParams):
145145
pagination: int = Field(

src/aleph/web/controllers/posts.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
from typing import Optional, List, Any, Dict
1+
from typing import Any, Dict, List, Optional
22

33
from aiohttp import web
4-
from aleph_message.models import ItemHash
5-
from pydantic import BaseModel, Field, root_validator, validator, ValidationError
6-
from sqlalchemy import select
7-
84
from aleph.db.accessors.posts import (
9-
get_matching_posts,
105
MergedPost,
6+
MergedPostV0,
117
count_matching_posts,
8+
get_matching_posts,
129
get_matching_posts_legacy,
13-
MergedPostV0,
1410
)
15-
from aleph.db.models import message_confirmations, ChainTxDb
16-
from aleph.types.db_session import DbSessionFactory, DbSession
17-
from aleph.types.sort_order import SortOrder, SortBy
11+
from aleph.db.models import ChainTxDb, message_confirmations
12+
from aleph.types.db_session import DbSession, DbSessionFactory
13+
from aleph.types.sort_order import SortBy, SortOrder
1814
from aleph.web.controllers.utils import (
1915
DEFAULT_MESSAGES_PER_PAGE,
2016
DEFAULT_PAGE,
@@ -23,6 +19,9 @@
2319
cond_output,
2420
get_path_page,
2521
)
22+
from aleph_message.models import ItemHash
23+
from pydantic import BaseModel, Field, ValidationError, root_validator, validator
24+
from sqlalchemy import select
2625

2726

2827
class PostQueryParams(BaseModel):
@@ -104,6 +103,9 @@ def split_str(cls, v):
104103
return v.split(LIST_FIELD_SEPARATOR)
105104
return v
106105

106+
class Config:
107+
allow_population_by_field_name = True
108+
107109

108110
def merged_post_to_dict(merged_post: MergedPost) -> Dict[str, Any]:
109111
return {

0 commit comments

Comments
 (0)