Coverage for meta_tags_parser/structs.py: 100%
42 statements
« prev ^ index » next coverage.py v7.10.3, created at 2025-08-21 00:51 +0000
« prev ^ index » next coverage.py v7.10.3, created at 2025-08-21 00:51 +0000
1import dataclasses
2import enum
3import typing
6@typing.final
7@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)
8class OneMetaTag:
9 """Helper public tag wrapper."""
11 name: str
12 value: str
15@typing.final
16@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)
17class ValuesGroup:
18 """Helper inner wrapper."""
20 original: str
21 normalized: str
24@typing.final
25@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)
26class TagsGroup:
27 """Return struct."""
29 title: str = ""
30 basic: list[OneMetaTag] = dataclasses.field(default_factory=list)
31 open_graph: list[OneMetaTag] = dataclasses.field(default_factory=list)
32 twitter: list[OneMetaTag] = dataclasses.field(default_factory=list)
33 other: list[OneMetaTag] = dataclasses.field(default_factory=list)
36@typing.final
37@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)
38class SocialMediaSnippet:
39 """Social media snippet group."""
41 title: str = ""
42 description: str = ""
43 image: str = ""
44 image_width: int = 0
45 image_height: int = 0
46 url: str = ""
49@typing.final
50@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)
51class SnippetGroup:
52 """Groupping for social media."""
54 open_graph: SocialMediaSnippet = dataclasses.field(default_factory=SocialMediaSnippet)
55 twitter: SocialMediaSnippet = dataclasses.field(default_factory=SocialMediaSnippet)
58@typing.final
59class WhatToParse(enum.IntEnum):
60 """Enum for parsing configuration."""
62 TITLE = 0
63 BASIC = 1
64 OPEN_GRAPH = 2
65 TWITTER = 3
66 OTHER = 4