lm-deluge 0.0.81__tar.gz → 0.0.82__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 (102) hide show
  1. {lm_deluge-0.0.81/src/lm_deluge.egg-info → lm_deluge-0.0.82}/PKG-INFO +1 -1
  2. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/pyproject.toml +1 -1
  3. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/client.py +5 -0
  4. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tracker.py +16 -13
  5. {lm_deluge-0.0.81 → lm_deluge-0.0.82/src/lm_deluge.egg-info}/PKG-INFO +1 -1
  6. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/LICENSE +0 -0
  7. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/README.md +0 -0
  8. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/setup.cfg +0 -0
  9. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/__init__.py +0 -0
  10. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/__init__.py +0 -0
  11. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/anthropic.py +0 -0
  12. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/base.py +0 -0
  13. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/bedrock.py +0 -0
  14. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/chat_reasoning.py +0 -0
  15. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/common.py +0 -0
  16. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/deprecated/bedrock.py +0 -0
  17. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/deprecated/cohere.py +0 -0
  18. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/deprecated/deepseek.py +0 -0
  19. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/deprecated/mistral.py +0 -0
  20. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/deprecated/vertex.py +0 -0
  21. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/gemini.py +0 -0
  22. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/mistral.py +0 -0
  23. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/openai.py +0 -0
  24. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/api_requests/response.py +0 -0
  25. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/batches.py +0 -0
  26. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/anthropic/__init__.py +0 -0
  27. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/anthropic/bash.py +0 -0
  28. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/anthropic/computer_use.py +0 -0
  29. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/anthropic/editor.py +0 -0
  30. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/base.py +0 -0
  31. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/built_in_tools/openai.py +0 -0
  32. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/cache.py +0 -0
  33. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/cli.py +0 -0
  34. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/config.py +0 -0
  35. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/embed.py +0 -0
  36. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/errors.py +0 -0
  37. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/file.py +0 -0
  38. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/image.py +0 -0
  39. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/llm_tools/__init__.py +0 -0
  40. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/mock_openai.py +0 -0
  41. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/__init__.py +0 -0
  42. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/anthropic.py +0 -0
  43. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/bedrock.py +0 -0
  44. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/cerebras.py +0 -0
  45. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/cohere.py +0 -0
  46. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/deepseek.py +0 -0
  47. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/fireworks.py +0 -0
  48. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/google.py +0 -0
  49. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/grok.py +0 -0
  50. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/groq.py +0 -0
  51. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/kimi.py +0 -0
  52. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/meta.py +0 -0
  53. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/minimax.py +0 -0
  54. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/mistral.py +0 -0
  55. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/openai.py +0 -0
  56. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/openrouter.py +0 -0
  57. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/models/together.py +0 -0
  58. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/__init__.py +0 -0
  59. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/classify.py +0 -0
  60. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/extract.py +0 -0
  61. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/locate.py +0 -0
  62. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/ocr.py +0 -0
  63. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/score.py +0 -0
  64. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/pipelines/translate.py +0 -0
  65. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/prompt.py +0 -0
  66. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/request_context.py +0 -0
  67. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/rerank.py +0 -0
  68. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/__init__.py +0 -0
  69. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/__init__.py +0 -0
  70. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/batch_tool.py +0 -0
  71. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/filesystem.py +0 -0
  72. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/memory.py +0 -0
  73. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/otc/__init__.py +0 -0
  74. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/otc/executor.py +0 -0
  75. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/otc/parse.py +0 -0
  76. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/sandbox.py +0 -0
  77. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/subagents.py +0 -0
  78. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/todos.py +0 -0
  79. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/tool/prefab/tool_search.py +0 -0
  80. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/usage.py +0 -0
  81. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/harmony.py +0 -0
  82. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/json.py +0 -0
  83. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/logprobs.py +0 -0
  84. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/schema.py +0 -0
  85. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/spatial.py +0 -0
  86. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/validation.py +0 -0
  87. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/util/xml.py +0 -0
  88. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge/warnings.py +0 -0
  89. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge.egg-info/SOURCES.txt +0 -0
  90. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge.egg-info/dependency_links.txt +0 -0
  91. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge.egg-info/requires.txt +0 -0
  92. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/src/lm_deluge.egg-info/top_level.txt +0 -0
  93. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_batch_tool.py +0 -0
  94. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_builtin_tools.py +0 -0
  95. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_file_upload.py +0 -0
  96. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_filesystem.py +0 -0
  97. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_filesystem_live.py +0 -0
  98. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_mock_openai.py +0 -0
  99. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_native_mcp_server.py +0 -0
  100. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_openrouter_generic.py +0 -0
  101. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_otc.py +0 -0
  102. {lm_deluge-0.0.81 → lm_deluge-0.0.82}/tests/test_tool_search.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lm_deluge
3
- Version: 0.0.81
3
+ Version: 0.0.82
4
4
  Summary: Python utility for using LLM API models.
5
5
  Author-email: Benjamin Anderson <ben@trytaylor.ai>
6
6
  Requires-Python: >=3.10
@@ -3,7 +3,7 @@ requires = ["setuptools", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "lm_deluge"
6
- version = "0.0.81"
6
+ version = "0.0.82"
7
7
  authors = [{ name = "Benjamin Anderson", email = "ben@trytaylor.ai" }]
8
8
  description = "Python utility for using LLM API models."
9
9
  readme = "README.md"
@@ -103,6 +103,11 @@ class _LLMClient(BaseModel):
103
103
  _tracker: StatusTracker | None = PrivateAttr(default=None)
104
104
  _capacity_lock: asyncio.Lock = PrivateAttr(default_factory=asyncio.Lock)
105
105
 
106
+ # usage
107
+ def print_usage(self):
108
+ if self._tracker:
109
+ self._tracker.log_usage()
110
+
106
111
  # Progress management for queueing API
107
112
  def open(self, total: int | None = None, show_progress: bool = True):
108
113
  self._tracker = StatusTracker(
@@ -157,19 +157,7 @@ class StatusTracker:
157
157
  if response.usage.cache_write_tokens:
158
158
  self.total_cache_write_tokens += response.usage.cache_write_tokens
159
159
 
160
- def log_final_status(self):
161
- # Close progress bar before printing final status
162
- self.close_progress_bar()
163
-
164
- if self.num_tasks_failed > 0:
165
- print(
166
- f"{self.num_tasks_failed} / {self.num_tasks_started} requests failed."
167
- )
168
- if self.num_rate_limit_errors > 0:
169
- print(
170
- f"{self.num_rate_limit_errors} rate limit errors received. Consider running at a lower rate."
171
- )
172
-
160
+ def log_usage(self):
173
161
  # Display cumulative usage stats if available
174
162
  if (
175
163
  self.total_cost > 0
@@ -190,6 +178,21 @@ class StatusTracker:
190
178
 
191
179
  print(" ", " • ".join(usage_parts))
192
180
 
181
+ def log_final_status(self):
182
+ # Close progress bar before printing final status
183
+ self.close_progress_bar()
184
+
185
+ if self.num_tasks_failed > 0:
186
+ print(
187
+ f"{self.num_tasks_failed} / {self.num_tasks_started} requests failed."
188
+ )
189
+ if self.num_rate_limit_errors > 0:
190
+ print(
191
+ f"{self.num_rate_limit_errors} rate limit errors received. Consider running at a lower rate."
192
+ )
193
+
194
+ self.log_usage()
195
+
193
196
  @property
194
197
  def pbar(self) -> tqdm | None:
195
198
  """Backward compatibility property to access progress bar."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lm_deluge
3
- Version: 0.0.81
3
+ Version: 0.0.82
4
4
  Summary: Python utility for using LLM API models.
5
5
  Author-email: Benjamin Anderson <ben@trytaylor.ai>
6
6
  Requires-Python: >=3.10
File without changes
File without changes
File without changes
File without changes