sunholo 0.116.2__tar.gz → 0.118.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 (187) hide show
  1. {sunholo-0.116.2 → sunholo-0.118.1}/PKG-INFO +15 -7
  2. sunholo-0.118.1/pyproject.toml +216 -0
  3. sunholo-0.118.1/setup.cfg +4 -0
  4. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/message_data.py +1 -1
  5. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/pdfs.py +1 -1
  6. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/publish.py +1 -1
  7. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/cli_init.py +1 -1
  8. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/__init__.py +2 -1
  9. sunholo-0.118.1/src/sunholo/genai/genaiv2.py +542 -0
  10. sunholo-0.116.2/sunholo/types.py → sunholo-0.118.1/src/sunholo/langchain_types.py +5 -5
  11. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/langfuse/evals.py +2 -1
  12. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/mcp/cli.py +0 -2
  13. sunholo-0.118.1/src/sunholo/templates/agent/__init__.py +0 -0
  14. sunholo-0.118.1/src/sunholo/templates/agent/agent_service.py +157 -0
  15. sunholo-0.118.1/src/sunholo/templates/agent/app.py +16 -0
  16. sunholo-0.118.1/src/sunholo/templates/agent/my_log.py +3 -0
  17. sunholo-0.118.1/src/sunholo/templates/agent/tools/__init__.py +0 -0
  18. sunholo-0.118.1/src/sunholo/templates/agent/tools/your_agent.py +78 -0
  19. sunholo-0.118.1/src/sunholo/templates/agent/vac_service.py +73 -0
  20. sunholo-0.118.1/src/sunholo/templates/project/__init__.py +0 -0
  21. sunholo-0.118.1/src/sunholo/templates/project/app.py +17 -0
  22. sunholo-0.118.1/src/sunholo/templates/project/my_log.py +3 -0
  23. sunholo-0.118.1/src/sunholo/templates/project/vac_service.py +71 -0
  24. sunholo-0.118.1/src/sunholo/templates/system_services/__init__.py +0 -0
  25. sunholo-0.118.1/src/sunholo/templates/system_services/app.py +49 -0
  26. sunholo-0.118.1/src/sunholo/templates/system_services/my_log.py +3 -0
  27. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/big_context.py +11 -4
  28. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo.egg-info/PKG-INFO +15 -7
  29. sunholo-0.118.1/src/sunholo.egg-info/SOURCES.txt +182 -0
  30. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo.egg-info/requires.txt +11 -1
  31. sunholo-0.118.1/tests/test_async_genai2.py +39 -0
  32. sunholo-0.118.1/tests/test_genai2.py +125 -0
  33. sunholo-0.116.2/setup.cfg +0 -16
  34. sunholo-0.116.2/setup.py +0 -207
  35. sunholo-0.116.2/sunholo.egg-info/SOURCES.txt +0 -166
  36. {sunholo-0.116.2 → sunholo-0.118.1}/LICENSE.txt +0 -0
  37. {sunholo-0.116.2 → sunholo-0.118.1}/MANIFEST.in +0 -0
  38. {sunholo-0.116.2 → sunholo-0.118.1}/README.md +0 -0
  39. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/__init__.py +0 -0
  40. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/__init__.py +0 -0
  41. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/chat_history.py +0 -0
  42. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/dispatch_to_qa.py +0 -0
  43. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/fastapi/__init__.py +0 -0
  44. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/fastapi/base.py +0 -0
  45. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/fastapi/qna_routes.py +0 -0
  46. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/flask/__init__.py +0 -0
  47. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/flask/base.py +0 -0
  48. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/flask/qna_routes.py +0 -0
  49. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/flask/vac_routes.py +0 -0
  50. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/langserve.py +0 -0
  51. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/pubsub.py +0 -0
  52. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/route.py +0 -0
  53. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/special_commands.py +0 -0
  54. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/agents/swagger.py +0 -0
  55. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/archive/__init__.py +0 -0
  56. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/archive/archive.py +0 -0
  57. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/auth/__init__.py +0 -0
  58. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/auth/gcloud.py +0 -0
  59. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/auth/refresh.py +0 -0
  60. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/auth/run.py +0 -0
  61. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/azure/__init__.py +0 -0
  62. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/azure/auth.py +0 -0
  63. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/azure/blobs.py +0 -0
  64. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/azure/event_grid.py +0 -0
  65. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/bots/__init__.py +0 -0
  66. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/bots/discord.py +0 -0
  67. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/bots/github_webhook.py +0 -0
  68. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/bots/webapp.py +0 -0
  69. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/__init__.py +0 -0
  70. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/azure.py +0 -0
  71. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/doc_handling.py +0 -0
  72. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/encode_metadata.py +0 -0
  73. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/images.py +0 -0
  74. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/loaders.py +0 -0
  75. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/process_chunker_data.py +0 -0
  76. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/pubsub.py +0 -0
  77. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/chunker/splitter.py +0 -0
  78. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/__init__.py +0 -0
  79. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/chat_vac.py +0 -0
  80. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/cli.py +0 -0
  81. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/configs.py +0 -0
  82. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/deploy.py +0 -0
  83. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/embedder.py +0 -0
  84. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/merge_texts.py +0 -0
  85. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/run_proxy.py +0 -0
  86. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/sun_rich.py +0 -0
  87. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/swagger.py +0 -0
  88. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/cli/vertex.py +0 -0
  89. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/components/__init__.py +0 -0
  90. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/components/llm.py +0 -0
  91. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/components/retriever.py +0 -0
  92. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/components/vectorstore.py +0 -0
  93. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/custom_logging.py +0 -0
  94. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/__init__.py +0 -0
  95. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/alloydb.py +0 -0
  96. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/alloydb_client.py +0 -0
  97. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/database.py +0 -0
  98. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/lancedb.py +0 -0
  99. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/create_function.sql +0 -0
  100. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/create_function_time.sql +0 -0
  101. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/create_table.sql +0 -0
  102. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  103. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/return_sources.sql +0 -0
  104. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/sql/sb/setup.sql +0 -0
  105. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/static_dbs.py +0 -0
  106. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/database/uuid.py +0 -0
  107. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/discovery_engine/__init__.py +0 -0
  108. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/discovery_engine/chunker_handler.py +0 -0
  109. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/discovery_engine/create_new.py +0 -0
  110. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  111. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  112. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/embedder/__init__.py +0 -0
  113. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/embedder/embed_chunk.py +0 -0
  114. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/excel/__init__.py +0 -0
  115. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/excel/plugin.py +0 -0
  116. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/__init__.py +0 -0
  117. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/add_file.py +0 -0
  118. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/download_folder.py +0 -0
  119. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/download_url.py +0 -0
  120. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/extract_and_sign.py +0 -0
  121. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/gcs/metadata.py +0 -0
  122. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/file_handling.py +0 -0
  123. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/images.py +0 -0
  124. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/init.py +0 -0
  125. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/process_funcs_cls.py +0 -0
  126. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/genai/safety.py +0 -0
  127. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/invoke/__init__.py +0 -0
  128. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/invoke/async_class.py +0 -0
  129. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/invoke/direct_vac_func.py +0 -0
  130. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/invoke/invoke_vac_utils.py +0 -0
  131. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/langfuse/__init__.py +0 -0
  132. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/langfuse/callback.py +0 -0
  133. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/langfuse/prompts.py +0 -0
  134. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/llamaindex/__init__.py +0 -0
  135. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/llamaindex/get_files.py +0 -0
  136. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/llamaindex/import_files.py +0 -0
  137. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/llamaindex/llamaindex_class.py +0 -0
  138. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/llamaindex/user_history.py +0 -0
  139. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/lookup/__init__.py +0 -0
  140. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/lookup/model_lookup.yaml +0 -0
  141. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/mcp/__init__.py +0 -0
  142. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/pubsub/__init__.py +0 -0
  143. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/pubsub/process_pubsub.py +0 -0
  144. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/pubsub/pubsub_manager.py +0 -0
  145. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/qna/__init__.py +0 -0
  146. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/qna/parsers.py +0 -0
  147. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/qna/retry.py +0 -0
  148. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/senses/__init__.py +0 -0
  149. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/senses/stream_voice.py +0 -0
  150. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/streaming/__init__.py +0 -0
  151. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/streaming/content_buffer.py +0 -0
  152. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/streaming/langserve.py +0 -0
  153. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/streaming/stream_lookup.py +0 -0
  154. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/streaming/streaming.py +0 -0
  155. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/summarise/__init__.py +0 -0
  156. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/summarise/summarise.py +0 -0
  157. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/terraform/__init__.py +0 -0
  158. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/terraform/tfvars_editor.py +0 -0
  159. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/tools/__init__.py +0 -0
  160. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/tools/web_browser.py +0 -0
  161. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/__init__.py +0 -0
  162. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/api_key.py +0 -0
  163. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/config.py +0 -0
  164. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/config_class.py +0 -0
  165. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/config_schema.py +0 -0
  166. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/gcp.py +0 -0
  167. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/gcp_project.py +0 -0
  168. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/mime.py +0 -0
  169. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/parsers.py +0 -0
  170. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/timedelta.py +0 -0
  171. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/user_ids.py +0 -0
  172. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/utils/version.py +0 -0
  173. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/__init__.py +0 -0
  174. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/extensions_call.py +0 -0
  175. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/extensions_class.py +0 -0
  176. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/genai_functions.py +0 -0
  177. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/init.py +0 -0
  178. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/memory_tools.py +0 -0
  179. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/safety.py +0 -0
  180. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo/vertex/type_dict_to_json.py +0 -0
  181. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo.egg-info/dependency_links.txt +0 -0
  182. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo.egg-info/entry_points.txt +0 -0
  183. {sunholo-0.116.2 → sunholo-0.118.1/src}/sunholo.egg-info/top_level.txt +0 -0
  184. {sunholo-0.116.2 → sunholo-0.118.1}/tests/test_async.py +0 -0
  185. {sunholo-0.116.2 → sunholo-0.118.1}/tests/test_chat_history.py +0 -0
  186. {sunholo-0.116.2 → sunholo-0.118.1}/tests/test_config.py +0 -0
  187. {sunholo-0.116.2 → sunholo-0.118.1}/tests/test_unstructured.py +0 -0
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: sunholo
3
- Version: 0.116.2
3
+ Version: 0.118.1
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
- Home-page: https://github.com/sunholo-data/sunholo-py
6
- Download-URL: https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.116.2.tar.gz
7
- Author: Holosun ApS
8
- Author-email: multivac@sunholo.com
5
+ Author-email: Holosun ApS <multivac@sunholo.com>
9
6
  License: Apache License, Version 2.0
7
+ Project-URL: Homepage, https://github.com/sunholo-data/sunholo-py
8
+ Project-URL: Download, https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.118.0.tar.gz
10
9
  Keywords: llms,devops,google_cloud_platform
11
10
  Classifier: Development Status :: 3 - Alpha
12
11
  Classifier: Intended Audience :: Developers
@@ -16,6 +15,7 @@ Classifier: Programming Language :: Python :: 3
16
15
  Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Requires-Python: >=3.10
19
19
  Description-Content-Type: text/markdown
20
20
  License-File: LICENSE.txt
21
21
  Requires-Dist: aiohttp
@@ -24,6 +24,9 @@ Requires-Dist: pydantic
24
24
  Requires-Dist: requests
25
25
  Requires-Dist: ruamel.yaml
26
26
  Requires-Dist: tenacity
27
+ Provides-Extra: test
28
+ Requires-Dist: pytest; extra == "test"
29
+ Requires-Dist: pytest-cov; extra == "test"
27
30
  Provides-Extra: all
28
31
  Requires-Dist: aiohttp; extra == "all"
29
32
  Requires-Dist: anthropic[vertex]; extra == "all"
@@ -47,6 +50,7 @@ Requires-Dist: google-cloud-pubsub; extra == "all"
47
50
  Requires-Dist: google-cloud-discoveryengine; extra == "all"
48
51
  Requires-Dist: google-cloud-texttospeech; extra == "all"
49
52
  Requires-Dist: google-generativeai>=0.7.1; extra == "all"
53
+ Requires-Dist: google-genai; extra == "all"
50
54
  Requires-Dist: gunicorn; extra == "all"
51
55
  Requires-Dist: httpcore; extra == "all"
52
56
  Requires-Dist: httpx; extra == "all"
@@ -64,6 +68,7 @@ Requires-Dist: langchain-unstructured; extra == "all"
64
68
  Requires-Dist: langfuse; extra == "all"
65
69
  Requires-Dist: mcp; extra == "all"
66
70
  Requires-Dist: numpy; extra == "all"
71
+ Requires-Dist: opencv-python; extra == "all"
67
72
  Requires-Dist: pg8000; extra == "all"
68
73
  Requires-Dist: pgvector; extra == "all"
69
74
  Requires-Dist: pillow; extra == "all"
@@ -118,9 +123,9 @@ Requires-Dist: unstructured[all-docs,local-inference]; extra == "pipeline"
118
123
  Provides-Extra: gcp
119
124
  Requires-Dist: anthropic[vertex]; extra == "gcp"
120
125
  Requires-Dist: google-api-python-client; extra == "gcp"
121
- Requires-Dist: google-cloud-alloydb-connector[pg8000]; extra == "gcp"
122
126
  Requires-Dist: google-auth-httplib2; extra == "gcp"
123
127
  Requires-Dist: google-auth-oauthlib; extra == "gcp"
128
+ Requires-Dist: google-cloud-alloydb-connector[pg8000]; extra == "gcp"
124
129
  Requires-Dist: google-cloud-aiplatform>=1.58.0; extra == "gcp"
125
130
  Requires-Dist: google-cloud-bigquery; extra == "gcp"
126
131
  Requires-Dist: google-cloud-build; extra == "gcp"
@@ -130,6 +135,7 @@ Requires-Dist: google-cloud-logging; extra == "gcp"
130
135
  Requires-Dist: google-cloud-pubsub; extra == "gcp"
131
136
  Requires-Dist: google-cloud-discoveryengine; extra == "gcp"
132
137
  Requires-Dist: google-cloud-texttospeech; extra == "gcp"
138
+ Requires-Dist: google-genai; extra == "gcp"
133
139
  Requires-Dist: google-generativeai>=0.8.3; extra == "gcp"
134
140
  Requires-Dist: langchain-google-genai>=2.0.0; extra == "gcp"
135
141
  Requires-Dist: langchain_google_alloydb_pg>=0.2.2; extra == "gcp"
@@ -164,6 +170,8 @@ Provides-Extra: tts
164
170
  Requires-Dist: google-cloud-texttospeech; extra == "tts"
165
171
  Requires-Dist: numpy; extra == "tts"
166
172
  Requires-Dist: sounddevice; extra == "tts"
173
+ Provides-Extra: video
174
+ Requires-Dist: opencv-python; extra == "video"
167
175
 
168
176
  [![PyPi Version](https://img.shields.io/pypi/v/sunholo.svg)](https://pypi.python.org/pypi/sunholo/)
169
177
 
@@ -0,0 +1,216 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "sunholo"
7
+ version = "0.118.1"
8
+ description = "Large Language Model DevOps - a package to help deploy LLMs to the Cloud."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "Apache License, Version 2.0" }
12
+ authors = [
13
+ { name = "Holosun ApS", email = "multivac@sunholo.com" },
14
+ ]
15
+ keywords = ["llms", "devops", "google_cloud_platform"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "Topic :: Software Development :: Build Tools",
20
+ "License :: OSI Approved :: Apache Software License",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ ]
26
+
27
+ dependencies = [
28
+ "aiohttp",
29
+ "google-auth",
30
+ "pydantic",
31
+ "requests",
32
+ "ruamel.yaml",
33
+ "tenacity"
34
+ ]
35
+
36
+ [project.urls]
37
+ Homepage = "https://github.com/sunholo-data/sunholo-py"
38
+ Download = "https://github.com/sunholo-data/sunholo-py/archive/refs/tags/v0.118.0.tar.gz"
39
+
40
+ [project.scripts]
41
+ sunholo = "sunholo.cli.cli:main"
42
+
43
+ [tool.setuptools]
44
+ package-dir = {"" = "src"}
45
+
46
+ [tool.setuptools.packages.find]
47
+ where = ["src"]
48
+ include = ["*"]
49
+
50
+ [tool.setuptools.package-data]
51
+ "sunholo.database" = ["sql/sb/*.sql"]
52
+ "sunholo.lookup" = ["*.yaml"]
53
+ "sunholo.templates" = ["*.*"]
54
+
55
+ [project.optional-dependencies]
56
+ test = [
57
+ "pytest",
58
+ "pytest-cov",
59
+ # any other test dependencies
60
+ ]
61
+ all = [
62
+ "aiohttp",
63
+ "anthropic[vertex]",
64
+ "asyncpg",
65
+ "azure-identity",
66
+ "azure-storage-blob",
67
+ "fastapi",
68
+ "flask",
69
+ "google-auth",
70
+ "google-auth-httplib2",
71
+ "google-auth-oauthlib",
72
+ "google-cloud-aiplatform>=1.58.0",
73
+ "google-api-python-client",
74
+ "google-cloud-alloydb-connector[pg8000]",
75
+ "google-cloud-bigquery",
76
+ "google-cloud-build",
77
+ "google-cloud-service-control",
78
+ "google-cloud-logging",
79
+ "google-cloud-storage",
80
+ "google-cloud-pubsub",
81
+ "google-cloud-discoveryengine",
82
+ "google-cloud-texttospeech",
83
+ "google-generativeai>=0.7.1",
84
+ "google-genai",
85
+ "gunicorn",
86
+ "httpcore",
87
+ "httpx",
88
+ "jsonschema",
89
+ "lancedb",
90
+ "langchain>=0.2.16",
91
+ "langchain-experimental>=0.0.61",
92
+ "langchain-community>=0.2.11",
93
+ "langchain-openai==0.1.25",
94
+ "langchain-google-genai==1.0.10",
95
+ "langchain_google_alloydb_pg",
96
+ "langchain-anthropic==0.1.23",
97
+ "langchain-google-vertexai",
98
+ "langchain-unstructured",
99
+ "langfuse",
100
+ "mcp",
101
+ "numpy",
102
+ "opencv-python",
103
+ "pg8000",
104
+ "pgvector",
105
+ "pillow",
106
+ "playwright",
107
+ "psutil",
108
+ "psycopg2-binary",
109
+ "pydantic",
110
+ "pypdf",
111
+ "python-hcl2",
112
+ "python-socketio",
113
+ "pytesseract",
114
+ "requests",
115
+ "rich",
116
+ "sounddevice",
117
+ "supabase",
118
+ "tabulate",
119
+ "tantivy",
120
+ "tenacity",
121
+ "tiktoken",
122
+ "unstructured[local-inference,all-docs]",
123
+ "xlwings"
124
+ ]
125
+ langchain = [
126
+ "langchain",
127
+ "langchain_experimental",
128
+ "langchain-community",
129
+ "langsmith"
130
+ ]
131
+ azure = [
132
+ "azure-identity",
133
+ "azure-storage-blob"
134
+ ]
135
+ cli = [
136
+ "jsonschema>=4.21.1",
137
+ "rich"
138
+ ]
139
+ database = [
140
+ "asyncpg",
141
+ "supabase",
142
+ "sqlalchemy",
143
+ "pg8000",
144
+ "pgvector",
145
+ "psycopg2-binary",
146
+ "lancedb",
147
+ "tantivy"
148
+ ]
149
+ pipeline = [
150
+ "GitPython",
151
+ "lark",
152
+ "langchain>=0.2.16",
153
+ "langchain-unstructured",
154
+ "psutil",
155
+ "pypdf",
156
+ "pytesseract",
157
+ "tabulate",
158
+ "unstructured[local-inference,all-docs]"
159
+ ]
160
+ gcp = [
161
+ "anthropic[vertex]",
162
+ "google-api-python-client",
163
+ "google-auth-httplib2",
164
+ "google-auth-oauthlib",
165
+ "google-cloud-alloydb-connector[pg8000]",
166
+ "google-cloud-aiplatform>=1.58.0",
167
+ "google-cloud-bigquery",
168
+ "google-cloud-build",
169
+ "google-cloud-service-control",
170
+ "google-cloud-storage",
171
+ "google-cloud-logging",
172
+ "google-cloud-pubsub",
173
+ "google-cloud-discoveryengine",
174
+ "google-cloud-texttospeech",
175
+ "google-genai",
176
+ "google-generativeai>=0.8.3",
177
+ "langchain-google-genai>=2.0.0",
178
+ "langchain_google_alloydb_pg>=0.2.2",
179
+ "langchain-google-vertexai",
180
+ "pillow"
181
+ ]
182
+ openai = [
183
+ "langchain-openai==0.1.25",
184
+ "tiktoken"
185
+ ]
186
+ anthropic = [
187
+ "langchain-anthropic>=0.1.23",
188
+ "mcp"
189
+ ]
190
+ tools = [
191
+ "openapi-spec-validator",
192
+ "playwright"
193
+ ]
194
+ http = [
195
+ "fastapi",
196
+ "flask",
197
+ "gunicorn",
198
+ "httpcore",
199
+ "httpx",
200
+ "langfuse",
201
+ "python-socketio",
202
+ "requests",
203
+ "tenacity"
204
+ ]
205
+ excel = [
206
+ "xlwings",
207
+ "requests",
208
+ "rich"
209
+ ]
210
+ iac = ["python-hcl2"]
211
+ tts = [
212
+ "google-cloud-texttospeech",
213
+ "numpy",
214
+ "sounddevice"
215
+ ]
216
+ video = ["opencv-python"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -29,7 +29,7 @@ try:
29
29
  except ImportError:
30
30
  BlobServiceClient = None
31
31
 
32
- from ..types import Document
32
+ from ..langchain_types import Document
33
33
 
34
34
  from .splitter import chunk_doc_to_docs
35
35
  from .pdfs import split_pdf_to_pages
@@ -14,7 +14,7 @@
14
14
  import os
15
15
  import pathlib
16
16
  from ..custom_logging import log
17
- from ..types import Document
17
+ from ..langchain_types import Document
18
18
 
19
19
  def split_pdf_to_pages(pdf_path, temp_dir):
20
20
 
@@ -2,7 +2,7 @@ from ..custom_logging import log
2
2
  from ..pubsub import PubSubManager
3
3
  from ..utils.parsers import contains_url, extract_urls
4
4
  from ..utils.gcp_project import get_gcp_project
5
- from ..types import Document
5
+ from ..langchain_types import Document
6
6
 
7
7
  def publish_if_urls(the_content, vector_name):
8
8
  """
@@ -200,7 +200,7 @@ def write_vac_config(project_dir: str, service_name: str):
200
200
 
201
201
  # Write the YAML configuration to the file
202
202
  with open(vac_config_path, 'w') as file:
203
- yaml.dump(vac_config_content, file, default_flow_style=False)
203
+ yaml.dump(vac_config_content, file)
204
204
 
205
205
  print(f"{vac_config_path} written successfully with service name '{service_name}'.")
206
206
 
@@ -1,4 +1,5 @@
1
1
  from .process_funcs_cls import GenAIFunctionProcessor
2
2
  from .safety import genai_safety
3
3
  from .init import init_genai
4
- from .file_handling import download_gcs_upload_genai, construct_file_content
4
+ from .file_handling import download_gcs_upload_genai, construct_file_content
5
+ from .genaiv2 import GoogleAI, GoogleAIConfig