llama-deploy-appserver 0.3.9__tar.gz → 0.3.11__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 (24) hide show
  1. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/PKG-INFO +3 -3
  2. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/pyproject.toml +3 -3
  3. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/app.py +1 -0
  4. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/workflow_store/agent_data_store.py +28 -14
  5. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/README.md +0 -0
  6. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/__init__.py +0 -0
  7. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/bootstrap.py +0 -0
  8. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/configure_logging.py +0 -0
  9. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/correlation_id.py +0 -0
  10. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/deployment.py +0 -0
  11. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/deployment_config_parser.py +0 -0
  12. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/interrupts.py +0 -0
  13. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/process_utils.py +0 -0
  14. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/py.typed +0 -0
  15. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/routers/__init__.py +0 -0
  16. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/routers/deployments.py +0 -0
  17. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/routers/status.py +0 -0
  18. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/routers/ui_proxy.py +0 -0
  19. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/settings.py +0 -0
  20. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/stats.py +0 -0
  21. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/types.py +0 -0
  22. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/workflow_loader.py +0 -0
  23. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/workflow_store/keyed_lock.py +0 -0
  24. {llama_deploy_appserver-0.3.9 → llama_deploy_appserver-0.3.11}/src/llama_deploy/appserver/workflow_store/lru_cache.py +0 -0
@@ -1,15 +1,15 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: llama-deploy-appserver
3
- Version: 0.3.9
3
+ Version: 0.3.11
4
4
  Summary: Application server components for LlamaDeploy
5
5
  Author: Massimiliano Pippi, Adrian Lyjak
6
6
  Author-email: Massimiliano Pippi <mpippi@gmail.com>, Adrian Lyjak <adrianlyjak@gmail.com>
7
7
  License: MIT
8
- Requires-Dist: llama-index-workflows[server]>=2.5.0
8
+ Requires-Dist: llama-index-workflows[server]>=2.6.0
9
9
  Requires-Dist: pydantic-settings>=2.10.1
10
10
  Requires-Dist: fastapi>=0.100.0
11
11
  Requires-Dist: websockets>=12.0
12
- Requires-Dist: llama-deploy-core>=0.3.9,<0.4.0
12
+ Requires-Dist: llama-deploy-core>=0.3.11,<0.4.0
13
13
  Requires-Dist: httpx>=0.24.0,<1.0.0
14
14
  Requires-Dist: prometheus-fastapi-instrumentator>=7.1.0
15
15
  Requires-Dist: packaging>=25.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "llama-deploy-appserver"
3
- version = "0.3.9"
3
+ version = "0.3.11"
4
4
  description = "Application server components for LlamaDeploy"
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -10,11 +10,11 @@ authors = [
10
10
  ]
11
11
  requires-python = ">=3.11, <4"
12
12
  dependencies = [
13
- "llama-index-workflows[server]>=2.5.0",
13
+ "llama-index-workflows[server]>=2.6.0",
14
14
  "pydantic-settings>=2.10.1",
15
15
  "fastapi>=0.100.0",
16
16
  "websockets>=12.0",
17
- "llama-deploy-core>=0.3.9,<0.4.0",
17
+ "llama-deploy-core>=0.3.11,<0.4.0",
18
18
  "httpx>=0.24.0,<1.0.0",
19
19
  "prometheus-fastapi-instrumentator>=7.1.0",
20
20
  "packaging>=25.0",
@@ -213,6 +213,7 @@ def start_server(
213
213
  host=settings.host,
214
214
  port=settings.port,
215
215
  reload=reload,
216
+ reload_dirs=["src"] if reload else None,
216
217
  timeout_graceful_shutdown=1,
217
218
  access_log=False,
218
219
  log_config=None,
@@ -1,6 +1,7 @@
1
+ import asyncio
1
2
  import logging
2
3
  import os
3
- from typing import List
4
+ from typing import Any, List
4
5
 
5
6
  from llama_cloud.client import AsyncLlamaCloud, httpx
6
7
  from llama_cloud_services.beta.agent_data import AsyncAgentDataClient
@@ -49,19 +50,7 @@ class AgentDataStore(AbstractWorkflowStore):
49
50
 
50
51
  @override
51
52
  async def query(self, query: HandlerQuery) -> List[PersistentHandler]:
52
- filters = {}
53
- if query.handler_id_in is not None:
54
- filters["handler_id"] = {
55
- "includes": query.handler_id_in,
56
- }
57
- if query.workflow_name_in is not None:
58
- filters["workflow_name"] = {
59
- "includes": query.workflow_name_in,
60
- }
61
- if query.status_in is not None:
62
- filters["status"] = {
63
- "includes": query.status_in,
64
- }
53
+ filters = self._build_filters(query)
65
54
  results = await self.client.search(
66
55
  filter=filters,
67
56
  page_size=1000,
@@ -85,6 +74,15 @@ class AgentDataStore(AbstractWorkflowStore):
85
74
  data=handler,
86
75
  )
87
76
 
77
+ @override
78
+ async def delete(self, handler: HandlerQuery) -> int:
79
+ filters = self._build_filters(handler)
80
+ results = await self.client.search(filter=filters, page_size=1000)
81
+ await asyncio.gather(
82
+ *[self.client.delete_item(item_id=x.id) for x in results.items]
83
+ )
84
+ return len(results.items)
85
+
88
86
  async def _get_item_id(self, handler: PersistentHandler) -> str | None:
89
87
  cached_id = self.cache.get(handler.handler_id, None)
90
88
  if cached_id is not None:
@@ -98,3 +96,19 @@ class AgentDataStore(AbstractWorkflowStore):
98
96
  id = results.items[0].id
99
97
  self.cache.set(handler.handler_id, id)
100
98
  return id
99
+
100
+ def _build_filters(self, query: HandlerQuery) -> dict[str, Any]:
101
+ filters = {}
102
+ if query.handler_id_in is not None:
103
+ filters["handler_id"] = {
104
+ "includes": query.handler_id_in,
105
+ }
106
+ if query.workflow_name_in is not None:
107
+ filters["workflow_name"] = {
108
+ "includes": query.workflow_name_in,
109
+ }
110
+ if query.status_in is not None:
111
+ filters["status"] = {
112
+ "includes": query.status_in,
113
+ }
114
+ return filters