11from collections .abc import Iterator
22
3- from pydantic import ConfigDict , Field , RootModel
3+ from pydantic import ConfigDict , Field
44from typing_extensions import override
55
66from horde_sdk .ai_horde_api .apimodels .base import BaseAIHordeRequest
99from horde_sdk .consts import HTTPMethod
1010from horde_sdk .generic_api .apimodels import (
1111 ContainsMessageResponseMixin ,
12- HordeAPIObject ,
13- HordeResponse ,
12+ HordeAPIObjectBaseModel ,
1413 HordeResponseBaseModel ,
14+ HordeResponseRootModel ,
1515)
1616from horde_sdk .generic_api .decoration import Unhashable
1717
@@ -148,7 +148,7 @@ def get_default_success_response_type(cls) -> type[HordePerformanceResponse]:
148148 return HordePerformanceResponse
149149
150150
151- class Newspiece (HordeAPIObject ):
151+ class Newspiece (HordeAPIObjectBaseModel ):
152152 date_published : str | None = Field (
153153 default = None ,
154154 )
@@ -159,6 +159,18 @@ class Newspiece(HordeAPIObject):
159159 default = None ,
160160 )
161161 """The actual piece of news."""
162+ tags : list [str ] | None = Field (
163+ default = None ,
164+ )
165+ """The tags associated with this newspiece."""
166+ title : str | None = Field (
167+ default = None ,
168+ )
169+ """The title of this newspiece."""
170+ more_info_urls : list [str ] | None = Field (
171+ default = None ,
172+ )
173+ """The URLs for more information about this newspiece."""
162174
163175 @override
164176 @classmethod
@@ -167,7 +179,7 @@ def get_api_model_name(cls) -> str | None:
167179
168180
169181@Unhashable
170- class NewsResponse (HordeResponse , RootModel [list [Newspiece ]]):
182+ class NewsResponse (HordeResponseRootModel [list [Newspiece ]]):
171183 root : list [Newspiece ]
172184 """The underlying list of newspieces."""
173185
@@ -210,7 +222,7 @@ def get_default_success_response_type(cls) -> type[NewsResponse]:
210222 return NewsResponse
211223
212224
213- class ActiveModelLite (HordeAPIObject ):
225+ class ActiveModelLite (HordeAPIObjectBaseModel ):
214226 count : int | None = Field (
215227 default = None ,
216228 )
@@ -256,7 +268,7 @@ def get_api_model_name(cls) -> str | None:
256268
257269
258270@Unhashable
259- class HordeStatusModelsAllResponse (HordeResponse , RootModel [list [ActiveModel ]]):
271+ class HordeStatusModelsAllResponse (HordeResponseRootModel [list [ActiveModel ]]):
260272 root : list [ActiveModel ]
261273 """The underlying list of models."""
262274
@@ -325,7 +337,7 @@ def get_query_fields(cls) -> list[str]:
325337
326338
327339@Unhashable
328- class HordeStatusModelsSingleResponse (HordeResponse , RootModel [list [ActiveModel ]]):
340+ class HordeStatusModelsSingleResponse (HordeResponseRootModel [list [ActiveModel ]]):
329341 # This is a list because of an oversight in the structure of the API response. # FIXME
330342
331343 root : list [ActiveModel ]
@@ -377,7 +389,7 @@ def get_default_success_response_type(cls) -> type[HordeStatusModelsSingleRespon
377389 return HordeStatusModelsSingleResponse
378390
379391
380- class HordeModes (HordeAPIObject ):
392+ class HordeModes (HordeAPIObjectBaseModel ):
381393 maintenance_mode : bool = Field (
382394 default = False ,
383395 )
0 commit comments