sunholo 0.127.2__tar.gz → 0.128.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 (188) hide show
  1. {sunholo-0.127.2/src/sunholo.egg-info → sunholo-0.128.0}/PKG-INFO +1 -1
  2. {sunholo-0.127.2 → sunholo-0.128.0}/pyproject.toml +1 -1
  3. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/alloydb_client.py +59 -1
  4. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/chunker_handler.py +1 -2
  5. {sunholo-0.127.2 → sunholo-0.128.0/src/sunholo.egg-info}/PKG-INFO +1 -1
  6. {sunholo-0.127.2 → sunholo-0.128.0}/LICENSE.txt +0 -0
  7. {sunholo-0.127.2 → sunholo-0.128.0}/MANIFEST.in +0 -0
  8. {sunholo-0.127.2 → sunholo-0.128.0}/README.md +0 -0
  9. {sunholo-0.127.2 → sunholo-0.128.0}/setup.cfg +0 -0
  10. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/__init__.py +0 -0
  11. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/__init__.py +0 -0
  12. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/chat_history.py +0 -0
  13. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/dispatch_to_qa.py +0 -0
  14. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/fastapi/__init__.py +0 -0
  15. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/fastapi/base.py +0 -0
  16. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/fastapi/qna_routes.py +0 -0
  17. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/flask/__init__.py +0 -0
  18. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/flask/base.py +0 -0
  19. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/flask/qna_routes.py +0 -0
  20. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/flask/vac_routes.py +0 -0
  21. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/langserve.py +0 -0
  22. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/pubsub.py +0 -0
  23. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/route.py +0 -0
  24. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/special_commands.py +0 -0
  25. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/agents/swagger.py +0 -0
  26. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/archive/__init__.py +0 -0
  27. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/archive/archive.py +0 -0
  28. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/auth/__init__.py +0 -0
  29. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/auth/gcloud.py +0 -0
  30. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/auth/refresh.py +0 -0
  31. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/auth/run.py +0 -0
  32. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/azure/__init__.py +0 -0
  33. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/azure/auth.py +0 -0
  34. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/azure/blobs.py +0 -0
  35. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/azure/event_grid.py +0 -0
  36. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/bots/__init__.py +0 -0
  37. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/bots/discord.py +0 -0
  38. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/bots/github_webhook.py +0 -0
  39. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/bots/webapp.py +0 -0
  40. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/__init__.py +0 -0
  41. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/azure.py +0 -0
  42. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/doc_handling.py +0 -0
  43. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/encode_metadata.py +0 -0
  44. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/images.py +0 -0
  45. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/loaders.py +0 -0
  46. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/message_data.py +0 -0
  47. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/pdfs.py +0 -0
  48. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/process_chunker_data.py +0 -0
  49. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/publish.py +0 -0
  50. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/pubsub.py +0 -0
  51. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/chunker/splitter.py +0 -0
  52. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/__init__.py +0 -0
  53. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/chat_vac.py +0 -0
  54. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/cli.py +0 -0
  55. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/cli_init.py +0 -0
  56. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/configs.py +0 -0
  57. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/deploy.py +0 -0
  58. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/embedder.py +0 -0
  59. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/merge_texts.py +0 -0
  60. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/run_proxy.py +0 -0
  61. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/sun_rich.py +0 -0
  62. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/swagger.py +0 -0
  63. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/cli/vertex.py +0 -0
  64. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/components/__init__.py +0 -0
  65. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/components/llm.py +0 -0
  66. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/components/retriever.py +0 -0
  67. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/components/vectorstore.py +0 -0
  68. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/custom_logging.py +0 -0
  69. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/__init__.py +0 -0
  70. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/alloydb.py +0 -0
  71. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/database.py +0 -0
  72. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/lancedb.py +0 -0
  73. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/create_function.sql +0 -0
  74. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/create_function_time.sql +0 -0
  75. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/create_table.sql +0 -0
  76. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/delete_source_row.sql +0 -0
  77. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/return_sources.sql +0 -0
  78. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/sql/sb/setup.sql +0 -0
  79. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/static_dbs.py +0 -0
  80. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/database/uuid.py +0 -0
  81. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/__init__.py +0 -0
  82. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/cli.py +0 -0
  83. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/create_new.py +0 -0
  84. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/discovery_engine_client.py +0 -0
  85. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/discovery_engine/get_ai_search_chunks.py +0 -0
  86. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/embedder/__init__.py +0 -0
  87. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/embedder/embed_chunk.py +0 -0
  88. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/embedder/embed_metadata.py +0 -0
  89. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/excel/__init__.py +0 -0
  90. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/excel/plugin.py +0 -0
  91. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/__init__.py +0 -0
  92. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/add_file.py +0 -0
  93. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/download_folder.py +0 -0
  94. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/download_url.py +0 -0
  95. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/extract_and_sign.py +0 -0
  96. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/gcs/metadata.py +0 -0
  97. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/__init__.py +0 -0
  98. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/file_handling.py +0 -0
  99. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/genaiv2.py +0 -0
  100. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/images.py +0 -0
  101. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/init.py +0 -0
  102. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/process_funcs_cls.py +0 -0
  103. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/genai/safety.py +0 -0
  104. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/invoke/__init__.py +0 -0
  105. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/invoke/async_class.py +0 -0
  106. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/invoke/direct_vac_func.py +0 -0
  107. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/invoke/invoke_vac_utils.py +0 -0
  108. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/langchain_types.py +0 -0
  109. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/langfuse/__init__.py +0 -0
  110. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/langfuse/callback.py +0 -0
  111. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/langfuse/evals.py +0 -0
  112. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/langfuse/prompts.py +0 -0
  113. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/llamaindex/__init__.py +0 -0
  114. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/llamaindex/get_files.py +0 -0
  115. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/llamaindex/import_files.py +0 -0
  116. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/llamaindex/llamaindex_class.py +0 -0
  117. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/llamaindex/user_history.py +0 -0
  118. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/lookup/__init__.py +0 -0
  119. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/lookup/model_lookup.yaml +0 -0
  120. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/mcp/__init__.py +0 -0
  121. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/mcp/cli.py +0 -0
  122. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/ollama/__init__.py +0 -0
  123. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/ollama/ollama_images.py +0 -0
  124. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/pubsub/__init__.py +0 -0
  125. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/pubsub/process_pubsub.py +0 -0
  126. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/pubsub/pubsub_manager.py +0 -0
  127. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/qna/__init__.py +0 -0
  128. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/qna/parsers.py +0 -0
  129. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/qna/retry.py +0 -0
  130. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/senses/__init__.py +0 -0
  131. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/senses/stream_voice.py +0 -0
  132. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/streaming/__init__.py +0 -0
  133. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/streaming/content_buffer.py +0 -0
  134. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/streaming/langserve.py +0 -0
  135. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/streaming/stream_lookup.py +0 -0
  136. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/streaming/streaming.py +0 -0
  137. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/summarise/__init__.py +0 -0
  138. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/summarise/summarise.py +0 -0
  139. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/__init__.py +0 -0
  140. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/agent_service.py +0 -0
  141. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/app.py +0 -0
  142. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/my_log.py +0 -0
  143. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/tools/__init__.py +0 -0
  144. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/tools/your_agent.py +0 -0
  145. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/agent/vac_service.py +0 -0
  146. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/project/__init__.py +0 -0
  147. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/project/app.py +0 -0
  148. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/project/my_log.py +0 -0
  149. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/project/vac_service.py +0 -0
  150. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/system_services/__init__.py +0 -0
  151. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/system_services/app.py +0 -0
  152. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/templates/system_services/my_log.py +0 -0
  153. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/terraform/__init__.py +0 -0
  154. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/terraform/tfvars_editor.py +0 -0
  155. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/tools/__init__.py +0 -0
  156. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/tools/web_browser.py +0 -0
  157. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/__init__.py +0 -0
  158. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/api_key.py +0 -0
  159. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/big_context.py +0 -0
  160. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/config.py +0 -0
  161. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/config_class.py +0 -0
  162. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/config_schema.py +0 -0
  163. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/gcp.py +0 -0
  164. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/gcp_project.py +0 -0
  165. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/mime.py +0 -0
  166. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/parsers.py +0 -0
  167. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/timedelta.py +0 -0
  168. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/user_ids.py +0 -0
  169. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/utils/version.py +0 -0
  170. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/__init__.py +0 -0
  171. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/extensions_call.py +0 -0
  172. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/extensions_class.py +0 -0
  173. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/genai_functions.py +0 -0
  174. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/init.py +0 -0
  175. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/memory_tools.py +0 -0
  176. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/safety.py +0 -0
  177. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo/vertex/type_dict_to_json.py +0 -0
  178. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo.egg-info/SOURCES.txt +0 -0
  179. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo.egg-info/dependency_links.txt +0 -0
  180. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo.egg-info/entry_points.txt +0 -0
  181. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo.egg-info/requires.txt +0 -0
  182. {sunholo-0.127.2 → sunholo-0.128.0}/src/sunholo.egg-info/top_level.txt +0 -0
  183. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_async.py +0 -0
  184. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_async_genai2.py +0 -0
  185. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_chat_history.py +0 -0
  186. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_config.py +0 -0
  187. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_genai2.py +0 -0
  188. {sunholo-0.127.2 → sunholo-0.128.0}/tests/test_unstructured.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.127.2
3
+ Version: 0.128.0
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sunholo"
7
- version = "0.127.2"
7
+ version = "0.128.0"
8
8
  description = "Large Language Model DevOps - a package to help deploy LLMs to the Cloud."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -883,6 +883,64 @@ class AlloyDBClient:
883
883
  log.info(f"Inserted data into table {table_name}")
884
884
 
885
885
  return result
886
+
887
+ async def update_row(self, table_name: str, primary_key_column: str, primary_key_value: str,
888
+ update_data: dict, condition: str = None):
889
+ """
890
+ Updates a row in the specified table based on the primary key.
891
+
892
+ Args:
893
+ table_name (str): Name of the table to update
894
+ primary_key_column (str): Name of the primary key column (e.g., 'acdid')
895
+ primary_key_value (str): Value of the primary key for the row to update
896
+ update_data (dict): Dictionary containing column names and values to update
897
+ condition (str, optional): Additional condition for the WHERE clause
898
+
899
+ Returns:
900
+ Result of SQL execution
901
+ """
902
+ if not update_data:
903
+ raise ValueError("No update data provided")
904
+
905
+ # Generate SET clause parts
906
+ set_parts = []
907
+ processed_values = {}
908
+
909
+ for i, (key, value) in enumerate(update_data.items()):
910
+ # Create a unique parameter name
911
+ param_name = f"param_{i}"
912
+ # For JSON values, convert to string
913
+ if isinstance(value, (dict, list)):
914
+ processed_values[param_name] = json.dumps(value)
915
+ else:
916
+ processed_values[param_name] = value
917
+
918
+ set_parts.append(f'"{key}" = :{param_name}')
919
+
920
+ # Create the WHERE clause
921
+ where_clause = f'"{primary_key_column}" = :pk_value'
922
+ processed_values['pk_value'] = primary_key_value
923
+
924
+ if condition:
925
+ where_clause += f" AND ({condition})"
926
+
927
+ # Construct the SQL statement
928
+ set_clause = ", ".join(set_parts)
929
+ sql = f'UPDATE "{table_name}" SET {set_clause} WHERE {where_clause} RETURNING {primary_key_column}'
930
+
931
+ log.info(f"Executing update on {table_name} for {primary_key_column}={primary_key_value}")
932
+
933
+ # Execute SQL based on engine type
934
+ if self.engine_type == "pg8000":
935
+ # Use the synchronous method for pg8000
936
+ result = self._execute_sql_pg8000(sql, processed_values)
937
+ else:
938
+ # Use the async method for langchain
939
+ result = await self._execute_sql_async_langchain(sql, processed_values)
940
+
941
+ log.info(f"Updated row in {table_name} with {primary_key_column}={primary_key_value}")
942
+
943
+ return result
886
944
 
887
945
  async def get_table_columns(self, table_name, schema="public"):
888
946
  """
@@ -1150,7 +1208,7 @@ class AlloyDBClient:
1150
1208
  results['errors'].append(error_info)
1151
1209
  results['failed_rows'] += 1
1152
1210
 
1153
- log.error(f"Error inserting row {i}: {e}")
1211
+ log.error(f"Error inserting row {i}: {e} for data: {row}")
1154
1212
 
1155
1213
  if not continue_on_error:
1156
1214
  results['success'] = False
@@ -136,6 +136,7 @@ def check_write_memories(config:ConfigManager):
136
136
 
137
137
  return write_mem
138
138
 
139
+
139
140
  def discovery_engine_chunker_check(message_data,
140
141
  metadata,
141
142
  vector_name:str=None,
@@ -172,8 +173,6 @@ def discovery_engine_chunker_check(message_data,
172
173
  except Exception as err:
173
174
  log.error(f"Error processing discovery engine: {str(err)} {traceback.format_exc()}")
174
175
  disc_meta = None
175
-
176
- return disc_meta
177
176
 
178
177
  # If discovery engine is the only entry, return
179
178
  if total_discovery_memories == total_memories:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sunholo
3
- Version: 0.127.2
3
+ Version: 0.128.0
4
4
  Summary: Large Language Model DevOps - a package to help deploy LLMs to the Cloud.
5
5
  Author-email: Holosun ApS <multivac@sunholo.com>
6
6
  License: Apache License, Version 2.0
File without changes
File without changes
File without changes
File without changes
File without changes