sunholo 0.143.16__tar.gz → 0.144.0__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 (204) hide show
  1. {sunholo-0.143.16/src/sunholo.egg-info → sunholo-0.144.0}/PKG-INFO +12 -10
  2. {sunholo-0.143.16 → sunholo-0.144.0}/pyproject.toml +12 -10
  3. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/dispatch_to_qa.py +16 -2
  4. sunholo-0.144.0/src/sunholo/agents/fastapi/__init__.py +3 -0
  5. sunholo-0.144.0/src/sunholo/agents/fastapi/vac_routes.py +1017 -0
  6. sunholo-0.144.0/src/sunholo/mcp/cli.py +22 -0
  7. sunholo-0.144.0/src/sunholo/mcp/cli_fastmcp.py +201 -0
  8. sunholo-0.144.0/src/sunholo/mcp/vac_mcp_server.py +23 -0
  9. sunholo-0.144.0/src/sunholo/mcp/vac_mcp_server_fastmcp.py +193 -0
  10. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/streaming/streaming.py +26 -6
  11. {sunholo-0.143.16 → sunholo-0.144.0/src/sunholo.egg-info}/PKG-INFO +12 -10
  12. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo.egg-info/SOURCES.txt +6 -1
  13. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo.egg-info/requires.txt +11 -8
  14. sunholo-0.144.0/tests/test_vac_routes_fastapi.py +226 -0
  15. sunholo-0.144.0/tests/test_vac_routes_mcp.py +322 -0
  16. sunholo-0.143.16/src/sunholo/agents/fastapi/__init__.py +0 -2
  17. sunholo-0.143.16/src/sunholo/mcp/cli.py +0 -338
  18. sunholo-0.143.16/src/sunholo/mcp/vac_mcp_server.py +0 -266
  19. {sunholo-0.143.16 → sunholo-0.144.0}/LICENSE.txt +0 -0
  20. {sunholo-0.143.16 → sunholo-0.144.0}/MANIFEST.in +0 -0
  21. {sunholo-0.143.16 → sunholo-0.144.0}/README.md +0 -0
  22. {sunholo-0.143.16 → sunholo-0.144.0}/setup.cfg +0 -0
  23. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/__init__.py +0 -0
  24. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/a2a/__init__.py +0 -0
  25. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/a2a/agent_card.py +0 -0
  26. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/a2a/task_manager.py +0 -0
  27. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/a2a/vac_a2a_agent.py +0 -0
  28. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/__init__.py +0 -0
  29. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/chat_history.py +0 -0
  30. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/fastapi/base.py +0 -0
  31. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  32. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/flask/__init__.py +0 -0
  33. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/flask/base.py +0 -0
  34. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/flask/vac_routes.py +0 -0
  35. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/langserve.py +0 -0
  36. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/pubsub.py +0 -0
  37. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/route.py +0 -0
  38. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/special_commands.py +0 -0
  39. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/agents/swagger.py +0 -0
  40. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/archive/__init__.py +0 -0
  41. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/archive/archive.py +0 -0
  42. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/auth/__init__.py +0 -0
  43. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/auth/gcloud.py +0 -0
  44. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/auth/refresh.py +0 -0
  45. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/auth/run.py +0 -0
  46. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/azure/__init__.py +0 -0
  47. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/azure/auth.py +0 -0
  48. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/azure/blobs.py +0 -0
  49. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/azure/event_grid.py +0 -0
  50. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/bots/__init__.py +0 -0
  51. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/bots/discord.py +0 -0
  52. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/bots/github_webhook.py +0 -0
  53. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/bots/webapp.py +0 -0
  54. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/__init__.py +0 -0
  55. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/azure.py +0 -0
  56. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/doc_handling.py +0 -0
  57. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/encode_metadata.py +0 -0
  58. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/images.py +0 -0
  59. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/loaders.py +0 -0
  60. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/message_data.py +0 -0
  61. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/pdfs.py +0 -0
  62. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/process_chunker_data.py +0 -0
  63. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/publish.py +0 -0
  64. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/pubsub.py +0 -0
  65. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/chunker/splitter.py +0 -0
  66. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/__init__.py +0 -0
  67. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/chat_vac.py +0 -0
  68. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/cli.py +0 -0
  69. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/cli_init.py +0 -0
  70. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/configs.py +0 -0
  71. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/deploy.py +0 -0
  72. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/embedder.py +0 -0
  73. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/merge_texts.py +0 -0
  74. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/run_proxy.py +0 -0
  75. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/sun_rich.py +0 -0
  76. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/swagger.py +0 -0
  77. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/cli/vertex.py +0 -0
  78. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/components/__init__.py +0 -0
  79. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/components/llm.py +0 -0
  80. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/components/retriever.py +0 -0
  81. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/components/vectorstore.py +0 -0
  82. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/custom_logging.py +0 -0
  83. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/__init__.py +0 -0
  84. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/alloydb.py +0 -0
  85. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/alloydb_client.py +0 -0
  86. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/database.py +0 -0
  87. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/lancedb.py +0 -0
  88. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  89. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  90. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  91. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  92. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  93. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/sql/sb/setup.sql +0 -0
  94. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/static_dbs.py +0 -0
  95. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/database/uuid.py +0 -0
  96. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/__init__.py +0 -0
  97. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/chunker_handler.py +0 -0
  98. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/cli.py +0 -0
  99. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/create_new.py +0 -0
  100. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  101. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  102. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/embedder/__init__.py +0 -0
  103. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/embedder/embed_chunk.py +0 -0
  104. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/embedder/embed_metadata.py +0 -0
  105. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/excel/__init__.py +0 -0
  106. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/excel/plugin.py +0 -0
  107. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/__init__.py +0 -0
  108. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/add_file.py +0 -0
  109. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/download_folder.py +0 -0
  110. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/download_gcs_text.py +0 -0
  111. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/download_url.py +0 -0
  112. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/extract_and_sign.py +0 -0
  113. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/gcs/metadata.py +0 -0
  114. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/__init__.py +0 -0
  115. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/file_handling.py +0 -0
  116. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/genaiv2.py +0 -0
  117. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/images.py +0 -0
  118. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/init.py +0 -0
  119. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/process_funcs_cls.py +0 -0
  120. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/genai/safety.py +0 -0
  121. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/invoke/__init__.py +0 -0
  122. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/invoke/async_class.py +0 -0
  123. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/invoke/direct_vac_func.py +0 -0
  124. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  125. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/langchain_types.py +0 -0
  126. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/langfuse/__init__.py +0 -0
  127. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/langfuse/callback.py +0 -0
  128. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/langfuse/evals.py +0 -0
  129. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/langfuse/prompts.py +0 -0
  130. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/llamaindex/__init__.py +0 -0
  131. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/llamaindex/get_files.py +0 -0
  132. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/llamaindex/import_files.py +0 -0
  133. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  134. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/llamaindex/user_history.py +0 -0
  135. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/lookup/__init__.py +0 -0
  136. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/lookup/model_lookup.yaml +0 -0
  137. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/mcp/__init__.py +0 -0
  138. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/mcp/mcp_manager.py +0 -0
  139. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/mcp/stdio_http_bridge.py +0 -0
  140. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/ollama/__init__.py +0 -0
  141. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/ollama/ollama_images.py +0 -0
  142. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/pubsub/__init__.py +0 -0
  143. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/pubsub/process_pubsub.py +0 -0
  144. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  145. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/qna/__init__.py +0 -0
  146. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/qna/parsers.py +0 -0
  147. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/qna/retry.py +0 -0
  148. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/senses/__init__.py +0 -0
  149. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/senses/stream_voice.py +0 -0
  150. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/streaming/__init__.py +0 -0
  151. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/streaming/content_buffer.py +0 -0
  152. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/streaming/langserve.py +0 -0
  153. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/streaming/stream_lookup.py +0 -0
  154. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/summarise/__init__.py +0 -0
  155. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/summarise/summarise.py +0 -0
  156. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/__init__.py +0 -0
  157. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/agent_service.py +0 -0
  158. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/app.py +0 -0
  159. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/my_log.py +0 -0
  160. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  161. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  162. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/agent/vac_service.py +0 -0
  163. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/project/__init__.py +0 -0
  164. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/project/app.py +0 -0
  165. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/project/my_log.py +0 -0
  166. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/project/vac_service.py +0 -0
  167. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/system_services/__init__.py +0 -0
  168. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/system_services/app.py +0 -0
  169. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/templates/system_services/my_log.py +0 -0
  170. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/terraform/__init__.py +0 -0
  171. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/terraform/tfvars_editor.py +0 -0
  172. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/tools/__init__.py +0 -0
  173. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/tools/web_browser.py +0 -0
  174. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/__init__.py +0 -0
  175. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/api_key.py +0 -0
  176. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/big_context.py +0 -0
  177. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/config.py +0 -0
  178. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/config_class.py +0 -0
  179. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/config_schema.py +0 -0
  180. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/gcp.py +0 -0
  181. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/gcp_project.py +0 -0
  182. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/mime.py +0 -0
  183. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/parsers.py +0 -0
  184. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/proto_convert.py +0 -0
  185. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/timedelta.py +0 -0
  186. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/user_ids.py +0 -0
  187. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/utils/version.py +0 -0
  188. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/__init__.py +0 -0
  189. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/extensions_call.py +0 -0
  190. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/extensions_class.py +0 -0
  191. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/genai_functions.py +0 -0
  192. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/init.py +0 -0
  193. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/memory_tools.py +0 -0
  194. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/safety.py +0 -0
  195. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  196. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo.egg-info/dependency_links.txt +0 -0
  197. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo.egg-info/entry_points.txt +0 -0
  198. {sunholo-0.143.16 → sunholo-0.144.0}/src/sunholo.egg-info/top_level.txt +0 -0
  199. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_async.py +0 -0
  200. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_async_genai2.py +0 -0
  201. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_chat_history.py +0 -0
  202. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_config.py +0 -0
  203. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_genai2.py +0 -0
  204. {sunholo-0.143.16 → sunholo-0.144.0}/tests/test_unstructured.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.143.16
3
+ Version: 0.144.0
4
4
  Summary: AI DevOps - a package to help deploy GenAI to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
@@ -12,26 +12,22 @@ Classifier: Intended Audience :: Developers
12
12
  Classifier: Topic :: Software Development :: Build Tools
13
13
  Classifier: License :: OSI Approved :: Apache Software License
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.10
16
15
  Classifier: Programming Language :: Python :: 3.11
17
16
  Classifier: Programming Language :: Python :: 3.12
18
17
  Requires-Python: >=3.11
19
18
  Description-Content-Type: text/markdown
20
19
  License-File: LICENSE.txt
21
- Requires-Dist: a2a-python>=0.0.1
22
- Requires-Dist: aiohttp
23
- Requires-Dist: flask>=3.1.0
24
20
  Requires-Dist: google-auth
25
- Requires-Dist: mcp>=1.1.1
26
21
  Requires-Dist: pydantic
27
- Requires-Dist: pytest-asyncio>=1.0.0
28
22
  Requires-Dist: requests
29
23
  Requires-Dist: ruamel.yaml
30
24
  Requires-Dist: tenacity
31
25
  Provides-Extra: test
32
26
  Requires-Dist: pytest; extra == "test"
27
+ Requires-Dist: pytest-asyncio>=1.0.0; extra == "test"
33
28
  Requires-Dist: pytest-cov; extra == "test"
34
29
  Provides-Extra: all
30
+ Requires-Dist: a2a-python>=0.0.1; extra == "all"
35
31
  Requires-Dist: aiofiles; extra == "all"
36
32
  Requires-Dist: aiohttp; extra == "all"
37
33
  Requires-Dist: anthropic[vertex]; extra == "all"
@@ -39,7 +35,8 @@ Requires-Dist: asyncpg; extra == "all"
39
35
  Requires-Dist: azure-identity; extra == "all"
40
36
  Requires-Dist: azure-storage-blob; extra == "all"
41
37
  Requires-Dist: fastapi; extra == "all"
42
- Requires-Dist: flask; extra == "all"
38
+ Requires-Dist: fastmcp>=2.12.0; extra == "all"
39
+ Requires-Dist: flask>=3.1.0; extra == "all"
43
40
  Requires-Dist: google-auth; extra == "all"
44
41
  Requires-Dist: google-auth-httplib2; extra == "all"
45
42
  Requires-Dist: google-auth-oauthlib; extra == "all"
@@ -82,6 +79,9 @@ Requires-Dist: psutil; extra == "all"
82
79
  Requires-Dist: psycopg2-binary; extra == "all"
83
80
  Requires-Dist: pydantic; extra == "all"
84
81
  Requires-Dist: pypdf; extra == "all"
82
+ Requires-Dist: pytest; extra == "all"
83
+ Requires-Dist: pytest-asyncio>=1.0.0; extra == "all"
84
+ Requires-Dist: pytest-cov; extra == "all"
85
85
  Requires-Dist: python-hcl2; extra == "all"
86
86
  Requires-Dist: python-socketio; extra == "all"
87
87
  Requires-Dist: pytesseract; extra == "all"
@@ -127,7 +127,7 @@ Requires-Dist: pytesseract; extra == "pipeline"
127
127
  Requires-Dist: tabulate; extra == "pipeline"
128
128
  Requires-Dist: unstructured[all-docs,local-inference]; extra == "pipeline"
129
129
  Provides-Extra: gcp
130
- Requires-Dist: a2a-python; extra == "gcp"
130
+ Requires-Dist: a2a-python>=0.0.1; extra == "gcp"
131
131
  Requires-Dist: aiofiles; extra == "gcp"
132
132
  Requires-Dist: anthropic[vertex]; extra == "gcp"
133
133
  Requires-Dist: google-api-python-client; extra == "gcp"
@@ -157,14 +157,16 @@ Provides-Extra: openai
157
157
  Requires-Dist: langchain-openai>=0.3.2; extra == "openai"
158
158
  Requires-Dist: tiktoken; extra == "openai"
159
159
  Provides-Extra: anthropic
160
+ Requires-Dist: fastmcp>=2.12.0; extra == "anthropic"
160
161
  Requires-Dist: langchain-anthropic>=0.1.23; extra == "anthropic"
161
162
  Requires-Dist: mcp>=1.1.1; extra == "anthropic"
162
163
  Provides-Extra: tools
163
164
  Requires-Dist: openapi-spec-validator; extra == "tools"
164
165
  Requires-Dist: playwright; extra == "tools"
165
166
  Provides-Extra: http
167
+ Requires-Dist: aiohttp; extra == "http"
166
168
  Requires-Dist: fastapi; extra == "http"
167
- Requires-Dist: flask; extra == "http"
169
+ Requires-Dist: flask>=3.1.0; extra == "http"
168
170
  Requires-Dist: gunicorn; extra == "http"
169
171
  Requires-Dist: httpcore; extra == "http"
170
172
  Requires-Dist: httpx; extra == "http"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.143.16"
7
+ version = "0.144.0"
8
8
  description = "AI DevOps - a package to help deploy GenAI to the Cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -19,19 +19,13 @@ classifiers = [
19
19
  "Topic :: Software Development :: Build Tools",
20
20
  "License :: OSI Approved :: Apache Software License",
21
21
  "Programming Language :: Python :: 3",
22
- "Programming Language :: Python :: 3.10",
23
22
  "Programming Language :: Python :: 3.11",
24
23
  "Programming Language :: Python :: 3.12",
25
24
  ]
26
25
 
27
26
  dependencies = [
28
- "a2a-python>=0.0.1",
29
- "aiohttp",
30
- "flask>=3.1.0",
31
27
  "google-auth",
32
- "mcp>=1.1.1",
33
28
  "pydantic",
34
- "pytest-asyncio>=1.0.0",
35
29
  "requests",
36
30
  "ruamel.yaml",
37
31
  "tenacity",
@@ -59,10 +53,12 @@ include = ["*"]
59
53
  [project.optional-dependencies]
60
54
  test = [
61
55
  "pytest",
56
+ "pytest-asyncio>=1.0.0",
62
57
  "pytest-cov",
63
58
  # any other test dependencies
64
59
  ]
65
60
  all = [
61
+ "a2a-python>=0.0.1",
66
62
  "aiofiles",
67
63
  "aiohttp",
68
64
  "anthropic[vertex]",
@@ -70,7 +66,8 @@ all = [
70
66
  "azure-identity",
71
67
  "azure-storage-blob",
72
68
  "fastapi",
73
- "flask",
69
+ "fastmcp>=2.12.0",
70
+ "flask>=3.1.0",
74
71
  "google-auth",
75
72
  "google-auth-httplib2",
76
73
  "google-auth-oauthlib",
@@ -113,6 +110,9 @@ all = [
113
110
  "psycopg2-binary",
114
111
  "pydantic",
115
112
  "pypdf",
113
+ "pytest",
114
+ "pytest-asyncio>=1.0.0",
115
+ "pytest-cov",
116
116
  "python-hcl2",
117
117
  "python-socketio",
118
118
  "pytesseract",
@@ -164,7 +164,7 @@ pipeline = [
164
164
  "unstructured[local-inference,all-docs]"
165
165
  ]
166
166
  gcp = [
167
- "a2a-python",
167
+ "a2a-python>=0.0.1",
168
168
  "aiofiles",
169
169
  "anthropic[vertex]",
170
170
  "google-api-python-client",
@@ -197,6 +197,7 @@ openai = [
197
197
  "tiktoken"
198
198
  ]
199
199
  anthropic = [
200
+ "fastmcp>=2.12.0",
200
201
  "langchain-anthropic>=0.1.23",
201
202
  "mcp>=1.1.1"
202
203
  ]
@@ -205,8 +206,9 @@ tools = [
205
206
  "playwright"
206
207
  ]
207
208
  http = [
209
+ "aiohttp",
208
210
  "fastapi",
209
- "flask",
211
+ "flask>=3.1.0",
210
212
  "gunicorn",
211
213
  "httpcore",
212
214
  "httpx",
@@ -15,12 +15,17 @@ from ..custom_logging import log
15
15
  from ..utils import ConfigManager
16
16
  from ..auth import get_header
17
17
  import requests
18
- import aiohttp
19
18
  from .langserve import prepare_request_data
20
19
  import traceback
21
20
  from .route import route_endpoint
22
21
  import os
23
22
 
23
+ try:
24
+ import aiohttp
25
+ AIOHTTP_AVAILABLE = True
26
+ except ImportError:
27
+ AIOHTTP_AVAILABLE = False
28
+
24
29
 
25
30
  def prep_request_payload(user_input, chat_history, vector_name, stream, **kwargs):
26
31
  """
@@ -177,7 +182,16 @@ async def send_to_qa_async(user_input, vector_name, chat_history, stream=False,
177
182
  async for response_chunk in send_to_qa_async("What is AI?", "my_vector", []):
178
183
  print(response_chunk)
179
184
  ```
180
- """
185
+
186
+ Raises:
187
+ ImportError: If aiohttp is not installed.
188
+ """
189
+ if not AIOHTTP_AVAILABLE:
190
+ raise ImportError(
191
+ "aiohttp is required for async operations. "
192
+ "Install it with: pip install aiohttp or pip install sunholo[http]"
193
+ )
194
+
181
195
  qna_endpoint, qna_data = prep_request_payload(user_input, chat_history, vector_name, stream, **kwargs)
182
196
  header = get_header(vector_name)
183
197
  header = add_header_ids(header, **kwargs)
@@ -0,0 +1,3 @@
1
+ from .qna_routes import register_qna_fastapi_routes
2
+ from .base import create_fastapi_app
3
+ from .vac_routes import VACRoutesFastAPI, VACRequest