User query content structure.
| 65 | |
| 66 | @dataclass |
| 67 | class UserQuery: |
| 68 | """User query content structure.""" |
| 69 | query: str |
| 70 | site: str | None = None |
| 71 | mode: str | None = None |
| 72 | prev_queries: list[str] | None = None |
| 73 | |
| 74 | def to_dict(self) -> dict[str, Any]: |
| 75 | """Convert to dictionary, omitting None values.""" |
| 76 | result = {"query": self.query} |
| 77 | if self.site is not None: |
| 78 | result["site"] = self.site |
| 79 | if self.mode is not None: |
| 80 | result["mode"] = self.mode |
| 81 | if self.prev_queries is not None: |
| 82 | result["prev_queries"] = self.prev_queries |
| 83 | return result |
| 84 | |
| 85 | @classmethod |
| 86 | def from_dict(cls, data: dict[str, Any]) -> 'UserQuery': |
| 87 | """Create UserQuery from dictionary.""" |
| 88 | return cls( |
| 89 | query=data.get("query", ""), |
| 90 | site=data.get("site"), |
| 91 | mode=data.get("mode"), |
| 92 | prev_queries=data.get("prev_queries") |
| 93 | ) |
| 94 | |
| 95 | |
| 96 | @dataclass |
no outgoing calls
no test coverage detected