-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path__init__.py
More file actions
25 lines (15 loc) · 740 Bytes
/
Copy path__init__.py
File metadata and controls
25 lines (15 loc) · 740 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from rss_parser.models.utils import camel_case
class XMLBaseModel(BaseModel):
model_config = ConfigDict(alias_generator=camel_case)
def json_plain(self, **kwargs) -> str:
"""
Serialize the model while flattening Tag instances into their content.
"""
from rss_parser.models.types.tag import Tag # noqa: PLC0415
return self.model_dump_json(fallback=Tag.flatten_tag_encoder, **kwargs)
def dict_plain(self, **kwargs):
from rss_parser.models.types.tag import Tag # noqa: PLC0415
return self.model_dump(mode="json", fallback=Tag.flatten_tag_encoder, **kwargs)
__all__ = ("XMLBaseModel",)