speedy-utils 1.1.8__tar.gz → 1.1.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/PKG-INFO +1 -1
  2. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/pyproject.toml +1 -1
  3. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_llm_task.py +11 -3
  4. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_lm.py +16 -2
  5. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/async_lm_base.py +0 -1
  6. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/__init__.py +1 -3
  7. speedy_utils-1.1.10/src/speedy_utils/common/utils_cache.py +648 -0
  8. speedy_utils-1.1.8/src/speedy_utils/common/utils_cache.py +0 -494
  9. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/README.md +0 -0
  10. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/__init__.py +0 -0
  11. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/__init__.py +0 -0
  12. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/display.py +0 -0
  13. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/transform.py +0 -0
  14. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/chat_format/utils.py +0 -0
  15. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/group_messages.py +0 -0
  16. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/__init__.py +0 -0
  17. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/__init__.py +0 -0
  18. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/_utils.py +0 -0
  19. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/async_lm/lm_specific.py +0 -0
  20. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/lm/utils.py +0 -0
  21. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/README.md +0 -0
  22. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/vllm_load_balancer.py +0 -0
  23. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/llm_utils/scripts/vllm_serve.py +0 -0
  24. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/all.py +0 -0
  25. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/__init__.py +0 -0
  26. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/clock.py +0 -0
  27. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/function_decorator.py +0 -0
  28. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/logger.py +0 -0
  29. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/notebook_utils.py +0 -0
  30. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/report_manager.py +0 -0
  31. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_io.py +0 -0
  32. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_misc.py +0 -0
  33. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/common/utils_print.py +0 -0
  34. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/__init__.py +0 -0
  35. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/process.py +0 -0
  36. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/multi_worker/thread.py +0 -0
  37. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/__init__.py +0 -0
  38. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/mpython.py +0 -0
  39. {speedy_utils-1.1.8 → speedy_utils-1.1.10}/src/speedy_utils/scripts/openapi_client_codegen.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: speedy-utils
3
- Version: 1.1.8
3
+ Version: 1.1.10
4
4
  Summary: Fast and easy-to-use package for data science
5
5
  Author: AnhVTH
6
6
  Author-email: anhvth.226@gmail.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "speedy-utils"
3
- version = "1.1.8"
3
+ version = "1.1.10"
4
4
  description = "Fast and easy-to-use package for data science"
5
5
  authors = ["AnhVTH <anhvth.226@gmail.com>"]
6
6
  readme = "README.md"
@@ -7,6 +7,7 @@ import pathlib
7
7
  from abc import ABC
8
8
  from dataclasses import dataclass
9
9
  from typing import Any, Dict, Generic, List, Literal, Optional, TypeVar, Union, cast
10
+ from venv import logger
10
11
 
11
12
  from openai.types.chat import ChatCompletionMessageParam
12
13
  from pydantic import BaseModel
@@ -388,7 +389,7 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
388
389
  input_data: InputModelType,
389
390
  expected_response: Optional[OutputModelType] = None,
390
391
  label: Optional[str] = None,
391
- cache_dir: pathlib.Path = DEFAULT_CACHE_DIR,
392
+ cache_dir: Optional[pathlib.Path] = None,
392
393
  ) -> OutputModelType:
393
394
  """
394
395
  Generate training data for both thinking and non-thinking modes.
@@ -414,6 +415,10 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
414
415
  # Create non-thinking mode equivalent
415
416
  no_think_messages = self._create_no_think_messages(think_messages)
416
417
 
418
+ # Use default cache directory if none provided
419
+ if cache_dir is None:
420
+ cache_dir = self.DEFAULT_CACHE_DIR or pathlib.Path("./cache")
421
+
417
422
  # Save training data
418
423
  self._save_training_data(
419
424
  input_data=input_data,
@@ -512,5 +517,8 @@ class AsyncLLMTask(ABC, Generic[InputModelType, OutputModelType]):
512
517
  return self
513
518
 
514
519
  async def __aexit__(self, exc_type, exc_val, exc_tb):
515
- if self._lm and hasattr(self._lm, "aclose"): # Or self._lm.client
516
- await self._lm._last_client._client.aclose()
520
+ if hasattr(self._lm, "_last_client"):
521
+ last_client = self._lm._last_client # type: ignore
522
+ await last_client._client.aclose()
523
+ else:
524
+ logger.warning("No last client to close")
@@ -96,12 +96,16 @@ class AsyncLM(AsyncLMBase):
96
96
 
97
97
  async def _unified_client_call(
98
98
  self,
99
- messages: list[dict],
99
+ messages: RawMsgs,
100
100
  extra_body: Optional[dict] = None,
101
101
  cache_suffix: str = "",
102
102
  ) -> dict:
103
103
  """Unified method for all client interactions with caching and error handling."""
104
- converted_messages = self._convert_messages(messages)
104
+ converted_messages: Messages = (
105
+ self._convert_messages(cast(LegacyMsgs, messages))
106
+ if messages and isinstance(messages[0], dict)
107
+ else cast(Messages, messages)
108
+ )
105
109
  cache_key = None
106
110
  completion = None
107
111
 
@@ -385,3 +389,13 @@ class AsyncLM(AsyncLMBase):
385
389
  raise ValueError(
386
390
  f"Failed to validate against response model {response_model.__name__}: {exc}\nRaw content: {content}"
387
391
  ) from exc
392
+
393
+ async def __aenter__(self):
394
+ return self
395
+
396
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
397
+ if hasattr(self, "_last_client"):
398
+ last_client = self._last_client # type: ignore
399
+ await last_client._client.aclose()
400
+ else:
401
+ logger.warning("No last client to close")
@@ -54,7 +54,6 @@ class AsyncLMBase:
54
54
  self._cache = cache
55
55
  self.ports = ports
56
56
  self._init_port = port # <-- store the port provided at init
57
- self._last_client:AsyncOpenAI = None
58
57
 
59
58
  @property
60
59
  def client(self) -> AsyncOpenAI:
@@ -108,7 +108,7 @@ from .common.notebook_utils import (
108
108
  )
109
109
 
110
110
  # Cache utilities
111
- from .common.utils_cache import amemoize, identify, identify_uuid, memoize
111
+ from .common.utils_cache import identify, identify_uuid, memoize
112
112
 
113
113
  # IO utilities
114
114
  from .common.utils_io import (
@@ -197,7 +197,6 @@ __all__ = [
197
197
  # Function decorators
198
198
  "retry_runtime",
199
199
  # Cache utilities
200
- "amemoize",
201
200
  "memoize",
202
201
  "identify",
203
202
  "identify_uuid",
@@ -227,5 +226,4 @@ __all__ = [
227
226
  "multi_thread",
228
227
  # Notebook utilities
229
228
  "change_dir",
230
- "amemoize",
231
229
  ]