|
3 | 3 | from __future__ import annotations |
4 | 4 |
|
5 | 5 | import os |
6 | | -from typing import Any, Mapping |
| 6 | +from typing import TYPE_CHECKING, Any, Mapping |
7 | 7 | from typing_extensions import Self, override |
8 | 8 |
|
9 | 9 | import httpx |
|
20 | 20 | not_given, |
21 | 21 | ) |
22 | 22 | from ._utils import is_given, get_async_library |
| 23 | +from ._compat import cached_property |
23 | 24 | from ._version import __version__ |
24 | | -from .resources import kpu |
25 | 25 | from ._streaming import Stream as Stream, AsyncStream as AsyncStream |
26 | 26 | from ._exceptions import MaisaError, APIStatusError |
27 | 27 | from ._base_client import ( |
28 | 28 | DEFAULT_MAX_RETRIES, |
29 | 29 | SyncAPIClient, |
30 | 30 | AsyncAPIClient, |
31 | 31 | ) |
32 | | -from .resources.models import models |
33 | | -from .resources.capabilities import capabilities |
34 | | -from .resources.file_interpreter import file_interpreter |
| 32 | + |
| 33 | +if TYPE_CHECKING: |
| 34 | + from .resources import kpu, models, capabilities, file_interpreter |
| 35 | + from .resources.kpu import KpuResource, AsyncKpuResource |
| 36 | + from .resources.models.models import ModelsResource, AsyncModelsResource |
| 37 | + from .resources.capabilities.capabilities import CapabilitiesResource, AsyncCapabilitiesResource |
| 38 | + from .resources.file_interpreter.file_interpreter import FileInterpreterResource, AsyncFileInterpreterResource |
35 | 39 |
|
36 | 40 | __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Maisa", "AsyncMaisa", "Client", "AsyncClient"] |
37 | 41 |
|
38 | 42 |
|
39 | 43 | class Maisa(SyncAPIClient): |
40 | | - capabilities: capabilities.CapabilitiesResource |
41 | | - models: models.ModelsResource |
42 | | - kpu: kpu.KpuResource |
43 | | - file_interpreter: file_interpreter.FileInterpreterResource |
44 | | - with_raw_response: MaisaWithRawResponse |
45 | | - with_streaming_response: MaisaWithStreamedResponse |
46 | | - |
47 | 44 | # client options |
48 | 45 | api_key: str |
49 | 46 |
|
@@ -98,12 +95,37 @@ def __init__( |
98 | 95 | _strict_response_validation=_strict_response_validation, |
99 | 96 | ) |
100 | 97 |
|
101 | | - self.capabilities = capabilities.CapabilitiesResource(self) |
102 | | - self.models = models.ModelsResource(self) |
103 | | - self.kpu = kpu.KpuResource(self) |
104 | | - self.file_interpreter = file_interpreter.FileInterpreterResource(self) |
105 | | - self.with_raw_response = MaisaWithRawResponse(self) |
106 | | - self.with_streaming_response = MaisaWithStreamedResponse(self) |
| 98 | + @cached_property |
| 99 | + def capabilities(self) -> CapabilitiesResource: |
| 100 | + from .resources.capabilities import CapabilitiesResource |
| 101 | + |
| 102 | + return CapabilitiesResource(self) |
| 103 | + |
| 104 | + @cached_property |
| 105 | + def models(self) -> ModelsResource: |
| 106 | + from .resources.models import ModelsResource |
| 107 | + |
| 108 | + return ModelsResource(self) |
| 109 | + |
| 110 | + @cached_property |
| 111 | + def kpu(self) -> KpuResource: |
| 112 | + from .resources.kpu import KpuResource |
| 113 | + |
| 114 | + return KpuResource(self) |
| 115 | + |
| 116 | + @cached_property |
| 117 | + def file_interpreter(self) -> FileInterpreterResource: |
| 118 | + from .resources.file_interpreter import FileInterpreterResource |
| 119 | + |
| 120 | + return FileInterpreterResource(self) |
| 121 | + |
| 122 | + @cached_property |
| 123 | + def with_raw_response(self) -> MaisaWithRawResponse: |
| 124 | + return MaisaWithRawResponse(self) |
| 125 | + |
| 126 | + @cached_property |
| 127 | + def with_streaming_response(self) -> MaisaWithStreamedResponse: |
| 128 | + return MaisaWithStreamedResponse(self) |
107 | 129 |
|
108 | 130 | @property |
109 | 131 | @override |
@@ -211,13 +233,6 @@ def _make_status_error( |
211 | 233 |
|
212 | 234 |
|
213 | 235 | class AsyncMaisa(AsyncAPIClient): |
214 | | - capabilities: capabilities.AsyncCapabilitiesResource |
215 | | - models: models.AsyncModelsResource |
216 | | - kpu: kpu.AsyncKpuResource |
217 | | - file_interpreter: file_interpreter.AsyncFileInterpreterResource |
218 | | - with_raw_response: AsyncMaisaWithRawResponse |
219 | | - with_streaming_response: AsyncMaisaWithStreamedResponse |
220 | | - |
221 | 236 | # client options |
222 | 237 | api_key: str |
223 | 238 |
|
@@ -272,12 +287,37 @@ def __init__( |
272 | 287 | _strict_response_validation=_strict_response_validation, |
273 | 288 | ) |
274 | 289 |
|
275 | | - self.capabilities = capabilities.AsyncCapabilitiesResource(self) |
276 | | - self.models = models.AsyncModelsResource(self) |
277 | | - self.kpu = kpu.AsyncKpuResource(self) |
278 | | - self.file_interpreter = file_interpreter.AsyncFileInterpreterResource(self) |
279 | | - self.with_raw_response = AsyncMaisaWithRawResponse(self) |
280 | | - self.with_streaming_response = AsyncMaisaWithStreamedResponse(self) |
| 290 | + @cached_property |
| 291 | + def capabilities(self) -> AsyncCapabilitiesResource: |
| 292 | + from .resources.capabilities import AsyncCapabilitiesResource |
| 293 | + |
| 294 | + return AsyncCapabilitiesResource(self) |
| 295 | + |
| 296 | + @cached_property |
| 297 | + def models(self) -> AsyncModelsResource: |
| 298 | + from .resources.models import AsyncModelsResource |
| 299 | + |
| 300 | + return AsyncModelsResource(self) |
| 301 | + |
| 302 | + @cached_property |
| 303 | + def kpu(self) -> AsyncKpuResource: |
| 304 | + from .resources.kpu import AsyncKpuResource |
| 305 | + |
| 306 | + return AsyncKpuResource(self) |
| 307 | + |
| 308 | + @cached_property |
| 309 | + def file_interpreter(self) -> AsyncFileInterpreterResource: |
| 310 | + from .resources.file_interpreter import AsyncFileInterpreterResource |
| 311 | + |
| 312 | + return AsyncFileInterpreterResource(self) |
| 313 | + |
| 314 | + @cached_property |
| 315 | + def with_raw_response(self) -> AsyncMaisaWithRawResponse: |
| 316 | + return AsyncMaisaWithRawResponse(self) |
| 317 | + |
| 318 | + @cached_property |
| 319 | + def with_streaming_response(self) -> AsyncMaisaWithStreamedResponse: |
| 320 | + return AsyncMaisaWithStreamedResponse(self) |
281 | 321 |
|
282 | 322 | @property |
283 | 323 | @override |
@@ -385,37 +425,127 @@ def _make_status_error( |
385 | 425 |
|
386 | 426 |
|
387 | 427 | class MaisaWithRawResponse: |
| 428 | + _client: Maisa |
| 429 | + |
388 | 430 | def __init__(self, client: Maisa) -> None: |
389 | | - self.capabilities = capabilities.CapabilitiesResourceWithRawResponse(client.capabilities) |
390 | | - self.models = models.ModelsResourceWithRawResponse(client.models) |
391 | | - self.kpu = kpu.KpuResourceWithRawResponse(client.kpu) |
392 | | - self.file_interpreter = file_interpreter.FileInterpreterResourceWithRawResponse(client.file_interpreter) |
| 431 | + self._client = client |
| 432 | + |
| 433 | + @cached_property |
| 434 | + def capabilities(self) -> capabilities.CapabilitiesResourceWithRawResponse: |
| 435 | + from .resources.capabilities import CapabilitiesResourceWithRawResponse |
| 436 | + |
| 437 | + return CapabilitiesResourceWithRawResponse(self._client.capabilities) |
| 438 | + |
| 439 | + @cached_property |
| 440 | + def models(self) -> models.ModelsResourceWithRawResponse: |
| 441 | + from .resources.models import ModelsResourceWithRawResponse |
| 442 | + |
| 443 | + return ModelsResourceWithRawResponse(self._client.models) |
| 444 | + |
| 445 | + @cached_property |
| 446 | + def kpu(self) -> kpu.KpuResourceWithRawResponse: |
| 447 | + from .resources.kpu import KpuResourceWithRawResponse |
| 448 | + |
| 449 | + return KpuResourceWithRawResponse(self._client.kpu) |
| 450 | + |
| 451 | + @cached_property |
| 452 | + def file_interpreter(self) -> file_interpreter.FileInterpreterResourceWithRawResponse: |
| 453 | + from .resources.file_interpreter import FileInterpreterResourceWithRawResponse |
| 454 | + |
| 455 | + return FileInterpreterResourceWithRawResponse(self._client.file_interpreter) |
393 | 456 |
|
394 | 457 |
|
395 | 458 | class AsyncMaisaWithRawResponse: |
| 459 | + _client: AsyncMaisa |
| 460 | + |
396 | 461 | def __init__(self, client: AsyncMaisa) -> None: |
397 | | - self.capabilities = capabilities.AsyncCapabilitiesResourceWithRawResponse(client.capabilities) |
398 | | - self.models = models.AsyncModelsResourceWithRawResponse(client.models) |
399 | | - self.kpu = kpu.AsyncKpuResourceWithRawResponse(client.kpu) |
400 | | - self.file_interpreter = file_interpreter.AsyncFileInterpreterResourceWithRawResponse(client.file_interpreter) |
| 462 | + self._client = client |
| 463 | + |
| 464 | + @cached_property |
| 465 | + def capabilities(self) -> capabilities.AsyncCapabilitiesResourceWithRawResponse: |
| 466 | + from .resources.capabilities import AsyncCapabilitiesResourceWithRawResponse |
| 467 | + |
| 468 | + return AsyncCapabilitiesResourceWithRawResponse(self._client.capabilities) |
| 469 | + |
| 470 | + @cached_property |
| 471 | + def models(self) -> models.AsyncModelsResourceWithRawResponse: |
| 472 | + from .resources.models import AsyncModelsResourceWithRawResponse |
| 473 | + |
| 474 | + return AsyncModelsResourceWithRawResponse(self._client.models) |
| 475 | + |
| 476 | + @cached_property |
| 477 | + def kpu(self) -> kpu.AsyncKpuResourceWithRawResponse: |
| 478 | + from .resources.kpu import AsyncKpuResourceWithRawResponse |
| 479 | + |
| 480 | + return AsyncKpuResourceWithRawResponse(self._client.kpu) |
| 481 | + |
| 482 | + @cached_property |
| 483 | + def file_interpreter(self) -> file_interpreter.AsyncFileInterpreterResourceWithRawResponse: |
| 484 | + from .resources.file_interpreter import AsyncFileInterpreterResourceWithRawResponse |
| 485 | + |
| 486 | + return AsyncFileInterpreterResourceWithRawResponse(self._client.file_interpreter) |
401 | 487 |
|
402 | 488 |
|
403 | 489 | class MaisaWithStreamedResponse: |
| 490 | + _client: Maisa |
| 491 | + |
404 | 492 | def __init__(self, client: Maisa) -> None: |
405 | | - self.capabilities = capabilities.CapabilitiesResourceWithStreamingResponse(client.capabilities) |
406 | | - self.models = models.ModelsResourceWithStreamingResponse(client.models) |
407 | | - self.kpu = kpu.KpuResourceWithStreamingResponse(client.kpu) |
408 | | - self.file_interpreter = file_interpreter.FileInterpreterResourceWithStreamingResponse(client.file_interpreter) |
| 493 | + self._client = client |
| 494 | + |
| 495 | + @cached_property |
| 496 | + def capabilities(self) -> capabilities.CapabilitiesResourceWithStreamingResponse: |
| 497 | + from .resources.capabilities import CapabilitiesResourceWithStreamingResponse |
| 498 | + |
| 499 | + return CapabilitiesResourceWithStreamingResponse(self._client.capabilities) |
| 500 | + |
| 501 | + @cached_property |
| 502 | + def models(self) -> models.ModelsResourceWithStreamingResponse: |
| 503 | + from .resources.models import ModelsResourceWithStreamingResponse |
| 504 | + |
| 505 | + return ModelsResourceWithStreamingResponse(self._client.models) |
| 506 | + |
| 507 | + @cached_property |
| 508 | + def kpu(self) -> kpu.KpuResourceWithStreamingResponse: |
| 509 | + from .resources.kpu import KpuResourceWithStreamingResponse |
| 510 | + |
| 511 | + return KpuResourceWithStreamingResponse(self._client.kpu) |
| 512 | + |
| 513 | + @cached_property |
| 514 | + def file_interpreter(self) -> file_interpreter.FileInterpreterResourceWithStreamingResponse: |
| 515 | + from .resources.file_interpreter import FileInterpreterResourceWithStreamingResponse |
| 516 | + |
| 517 | + return FileInterpreterResourceWithStreamingResponse(self._client.file_interpreter) |
409 | 518 |
|
410 | 519 |
|
411 | 520 | class AsyncMaisaWithStreamedResponse: |
| 521 | + _client: AsyncMaisa |
| 522 | + |
412 | 523 | def __init__(self, client: AsyncMaisa) -> None: |
413 | | - self.capabilities = capabilities.AsyncCapabilitiesResourceWithStreamingResponse(client.capabilities) |
414 | | - self.models = models.AsyncModelsResourceWithStreamingResponse(client.models) |
415 | | - self.kpu = kpu.AsyncKpuResourceWithStreamingResponse(client.kpu) |
416 | | - self.file_interpreter = file_interpreter.AsyncFileInterpreterResourceWithStreamingResponse( |
417 | | - client.file_interpreter |
418 | | - ) |
| 524 | + self._client = client |
| 525 | + |
| 526 | + @cached_property |
| 527 | + def capabilities(self) -> capabilities.AsyncCapabilitiesResourceWithStreamingResponse: |
| 528 | + from .resources.capabilities import AsyncCapabilitiesResourceWithStreamingResponse |
| 529 | + |
| 530 | + return AsyncCapabilitiesResourceWithStreamingResponse(self._client.capabilities) |
| 531 | + |
| 532 | + @cached_property |
| 533 | + def models(self) -> models.AsyncModelsResourceWithStreamingResponse: |
| 534 | + from .resources.models import AsyncModelsResourceWithStreamingResponse |
| 535 | + |
| 536 | + return AsyncModelsResourceWithStreamingResponse(self._client.models) |
| 537 | + |
| 538 | + @cached_property |
| 539 | + def kpu(self) -> kpu.AsyncKpuResourceWithStreamingResponse: |
| 540 | + from .resources.kpu import AsyncKpuResourceWithStreamingResponse |
| 541 | + |
| 542 | + return AsyncKpuResourceWithStreamingResponse(self._client.kpu) |
| 543 | + |
| 544 | + @cached_property |
| 545 | + def file_interpreter(self) -> file_interpreter.AsyncFileInterpreterResourceWithStreamingResponse: |
| 546 | + from .resources.file_interpreter import AsyncFileInterpreterResourceWithStreamingResponse |
| 547 | + |
| 548 | + return AsyncFileInterpreterResourceWithStreamingResponse(self._client.file_interpreter) |
419 | 549 |
|
420 | 550 |
|
421 | 551 | Client = Maisa |
|
0 commit comments