tako-sdk 2.2.2__tar.gz → 2.2.4__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 (213) hide show
  1. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/PKG-INFO +3 -4
  2. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/pyproject.toml +5 -6
  3. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/__init__.py +4 -0
  4. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/__init__.py +4 -0
  5. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/api_client.py +1 -1
  6. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/configuration.py +1 -1
  7. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/__init__.py +2 -0
  8. tako_sdk-2.2.4/tako/aio/models/data_freshness.py +100 -0
  9. {tako_sdk-2.2.2/tako → tako_sdk-2.2.4/tako/aio}/models/knowledge_card_methodology.py +1 -1
  10. tako_sdk-2.2.4/tako/aio/models/metric_definition.py +90 -0
  11. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_card.py +28 -2
  12. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/api_client.py +1 -1
  13. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/configuration.py +1 -1
  14. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/dataset.py +3 -2
  15. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/__init__.py +2 -0
  16. tako_sdk-2.2.4/tako/models/data_freshness.py +100 -0
  17. {tako_sdk-2.2.2/tako/aio → tako_sdk-2.2.4/tako}/models/knowledge_card_methodology.py +1 -1
  18. tako_sdk-2.2.4/tako/models/metric_definition.py +90 -0
  19. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_card.py +28 -2
  20. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/.gitignore +0 -0
  21. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/LICENSE +0 -0
  22. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/README.md +0 -0
  23. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/api/__init__.py +0 -0
  24. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/api/agent_api.py +0 -0
  25. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/api/tako_api.py +0 -0
  26. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/api_response.py +0 -0
  27. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/exceptions.py +0 -0
  28. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_answer_assumption.py +0 -0
  29. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_answer_citation.py +0 -0
  30. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_answer_definition.py +0 -0
  31. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_answer_metadata.py +0 -0
  32. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_answer_methodology_note.py +0 -0
  33. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_output_settings.py +0 -0
  34. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/agent_run_status.py +0 -0
  35. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_effort.py +0 -0
  36. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_metadata.py +0 -0
  37. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_result.py +0 -0
  38. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_result_event.py +0 -0
  39. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_run.py +0 -0
  40. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_run_list.py +0 -0
  41. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_run_request.py +0 -0
  42. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_run_summary.py +0 -0
  43. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_agent_stream_envelope.py +0 -0
  44. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/answer_response.py +0 -0
  45. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/api_error_type.py +0 -0
  46. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/base_api_error.py +0 -0
  47. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/block.py +0 -0
  48. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/block1.py +0 -0
  49. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/component_config.py +0 -0
  50. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/component_type_enum.py +0 -0
  51. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/content_item.py +0 -0
  52. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/contents_delivery_mode.py +0 -0
  53. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/contents_format.py +0 -0
  54. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/contents_request.py +0 -0
  55. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/contents_response.py +0 -0
  56. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/create_card400_response.py +0 -0
  57. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/create_card_request.py +0 -0
  58. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/data_pipeline_answer_event.py +0 -0
  59. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/data_source_settings.py +0 -0
  60. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/entity_class_name.py +0 -0
  61. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/error_object.py +0 -0
  62. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/export_pricing.py +0 -0
  63. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_node.py +0 -0
  64. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_node_type.py +0 -0
  65. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_related_response.py +0 -0
  66. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_relation.py +0 -0
  67. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_relation_page.py +0 -0
  68. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/graph_search_response.py +0 -0
  69. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/heartbeat_event.py +0 -0
  70. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/knowledge_card_relevance.py +0 -0
  71. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/ner_label.py +0 -0
  72. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/output_settings.py +0 -0
  73. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/reasoning_event.py +0 -0
  74. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/relation_kind.py +0 -0
  75. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/result_content.py +0 -0
  76. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/rows_inner_inner.py +0 -0
  77. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/run_summary_event.py +0 -0
  78. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_effort.py +0 -0
  79. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_result.py +0 -0
  80. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_result_event.py +0 -0
  81. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_run.py +0 -0
  82. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_run_list.py +0 -0
  83. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_run_request.py +0 -0
  84. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_run_summary.py +0 -0
  85. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_agent_stream_envelope.py +0 -0
  86. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_effort_level.py +0 -0
  87. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_request.py +0 -0
  88. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/search_response.py +0 -0
  89. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/source_settings.py +0 -0
  90. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/sources.py +0 -0
  91. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/status_event.py +0 -0
  92. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/stream_category.py +0 -0
  93. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/stream_done_event.py +0 -0
  94. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/stream_reset_event.py +0 -0
  95. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/structured_output_status.py +0 -0
  96. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/subagent_event.py +0 -0
  97. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_card_node.py +0 -0
  98. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_card_source.py +0 -0
  99. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_dataset.py +0 -0
  100. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_dataset_column.py +0 -0
  101. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_dataset_column_type.py +0 -0
  102. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_dataset_source.py +0 -0
  103. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tako_source_index.py +0 -0
  104. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/text_event.py +0 -0
  105. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/thin_viz_card.py +0 -0
  106. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tool_call_event.py +0 -0
  107. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tool_error_event.py +0 -0
  108. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tool_result_event.py +0 -0
  109. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/tool_retry_event.py +0 -0
  110. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/usage.py +0 -0
  111. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/usage_compute.py +0 -0
  112. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/usage_data.py +0 -0
  113. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/models/web_result.py +0 -0
  114. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/py.typed +0 -0
  115. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/aio/rest.py +0 -0
  116. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/api/__init__.py +0 -0
  117. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/api/agent_api.py +0 -0
  118. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/api/tako_api.py +0 -0
  119. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/api_response.py +0 -0
  120. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/exceptions.py +0 -0
  121. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/__init__.py +0 -0
  122. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/agent.py +0 -0
  123. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/client.py +0 -0
  124. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/schema.py +0 -0
  125. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/lib/streaming.py +0 -0
  126. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_answer_assumption.py +0 -0
  127. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_answer_citation.py +0 -0
  128. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_answer_definition.py +0 -0
  129. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_answer_metadata.py +0 -0
  130. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_answer_methodology_note.py +0 -0
  131. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_output_settings.py +0 -0
  132. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/agent_run_status.py +0 -0
  133. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_effort.py +0 -0
  134. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_metadata.py +0 -0
  135. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_result.py +0 -0
  136. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_result_event.py +0 -0
  137. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_run.py +0 -0
  138. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_run_list.py +0 -0
  139. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_run_request.py +0 -0
  140. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_run_summary.py +0 -0
  141. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_agent_stream_envelope.py +0 -0
  142. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/answer_response.py +0 -0
  143. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/api_error_type.py +0 -0
  144. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/base_api_error.py +0 -0
  145. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/block.py +0 -0
  146. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/block1.py +0 -0
  147. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/component_config.py +0 -0
  148. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/component_type_enum.py +0 -0
  149. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/content_item.py +0 -0
  150. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/contents_delivery_mode.py +0 -0
  151. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/contents_format.py +0 -0
  152. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/contents_request.py +0 -0
  153. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/contents_response.py +0 -0
  154. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/create_card400_response.py +0 -0
  155. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/create_card_request.py +0 -0
  156. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/data_pipeline_answer_event.py +0 -0
  157. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/data_source_settings.py +0 -0
  158. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/entity_class_name.py +0 -0
  159. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/error_object.py +0 -0
  160. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/export_pricing.py +0 -0
  161. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_node.py +0 -0
  162. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_node_type.py +0 -0
  163. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_related_response.py +0 -0
  164. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_relation.py +0 -0
  165. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_relation_page.py +0 -0
  166. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/graph_search_response.py +0 -0
  167. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/heartbeat_event.py +0 -0
  168. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/knowledge_card_relevance.py +0 -0
  169. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/ner_label.py +0 -0
  170. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/output_settings.py +0 -0
  171. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/reasoning_event.py +0 -0
  172. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/relation_kind.py +0 -0
  173. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/result_content.py +0 -0
  174. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/rows_inner_inner.py +0 -0
  175. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/run_summary_event.py +0 -0
  176. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_effort.py +0 -0
  177. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_result.py +0 -0
  178. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_result_event.py +0 -0
  179. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_run.py +0 -0
  180. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_run_list.py +0 -0
  181. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_run_request.py +0 -0
  182. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_run_summary.py +0 -0
  183. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_agent_stream_envelope.py +0 -0
  184. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_effort_level.py +0 -0
  185. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_request.py +0 -0
  186. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/search_response.py +0 -0
  187. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/source_settings.py +0 -0
  188. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/sources.py +0 -0
  189. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/status_event.py +0 -0
  190. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/stream_category.py +0 -0
  191. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/stream_done_event.py +0 -0
  192. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/stream_reset_event.py +0 -0
  193. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/structured_output_status.py +0 -0
  194. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/subagent_event.py +0 -0
  195. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_card_node.py +0 -0
  196. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_card_source.py +0 -0
  197. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_dataset.py +0 -0
  198. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_dataset_column.py +0 -0
  199. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_dataset_column_type.py +0 -0
  200. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_dataset_source.py +0 -0
  201. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tako_source_index.py +0 -0
  202. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/text_event.py +0 -0
  203. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/thin_viz_card.py +0 -0
  204. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tool_call_event.py +0 -0
  205. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tool_error_event.py +0 -0
  206. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tool_result_event.py +0 -0
  207. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/tool_retry_event.py +0 -0
  208. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/usage.py +0 -0
  209. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/usage_compute.py +0 -0
  210. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/usage_data.py +0 -0
  211. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/models/web_result.py +0 -0
  212. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/py.typed +0 -0
  213. {tako_sdk-2.2.2 → tako_sdk-2.2.4}/tako/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: tako-sdk
3
- Version: 2.2.2
3
+ Version: 2.2.4
4
4
  Summary: The official Python library for the tako API
5
5
  Project-URL: Homepage, https://tako.com
6
6
  Project-URL: Documentation, https://docs.tako.com
@@ -13,7 +13,6 @@ Classifier: Operating System :: Microsoft :: Windows
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Operating System :: POSIX
15
15
  Classifier: Operating System :: POSIX :: Linux
16
- Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
@@ -21,13 +20,13 @@ Classifier: Programming Language :: Python :: 3.13
21
20
  Classifier: Programming Language :: Python :: 3.14
22
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
22
  Classifier: Typing :: Typed
24
- Requires-Python: >=3.9
23
+ Requires-Python: >=3.10
25
24
  Requires-Dist: httpx-sse>=0.4
26
25
  Requires-Dist: httpx<1,>=0.27
27
26
  Requires-Dist: pydantic<3,>=2
28
27
  Requires-Dist: python-dateutil>=2.8.2
29
28
  Requires-Dist: typing-extensions>=4.7.1
30
- Requires-Dist: urllib3<3,>=2.1.0
29
+ Requires-Dist: urllib3<3,>=2.7.0
31
30
  Provides-Extra: pandas
32
31
  Requires-Dist: pandas>=1.5; extra == 'pandas'
33
32
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tako-sdk"
3
- version = "2.2.2"
3
+ version = "2.2.4"
4
4
  description = "The official Python library for the tako API"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -13,7 +13,7 @@ authors = [
13
13
  # httpx -> async (tako/aio/) client
14
14
  # httpx-sse -> hand-written SSE layer (tako/lib)
15
15
  dependencies = [
16
- "urllib3>=2.1.0,<3",
16
+ "urllib3>=2.7.0,<3",
17
17
  "python-dateutil>=2.8.2",
18
18
  "pydantic>=2,<3",
19
19
  "typing-extensions>=4.7.1",
@@ -21,11 +21,10 @@ dependencies = [
21
21
  "httpx-sse>=0.4",
22
22
  ]
23
23
 
24
- requires-python = ">= 3.9"
24
+ requires-python = ">= 3.10"
25
25
  classifiers = [
26
26
  "Typing :: Typed",
27
27
  "Intended Audience :: Developers",
28
- "Programming Language :: Python :: 3.9",
29
28
  "Programming Language :: Python :: 3.10",
30
29
  "Programming Language :: Python :: 3.11",
31
30
  "Programming Language :: Python :: 3.12",
@@ -96,7 +95,7 @@ markers = [
96
95
  # reproducible; they are exercised by the import check and tests, not pyright.
97
96
  [tool.pyright]
98
97
  typeCheckingMode = "strict"
99
- pythonVersion = "3.9"
98
+ pythonVersion = "3.10"
100
99
  include = ["tako/lib"]
101
100
  exclude = [".venv", ".nox", ".git"]
102
101
  reportImplicitOverride = true
@@ -118,7 +117,7 @@ disallow_incomplete_defs = true
118
117
  [tool.ruff]
119
118
  line-length = 120
120
119
  output-format = "grouped"
121
- target-version = "py39"
120
+ target-version = "py310"
122
121
  # Lint only hand-written code; generated clients are produced by openapi-generator.
123
122
  extend-exclude = [
124
123
  "tako/api",
@@ -69,6 +69,7 @@ __all__ = [
69
69
  "ContentsResponse",
70
70
  "CreateCard400Response",
71
71
  "CreateCardRequest",
72
+ "DataFreshness",
72
73
  "DataPipelineAnswerEvent",
73
74
  "DataSourceSettings",
74
75
  "EntityClassName",
@@ -83,6 +84,7 @@ __all__ = [
83
84
  "HeartbeatEvent",
84
85
  "KnowledgeCardMethodology",
85
86
  "KnowledgeCardRelevance",
87
+ "MetricDefinition",
86
88
  "NerLabel",
87
89
  "OutputSettings",
88
90
  "ReasoningEvent",
@@ -175,6 +177,7 @@ from tako.models.contents_request import ContentsRequest as ContentsRequest
175
177
  from tako.models.contents_response import ContentsResponse as ContentsResponse
176
178
  from tako.models.create_card400_response import CreateCard400Response as CreateCard400Response
177
179
  from tako.models.create_card_request import CreateCardRequest as CreateCardRequest
180
+ from tako.models.data_freshness import DataFreshness as DataFreshness
178
181
  from tako.models.data_pipeline_answer_event import DataPipelineAnswerEvent as DataPipelineAnswerEvent
179
182
  from tako.models.data_source_settings import DataSourceSettings as DataSourceSettings
180
183
  from tako.models.entity_class_name import EntityClassName as EntityClassName
@@ -189,6 +192,7 @@ from tako.models.graph_search_response import GraphSearchResponse as GraphSearch
189
192
  from tako.models.heartbeat_event import HeartbeatEvent as HeartbeatEvent
190
193
  from tako.models.knowledge_card_methodology import KnowledgeCardMethodology as KnowledgeCardMethodology
191
194
  from tako.models.knowledge_card_relevance import KnowledgeCardRelevance as KnowledgeCardRelevance
195
+ from tako.models.metric_definition import MetricDefinition as MetricDefinition
192
196
  from tako.models.ner_label import NerLabel as NerLabel
193
197
  from tako.models.output_settings import OutputSettings as OutputSettings
194
198
  from tako.models.reasoning_event import ReasoningEvent as ReasoningEvent
@@ -69,6 +69,7 @@ __all__ = [
69
69
  "ContentsResponse",
70
70
  "CreateCard400Response",
71
71
  "CreateCardRequest",
72
+ "DataFreshness",
72
73
  "DataPipelineAnswerEvent",
73
74
  "DataSourceSettings",
74
75
  "EntityClassName",
@@ -83,6 +84,7 @@ __all__ = [
83
84
  "HeartbeatEvent",
84
85
  "KnowledgeCardMethodology",
85
86
  "KnowledgeCardRelevance",
87
+ "MetricDefinition",
86
88
  "NerLabel",
87
89
  "OutputSettings",
88
90
  "ReasoningEvent",
@@ -175,6 +177,7 @@ from tako.aio.models.contents_request import ContentsRequest as ContentsRequest
175
177
  from tako.aio.models.contents_response import ContentsResponse as ContentsResponse
176
178
  from tako.aio.models.create_card400_response import CreateCard400Response as CreateCard400Response
177
179
  from tako.aio.models.create_card_request import CreateCardRequest as CreateCardRequest
180
+ from tako.aio.models.data_freshness import DataFreshness as DataFreshness
178
181
  from tako.aio.models.data_pipeline_answer_event import DataPipelineAnswerEvent as DataPipelineAnswerEvent
179
182
  from tako.aio.models.data_source_settings import DataSourceSettings as DataSourceSettings
180
183
  from tako.aio.models.entity_class_name import EntityClassName as EntityClassName
@@ -189,6 +192,7 @@ from tako.aio.models.graph_search_response import GraphSearchResponse as GraphSe
189
192
  from tako.aio.models.heartbeat_event import HeartbeatEvent as HeartbeatEvent
190
193
  from tako.aio.models.knowledge_card_methodology import KnowledgeCardMethodology as KnowledgeCardMethodology
191
194
  from tako.aio.models.knowledge_card_relevance import KnowledgeCardRelevance as KnowledgeCardRelevance
195
+ from tako.aio.models.metric_definition import MetricDefinition as MetricDefinition
192
196
  from tako.aio.models.ner_label import NerLabel as NerLabel
193
197
  from tako.aio.models.output_settings import OutputSettings as OutputSettings
194
198
  from tako.aio.models.reasoning_event import ReasoningEvent as ReasoningEvent
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/2.2.1/python'
94
+ self.user_agent = 'OpenAPI-Generator/2.2.3/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  async def __aenter__(self):
@@ -552,7 +552,7 @@ conf = tako.aio.Configuration(
552
552
  "OS: {env}\n"\
553
553
  "Python Version: {pyversion}\n"\
554
554
  "Version of the API: 1.0.0\n"\
555
- "SDK Package Version: 2.2.1".\
555
+ "SDK Package Version: 2.2.3".\
556
556
  format(env=sys.platform, pyversion=sys.version)
557
557
 
558
558
  def get_host_settings(self) -> List[HostSetting]:
@@ -43,6 +43,7 @@ from tako.aio.models.contents_request import ContentsRequest
43
43
  from tako.aio.models.contents_response import ContentsResponse
44
44
  from tako.aio.models.create_card400_response import CreateCard400Response
45
45
  from tako.aio.models.create_card_request import CreateCardRequest
46
+ from tako.aio.models.data_freshness import DataFreshness
46
47
  from tako.aio.models.data_pipeline_answer_event import DataPipelineAnswerEvent
47
48
  from tako.aio.models.data_source_settings import DataSourceSettings
48
49
  from tako.aio.models.entity_class_name import EntityClassName
@@ -57,6 +58,7 @@ from tako.aio.models.graph_search_response import GraphSearchResponse
57
58
  from tako.aio.models.heartbeat_event import HeartbeatEvent
58
59
  from tako.aio.models.knowledge_card_methodology import KnowledgeCardMethodology
59
60
  from tako.aio.models.knowledge_card_relevance import KnowledgeCardRelevance
61
+ from tako.aio.models.metric_definition import MetricDefinition
60
62
  from tako.aio.models.ner_label import NerLabel
61
63
  from tako.aio.models.output_settings import OutputSettings
62
64
  from tako.aio.models.reasoning_event import ReasoningEvent
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Knowledge Search API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class DataFreshness(BaseModel):
27
+ """
28
+ When the card's data was last observed and last refreshed. Either field may be null when that date isn't available for the card type.
29
+ """ # noqa: E501
30
+ data_as_of: Optional[StrictStr] = Field(default=None, description="Date of the most recent observation in the card's data, as an ISO date (YYYY-MM-DD). Null for card types without a coverage date.")
31
+ last_updated: Optional[StrictStr] = Field(default=None, description="Date Tako last refreshed the underlying data, as an ISO date (YYYY-MM-DD).")
32
+ __properties: ClassVar[List[str]] = ["data_as_of", "last_updated"]
33
+
34
+ model_config = ConfigDict(
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of DataFreshness from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ # set to None if data_as_of (nullable) is None
74
+ # and model_fields_set contains the field
75
+ if self.data_as_of is None and "data_as_of" in self.model_fields_set:
76
+ _dict['data_as_of'] = None
77
+
78
+ # set to None if last_updated (nullable) is None
79
+ # and model_fields_set contains the field
80
+ if self.last_updated is None and "last_updated" in self.model_fields_set:
81
+ _dict['last_updated'] = None
82
+
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of DataFreshness from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "data_as_of": obj.get("data_as_of"),
96
+ "last_updated": obj.get("last_updated")
97
+ })
98
+ return _obj
99
+
100
+
@@ -28,7 +28,7 @@ class KnowledgeCardMethodology(BaseModel):
28
28
  KnowledgeCardMethodology
29
29
  """ # noqa: E501
30
30
  methodology_name: Optional[StrictStr] = Field(description="The name of the methodology")
31
- methodology_description: Optional[StrictStr] = Field(description="The description of the methodology")
31
+ methodology_description: Optional[StrictStr] = Field(description="A concise, one-sentence summary of the methodology (source and what is measured). Falls back to the full methodology text when no concise summary is available.")
32
32
  __properties: ClassVar[List[str]] = ["methodology_name", "methodology_description"]
33
33
 
34
34
  model_config = ConfigDict(
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Knowledge Search API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class MetricDefinition(BaseModel):
27
+ """
28
+ Definition of a metric shown on a card. Sourced from the metric's ValueType definition — the same text as the in-app methodology 'Metrics' tab.
29
+ """ # noqa: E501
30
+ name: StrictStr = Field(description="The metric's display name")
31
+ definition: StrictStr = Field(description="Human-readable definition of the metric")
32
+ __properties: ClassVar[List[str]] = ["name", "definition"]
33
+
34
+ model_config = ConfigDict(
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of MetricDefinition from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of MetricDefinition from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "name": obj.get("name"),
86
+ "definition": obj.get("definition")
87
+ })
88
+ return _obj
89
+
90
+
@@ -19,8 +19,10 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from tako.aio.models.data_freshness import DataFreshness
22
23
  from tako.aio.models.knowledge_card_methodology import KnowledgeCardMethodology
23
24
  from tako.aio.models.knowledge_card_relevance import KnowledgeCardRelevance
25
+ from tako.aio.models.metric_definition import MetricDefinition
24
26
  from tako.aio.models.result_content import ResultContent
25
27
  from tako.aio.models.tako_card_node import TakoCardNode
26
28
  from tako.aio.models.tako_card_source import TakoCardSource
@@ -48,7 +50,9 @@ class TakoCard(BaseModel):
48
50
  content: Optional[ResultContent] = None
49
51
  relevance_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Numeric relevance of this card to the query on a 1.0-5.0 scale (5.0 = exact match; higher is more relevant). Only populated for entitled accounts; null otherwise.")
50
52
  nodes: Optional[List[TakoCardNode]] = Field(default=None, description="Graph nodes (entities and metrics) this card was built from, returned by default. Absent for web-only cards or when node resolution was unavailable. Use each id with /beta/graph/node/{id} for full detail (aliases, subtype), or pass ids in sources.data.node_ids to pin these nodes in future searches.")
51
- __properties: ClassVar[List[str]] = ["card_id", "title", "description", "semantic_description", "webpage_url", "image_url", "embed_url", "sources", "methodologies", "source_indexes", "card_type", "relevance", "content", "relevance_score", "nodes"]
53
+ metric_definitions: Optional[List[MetricDefinition]] = Field(default=None, description="Definitions of the metrics this card displays (name + definition). Null when no displayed metric has a definition available.")
54
+ data_freshness: Optional[DataFreshness] = Field(default=None, description="Freshness dates for the card's data: the coverage date (data_as_of) and the last refresh date (last_updated). Null when neither date is available.")
55
+ __properties: ClassVar[List[str]] = ["card_id", "title", "description", "semantic_description", "webpage_url", "image_url", "embed_url", "sources", "methodologies", "source_indexes", "card_type", "relevance", "content", "relevance_score", "nodes", "metric_definitions", "data_freshness"]
52
56
 
53
57
  model_config = ConfigDict(
54
58
  validate_by_name=True,
@@ -113,6 +117,16 @@ class TakoCard(BaseModel):
113
117
  if _item_nodes:
114
118
  _items.append(_item_nodes.to_dict())
115
119
  _dict['nodes'] = _items
120
+ # override the default output from pydantic by calling `to_dict()` of each item in metric_definitions (list)
121
+ _items = []
122
+ if self.metric_definitions:
123
+ for _item_metric_definitions in self.metric_definitions:
124
+ if _item_metric_definitions:
125
+ _items.append(_item_metric_definitions.to_dict())
126
+ _dict['metric_definitions'] = _items
127
+ # override the default output from pydantic by calling `to_dict()` of data_freshness
128
+ if self.data_freshness:
129
+ _dict['data_freshness'] = self.data_freshness.to_dict()
116
130
  # set to None if card_id (nullable) is None
117
131
  # and model_fields_set contains the field
118
132
  if self.card_id is None and "card_id" in self.model_fields_set:
@@ -188,6 +202,16 @@ class TakoCard(BaseModel):
188
202
  if self.nodes is None and "nodes" in self.model_fields_set:
189
203
  _dict['nodes'] = None
190
204
 
205
+ # set to None if metric_definitions (nullable) is None
206
+ # and model_fields_set contains the field
207
+ if self.metric_definitions is None and "metric_definitions" in self.model_fields_set:
208
+ _dict['metric_definitions'] = None
209
+
210
+ # set to None if data_freshness (nullable) is None
211
+ # and model_fields_set contains the field
212
+ if self.data_freshness is None and "data_freshness" in self.model_fields_set:
213
+ _dict['data_freshness'] = None
214
+
191
215
  return _dict
192
216
 
193
217
  @classmethod
@@ -214,7 +238,9 @@ class TakoCard(BaseModel):
214
238
  "relevance": obj.get("relevance"),
215
239
  "content": ResultContent.from_dict(obj["content"]) if obj.get("content") is not None else None,
216
240
  "relevance_score": obj.get("relevance_score"),
217
- "nodes": [TakoCardNode.from_dict(_item) for _item in obj["nodes"]] if obj.get("nodes") is not None else None
241
+ "nodes": [TakoCardNode.from_dict(_item) for _item in obj["nodes"]] if obj.get("nodes") is not None else None,
242
+ "metric_definitions": [MetricDefinition.from_dict(_item) for _item in obj["metric_definitions"]] if obj.get("metric_definitions") is not None else None,
243
+ "data_freshness": DataFreshness.from_dict(obj["data_freshness"]) if obj.get("data_freshness") is not None else None
218
244
  })
219
245
  return _obj
220
246
 
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/2.2.1/python'
94
+ self.user_agent = 'OpenAPI-Generator/2.2.3/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  def __enter__(self):
@@ -554,7 +554,7 @@ conf = tako.Configuration(
554
554
  "OS: {env}\n"\
555
555
  "Python Version: {pyversion}\n"\
556
556
  "Version of the API: 1.0.0\n"\
557
- "SDK Package Version: 2.2.1".\
557
+ "SDK Package Version: 2.2.3".\
558
558
  format(env=sys.platform, pyversion=sys.version)
559
559
 
560
560
  def get_host_settings(self) -> List[HostSetting]:
@@ -80,7 +80,7 @@ class TakoDatasetView:
80
80
  def records(self) -> List[Dict[str, Any]]:
81
81
  """One dict per row, keyed by column name. No third-party dependency."""
82
82
  names = self.column_names
83
- return [dict(zip(names, row)) for row in self._normalized_rows()]
83
+ return [dict(zip(names, row, strict=False)) for row in self._normalized_rows()]
84
84
 
85
85
  def to_dataframe(self) -> Any:
86
86
  """A pandas ``DataFrame`` with dtypes coerced from the ``columns`` header.
@@ -114,7 +114,8 @@ class TakoDatasetView:
114
114
  frame[name] = pd.to_numeric(frame[name], errors="coerce")
115
115
  elif col_type == "boolean":
116
116
  frame[name] = frame[name].astype("boolean")
117
- # "string" (and anything unrecognized) stays object
117
+ # "string" (and anything unrecognized) stays uncoerced: object
118
+ # under pandas < 3, the new str/string dtype under pandas 3
118
119
  except (ValueError, TypeError):
119
120
  pass # leave the column untouched on an unexpected value
120
121
  return frame
@@ -43,6 +43,7 @@ from tako.models.contents_request import ContentsRequest
43
43
  from tako.models.contents_response import ContentsResponse
44
44
  from tako.models.create_card400_response import CreateCard400Response
45
45
  from tako.models.create_card_request import CreateCardRequest
46
+ from tako.models.data_freshness import DataFreshness
46
47
  from tako.models.data_pipeline_answer_event import DataPipelineAnswerEvent
47
48
  from tako.models.data_source_settings import DataSourceSettings
48
49
  from tako.models.entity_class_name import EntityClassName
@@ -57,6 +58,7 @@ from tako.models.graph_search_response import GraphSearchResponse
57
58
  from tako.models.heartbeat_event import HeartbeatEvent
58
59
  from tako.models.knowledge_card_methodology import KnowledgeCardMethodology
59
60
  from tako.models.knowledge_card_relevance import KnowledgeCardRelevance
61
+ from tako.models.metric_definition import MetricDefinition
60
62
  from tako.models.ner_label import NerLabel
61
63
  from tako.models.output_settings import OutputSettings
62
64
  from tako.models.reasoning_event import ReasoningEvent
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Knowledge Search API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class DataFreshness(BaseModel):
27
+ """
28
+ When the card's data was last observed and last refreshed. Either field may be null when that date isn't available for the card type.
29
+ """ # noqa: E501
30
+ data_as_of: Optional[StrictStr] = Field(default=None, description="Date of the most recent observation in the card's data, as an ISO date (YYYY-MM-DD). Null for card types without a coverage date.")
31
+ last_updated: Optional[StrictStr] = Field(default=None, description="Date Tako last refreshed the underlying data, as an ISO date (YYYY-MM-DD).")
32
+ __properties: ClassVar[List[str]] = ["data_as_of", "last_updated"]
33
+
34
+ model_config = ConfigDict(
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of DataFreshness from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ # set to None if data_as_of (nullable) is None
74
+ # and model_fields_set contains the field
75
+ if self.data_as_of is None and "data_as_of" in self.model_fields_set:
76
+ _dict['data_as_of'] = None
77
+
78
+ # set to None if last_updated (nullable) is None
79
+ # and model_fields_set contains the field
80
+ if self.last_updated is None and "last_updated" in self.model_fields_set:
81
+ _dict['last_updated'] = None
82
+
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of DataFreshness from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "data_as_of": obj.get("data_as_of"),
96
+ "last_updated": obj.get("last_updated")
97
+ })
98
+ return _obj
99
+
100
+
@@ -28,7 +28,7 @@ class KnowledgeCardMethodology(BaseModel):
28
28
  KnowledgeCardMethodology
29
29
  """ # noqa: E501
30
30
  methodology_name: Optional[StrictStr] = Field(description="The name of the methodology")
31
- methodology_description: Optional[StrictStr] = Field(description="The description of the methodology")
31
+ methodology_description: Optional[StrictStr] = Field(description="A concise, one-sentence summary of the methodology (source and what is measured). Falls back to the full methodology text when no concise summary is available.")
32
32
  __properties: ClassVar[List[str]] = ["methodology_name", "methodology_description"]
33
33
 
34
34
  model_config = ConfigDict(