Skip to content

Commit 454784d

Browse files
chore: speedup initial import
1 parent 934bd9d commit 454784d

1 file changed

Lines changed: 179 additions & 49 deletions

File tree

‎src/maisa/_client.py‎

Lines changed: 179 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from __future__ import annotations
44

55
import os
6-
from typing import Any, Mapping
6+
from typing import TYPE_CHECKING, Any, Mapping
77
from typing_extensions import Self, override
88

99
import httpx
@@ -20,30 +20,27 @@
2020
not_given,
2121
)
2222
from ._utils import is_given, get_async_library
23+
from ._compat import cached_property
2324
from ._version import __version__
24-
from .resources import kpu
2525
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
2626
from ._exceptions import MaisaError, APIStatusError
2727
from ._base_client import (
2828
DEFAULT_MAX_RETRIES,
2929
SyncAPIClient,
3030
AsyncAPIClient,
3131
)
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
3539

3640
__all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Maisa", "AsyncMaisa", "Client", "AsyncClient"]
3741

3842

3943
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-
4744
# client options
4845
api_key: str
4946

@@ -98,12 +95,37 @@ def __init__(
9895
_strict_response_validation=_strict_response_validation,
9996
)
10097

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)
107129

108130
@property
109131
@override
@@ -211,13 +233,6 @@ def _make_status_error(
211233

212234

213235
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-
221236
# client options
222237
api_key: str
223238

@@ -272,12 +287,37 @@ def __init__(
272287
_strict_response_validation=_strict_response_validation,
273288
)
274289

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)
281321

282322
@property
283323
@override
@@ -385,37 +425,127 @@ def _make_status_error(
385425

386426

387427
class MaisaWithRawResponse:
428+
_client: Maisa
429+
388430
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)
393456

394457

395458
class AsyncMaisaWithRawResponse:
459+
_client: AsyncMaisa
460+
396461
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)
401487

402488

403489
class MaisaWithStreamedResponse:
490+
_client: Maisa
491+
404492
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)
409518

410519

411520
class AsyncMaisaWithStreamedResponse:
521+
_client: AsyncMaisa
522+
412523
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)
419549

420550

421551
Client = Maisa

0 commit comments

Comments
 (0)