flashlite 0.2.0__tar.gz → 0.2.1__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 (67) hide show
  1. {flashlite-0.2.0 → flashlite-0.2.1}/PKG-INFO +1 -1
  2. {flashlite-0.2.0 → flashlite-0.2.1}/pyproject.toml +1 -1
  3. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/conversation/multi_agent.py +9 -22
  4. {flashlite-0.2.0 → flashlite-0.2.1}/uv.lock +1 -1
  5. {flashlite-0.2.0 → flashlite-0.2.1}/.gitignore +0 -0
  6. {flashlite-0.2.0 → flashlite-0.2.1}/.python-version +0 -0
  7. {flashlite-0.2.0 → flashlite-0.2.1}/.vscode/settings.json +0 -0
  8. {flashlite-0.2.0 → flashlite-0.2.1}/DEV.md +0 -0
  9. {flashlite-0.2.0 → flashlite-0.2.1}/LICENSE.md +0 -0
  10. {flashlite-0.2.0 → flashlite-0.2.1}/QUICK_START.md +0 -0
  11. {flashlite-0.2.0 → flashlite-0.2.1}/README.md +0 -0
  12. {flashlite-0.2.0 → flashlite-0.2.1}/examples/basic_example.py +0 -0
  13. {flashlite-0.2.0 → flashlite-0.2.1}/examples/multi_agent_chat.py +0 -0
  14. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/__init__.py +0 -0
  15. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/_spinner.py +0 -0
  16. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/cache/__init__.py +0 -0
  17. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/cache/base.py +0 -0
  18. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/cache/disk.py +0 -0
  19. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/cache/memory.py +0 -0
  20. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/client.py +0 -0
  21. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/config.py +0 -0
  22. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/conversation/__init__.py +0 -0
  23. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/conversation/context.py +0 -0
  24. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/conversation/manager.py +0 -0
  25. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/core/__init__.py +0 -0
  26. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/core/completion.py +0 -0
  27. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/core/messages.py +0 -0
  28. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/__init__.py +0 -0
  29. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/base.py +0 -0
  30. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/cache.py +0 -0
  31. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/logging.py +0 -0
  32. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/rate_limit.py +0 -0
  33. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/middleware/retry.py +0 -0
  34. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/observability/__init__.py +0 -0
  35. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/observability/callbacks.py +0 -0
  36. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/observability/inspect_compat.py +0 -0
  37. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/observability/logging.py +0 -0
  38. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/observability/metrics.py +0 -0
  39. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/py.typed +0 -0
  40. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/structured/__init__.py +0 -0
  41. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/structured/outputs.py +0 -0
  42. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/structured/schema.py +0 -0
  43. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/templating/__init__.py +0 -0
  44. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/templating/engine.py +0 -0
  45. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/templating/filters.py +0 -0
  46. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/templating/registry.py +0 -0
  47. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/tools/__init__.py +0 -0
  48. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/tools/definitions.py +0 -0
  49. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/tools/execution.py +0 -0
  50. {flashlite-0.2.0 → flashlite-0.2.1}/src/flashlite/types.py +0 -0
  51. {flashlite-0.2.0 → flashlite-0.2.1}/tests/__init__.py +0 -0
  52. {flashlite-0.2.0 → flashlite-0.2.1}/tests/conftest.py +0 -0
  53. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_cache.py +0 -0
  54. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_cache_integration.py +0 -0
  55. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_client.py +0 -0
  56. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_config.py +0 -0
  57. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_conversation.py +0 -0
  58. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_integration.py +0 -0
  59. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_messages.py +0 -0
  60. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_middleware.py +0 -0
  61. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_multi_agent.py +0 -0
  62. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_observability.py +0 -0
  63. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_rate_limit_regression.py +0 -0
  64. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_structured.py +0 -0
  65. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_templating.py +0 -0
  66. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_tools.py +0 -0
  67. {flashlite-0.2.0 → flashlite-0.2.1}/tests/test_types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flashlite
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Batteries-included wrapper for litellm with rate limiting, retries, templating, and more
5
5
  Author-email: ndalton12 <niall.dalton12@gmail.com>
6
6
  License-File: LICENSE.md
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flashlite"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "Batteries-included wrapper for litellm with rate limiting, retries, templating, and more"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -333,8 +333,7 @@ class MultiAgentChat:
333
333
  """
334
334
  if agent_name not in self._agents:
335
335
  raise ValueError(
336
- f"Unknown agent: {agent_name}. "
337
- f"Available agents: {list(self._agents.keys())}"
336
+ f"Unknown agent: {agent_name}. Available agents: {list(self._agents.keys())}"
338
337
  )
339
338
 
340
339
  agent = self._agents[agent_name]
@@ -372,12 +371,8 @@ class MultiAgentChat:
372
371
  metadata={
373
372
  "model": response.model,
374
373
  "tokens": response.usage.total_tokens if response.usage else None,
375
- "input_tokens": (
376
- response.usage.input_tokens if response.usage else None
377
- ),
378
- "output_tokens": (
379
- response.usage.output_tokens if response.usage else None
380
- ),
374
+ "input_tokens": (response.usage.input_tokens if response.usage else None),
375
+ "output_tokens": (response.usage.output_tokens if response.usage else None),
381
376
  "latency_ms": round(latency_ms, 1),
382
377
  },
383
378
  visible_to=visible_to,
@@ -395,7 +390,7 @@ class MultiAgentChat:
395
390
 
396
391
  # Validate structured output if requested
397
392
  if response_model is not None:
398
- return self._validate_structured(
393
+ return await self._validate_structured(
399
394
  response=response,
400
395
  response_model=response_model,
401
396
  messages=messages,
@@ -432,8 +427,7 @@ class MultiAgentChat:
432
427
  if "response_format" not in extra_kwargs:
433
428
  resolved_model = (agent.model or self._default_model or "").lower()
434
429
  if any(
435
- p in resolved_model
436
- for p in ["gpt-4", "gpt-3.5", "claude", "gemini", "mistral"]
430
+ p in resolved_model for p in ["gpt-4", "gpt-3.5", "claude", "gemini", "mistral"]
437
431
  ):
438
432
  extra_kwargs["response_format"] = {"type": "json_object"}
439
433
 
@@ -537,14 +531,10 @@ class MultiAgentChat:
537
531
 
538
532
  if msg.agent_name == agent.name:
539
533
  # Agent's own previous messages
540
- messages.append(
541
- assistant_message(msg.content, name=_sanitize_name(agent.name))
542
- )
534
+ messages.append(assistant_message(msg.content, name=_sanitize_name(agent.name)))
543
535
  else:
544
536
  # Other agents'/sources' messages with name attribution
545
- messages.append(
546
- user_message(msg.content, name=_sanitize_name(msg.agent_name))
547
- )
537
+ messages.append(user_message(msg.content, name=_sanitize_name(msg.agent_name)))
548
538
 
549
539
  return messages
550
540
 
@@ -697,9 +687,7 @@ class MultiAgentChat:
697
687
  for line in msg.content.split("\n"):
698
688
  lines.append(f" {line}")
699
689
  if include_metadata and msg.metadata:
700
- meta_str = ", ".join(
701
- f"{k}={v}" for k, v in msg.metadata.items() if v is not None
702
- )
690
+ meta_str = ", ".join(f"{k}={v}" for k, v in msg.metadata.items() if v is not None)
703
691
  if meta_str:
704
692
  lines.append(f" ({meta_str})")
705
693
  lines.append("")
@@ -739,6 +727,5 @@ class MultiAgentChat:
739
727
 
740
728
  def __repr__(self) -> str:
741
729
  return (
742
- f"MultiAgentChat(agents={list(self._agents.keys())}, "
743
- f"messages={len(self._transcript)})"
730
+ f"MultiAgentChat(agents={list(self._agents.keys())}, messages={len(self._transcript)})"
744
731
  )
@@ -423,7 +423,7 @@ wheels = [
423
423
 
424
424
  [[package]]
425
425
  name = "flashlite"
426
- version = "0.1.2"
426
+ version = "0.2.0"
427
427
  source = { editable = "." }
428
428
  dependencies = [
429
429
  { name = "jinja2" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes