qanswer_sdk 3.1401.0__py3-none-any.whl → 3.1503.0__py3-none-any.whl

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 (132) hide show
  1. qanswer_sdk/__init__.py +61 -9
  2. qanswer_sdk/api/__init__.py +3 -1
  3. qanswer_sdk/api/ai_assistant_access_rights_api.py +65 -193
  4. qanswer_sdk/api/ai_assistant_api.py +2788 -409
  5. qanswer_sdk/api/connector_rdf_answer_api.py +6 -7
  6. qanswer_sdk/api/connector_rdf_api.py +24 -26
  7. qanswer_sdk/api/connector_sharepoint_api.py +365 -21
  8. qanswer_sdk/api/connectors_data_api.py +578 -0
  9. qanswer_sdk/api/conversation_logs_api.py +780 -142
  10. qanswer_sdk/api/{task_sparql2text_api.py → converters_api.py} +75 -49
  11. qanswer_sdk/api/mcp_api.py +9096 -0
  12. qanswer_sdk/api/payment_api.py +279 -1
  13. qanswer_sdk/api/socket_api.py +245 -0
  14. qanswer_sdk/api/task_ai_excel_api.py +6975 -0
  15. qanswer_sdk/api/task_chat_api.py +0 -288
  16. qanswer_sdk/api/task_relation_extraction_api.py +16 -15
  17. qanswer_sdk/api/unit_organizations_api.py +573 -44
  18. qanswer_sdk/api/unit_user_api.py +537 -15
  19. qanswer_sdk/api_client.py +1 -1
  20. qanswer_sdk/configuration.py +1 -1
  21. qanswer_sdk/models/__init__.py +57 -7
  22. qanswer_sdk/models/access_audio_spans_response_model.py +91 -0
  23. qanswer_sdk/models/access_pdf_payload_model.py +5 -3
  24. qanswer_sdk/models/advanced_o_auth2_mcp_authentication_config.py +95 -0
  25. qanswer_sdk/models/ai_assistant_dto.py +3 -1
  26. qanswer_sdk/models/ai_assistant_filter_dto.py +5 -1
  27. qanswer_sdk/models/ai_excel_task_settings.py +125 -0
  28. qanswer_sdk/models/ai_excel_task_update.py +125 -0
  29. qanswer_sdk/models/ai_task_settings_update_payload.py +95 -0
  30. qanswer_sdk/models/{sparql2_text_payload.py → ai_template_base_with_id.py} +12 -14
  31. qanswer_sdk/models/ai_template_cell.py +111 -0
  32. qanswer_sdk/models/ai_template_cell_base.py +87 -0
  33. qanswer_sdk/models/ai_template_cell_update_payload.py +95 -0
  34. qanswer_sdk/models/{team_shared.py → ai_template_column.py} +17 -23
  35. qanswer_sdk/models/ai_template_column_base.py +93 -0
  36. qanswer_sdk/models/{organization_shared.py → ai_template_column_update_payload.py} +27 -23
  37. qanswer_sdk/models/ai_template_create_payload.py +128 -0
  38. qanswer_sdk/models/ai_template_row.py +93 -0
  39. qanswer_sdk/models/ai_template_row_base.py +87 -0
  40. qanswer_sdk/models/ai_template_row_update_payload.py +103 -0
  41. qanswer_sdk/models/{check_mode_response.py → ai_template_row_with_cells.py} +24 -21
  42. qanswer_sdk/models/ai_template_with_cells.py +134 -0
  43. qanswer_sdk/models/ai_template_with_cells_new_column_id.py +136 -0
  44. qanswer_sdk/models/api_key_mcp_authentication_config.py +94 -0
  45. qanswer_sdk/models/assistant_category_count.py +89 -0
  46. qanswer_sdk/models/assistant_template.py +101 -0
  47. qanswer_sdk/models/auto_bot_description_request.py +89 -0
  48. qanswer_sdk/models/{prompt_token_count_details.py → auto_bot_description_response.py} +7 -19
  49. qanswer_sdk/models/chatbot_chat_payload.py +12 -4
  50. qanswer_sdk/models/conversation_message.py +24 -6
  51. qanswer_sdk/models/conversation_model.py +24 -4
  52. qanswer_sdk/models/{list_chatbot_conversation_response.py → conversation_retention_response.py} +7 -21
  53. qanswer_sdk/models/convert_pdf_images_response.py +87 -0
  54. qanswer_sdk/models/dataset_default_values_model.py +1 -3
  55. qanswer_sdk/models/dataset_detail.py +6 -2
  56. qanswer_sdk/models/dataset_detail_kg.py +29 -17
  57. qanswer_sdk/models/dataset_schema.py +5 -3
  58. qanswer_sdk/models/dataset_update_object.py +3 -3
  59. qanswer_sdk/models/default_prompt.py +2 -2
  60. qanswer_sdk/models/delete_files_status_response.py +91 -0
  61. qanswer_sdk/models/document_file_delete_by_id_model.py +91 -0
  62. qanswer_sdk/models/embedder.py +119 -0
  63. qanswer_sdk/models/embedder_consumption.py +114 -0
  64. qanswer_sdk/models/embedder_create_dto.py +5 -3
  65. qanswer_sdk/models/embedder_detailed_dto.py +5 -3
  66. qanswer_sdk/models/embedder_update_dto.py +5 -3
  67. qanswer_sdk/models/export_relation_extraction_table_request.py +97 -0
  68. qanswer_sdk/models/feedback_model.py +2 -2
  69. qanswer_sdk/models/file_es_meta_data.py +1 -1
  70. qanswer_sdk/models/generate_ai_cells_by_dimension_payload.py +91 -0
  71. qanswer_sdk/models/generate_ai_cells_payload.py +93 -0
  72. qanswer_sdk/models/get_file_es_meta_data_response.py +2 -2
  73. qanswer_sdk/models/highlight_audio_payload_model.py +109 -0
  74. qanswer_sdk/models/jwt_refresh_token.py +100 -0
  75. qanswer_sdk/models/list_ai_templates_response.py +101 -0
  76. qanswer_sdk/models/list_files_connector_response.py +8 -2
  77. qanswer_sdk/models/list_socket_events.py +2 -2
  78. qanswer_sdk/models/llm_consumption.py +3 -3
  79. qanswer_sdk/models/llm_create_dto.py +11 -3
  80. qanswer_sdk/models/llm_detailed_dto.py +11 -3
  81. qanswer_sdk/models/llm_endpoint.py +11 -3
  82. qanswer_sdk/models/llm_endpoint_read_input.py +11 -3
  83. qanswer_sdk/models/llm_endpoint_read_output.py +11 -3
  84. qanswer_sdk/models/llm_update_dto.py +11 -3
  85. qanswer_sdk/models/log_request.py +2 -2
  86. qanswer_sdk/models/mcp_connection.py +105 -0
  87. qanswer_sdk/models/mcp_connection_create.py +98 -0
  88. qanswer_sdk/models/mcp_server_create.py +117 -0
  89. qanswer_sdk/models/mcp_server_dto.py +147 -0
  90. qanswer_sdk/models/mcp_server_update.py +117 -0
  91. qanswer_sdk/models/mcp_tool_description_update.py +87 -0
  92. qanswer_sdk/models/mcp_tool_dto.py +119 -0
  93. qanswer_sdk/models/mcp_tool_info.py +95 -0
  94. qanswer_sdk/models/organization_embedder.py +103 -0
  95. qanswer_sdk/models/put_cell_payload.py +89 -0
  96. qanswer_sdk/models/rag_payload.py +14 -6
  97. qanswer_sdk/models/relation_extraction_payload.py +8 -2
  98. qanswer_sdk/models/relation_extraction_row_input.py +8 -4
  99. qanswer_sdk/models/relation_extraction_row_output.py +8 -4
  100. qanswer_sdk/models/relation_extraction_template_payload.py +2 -8
  101. qanswer_sdk/models/relation_model.py +3 -3
  102. qanswer_sdk/models/relation_value_input.py +10 -4
  103. qanswer_sdk/models/relation_value_output.py +10 -4
  104. qanswer_sdk/models/shared_organization_access.py +16 -3
  105. qanswer_sdk/models/shared_organization_access_dto.py +118 -0
  106. qanswer_sdk/models/shared_team_access.py +16 -3
  107. qanswer_sdk/models/shared_team_access_dto.py +118 -0
  108. qanswer_sdk/models/socket_ai_cell_generation.py +99 -0
  109. qanswer_sdk/models/socket_conversation_message.py +23 -5
  110. qanswer_sdk/models/socket_data_extraction.py +1 -1
  111. qanswer_sdk/models/socket_file_metadata.py +15 -3
  112. qanswer_sdk/models/subject_model.py +2 -2
  113. qanswer_sdk/models/template_toggle_request.py +93 -0
  114. qanswer_sdk/models/text2_sparql_payload.py +13 -5
  115. qanswer_sdk/models/tool_selection.py +89 -0
  116. qanswer_sdk/models/user.py +264 -7
  117. qanswer_sdk/models/user_chatbot_setting.py +1 -1
  118. qanswer_sdk/models/user_dataset.py +30 -18
  119. qanswer_sdk/models/user_dataset_access_control_origin_header.py +97 -0
  120. qanswer_sdk/models/user_dataset_api_key.py +16 -18
  121. qanswer_sdk/models/user_dataset_mcp_tool_selection_dto.py +100 -0
  122. qanswer_sdk/models/user_dataset_shared.py +1 -1
  123. qanswer_sdk/models/user_info.py +103 -0
  124. qanswer_sdk/models/user_llm_features.py +97 -0
  125. qanswer_sdk/models/user_log.py +19 -20
  126. qanswer_sdk/models/user_mcp_tool_selection_dto.py +98 -0
  127. qanswer_sdk/models/user_profile_dto.py +13 -1
  128. qanswer_sdk/models/verification_token.py +100 -0
  129. {qanswer_sdk-3.1401.0.dist-info → qanswer_sdk-3.1503.0.dist-info}/METADATA +2 -2
  130. {qanswer_sdk-3.1401.0.dist-info → qanswer_sdk-3.1503.0.dist-info}/RECORD +131 -79
  131. qanswer_sdk/models/chatbot_conversation_model.py +0 -151
  132. {qanswer_sdk-3.1401.0.dist-info → qanswer_sdk-3.1503.0.dist-info}/WHEEL +0 -0
@@ -14,10 +14,29 @@
14
14
 
15
15
 
16
16
  # import models into model package
17
+ from qanswer_sdk.models.ai_excel_task_settings import AIExcelTaskSettings
18
+ from qanswer_sdk.models.ai_excel_task_update import AIExcelTaskUpdate
19
+ from qanswer_sdk.models.ai_task_settings_update_payload import AITaskSettingsUpdatePayload
20
+ from qanswer_sdk.models.ai_template_base_with_id import AITemplateBaseWithId
21
+ from qanswer_sdk.models.ai_template_cell import AITemplateCell
22
+ from qanswer_sdk.models.ai_template_cell_base import AITemplateCellBase
23
+ from qanswer_sdk.models.ai_template_cell_update_payload import AITemplateCellUpdatePayload
24
+ from qanswer_sdk.models.ai_template_column import AITemplateColumn
25
+ from qanswer_sdk.models.ai_template_column_base import AITemplateColumnBase
26
+ from qanswer_sdk.models.ai_template_column_update_payload import AITemplateColumnUpdatePayload
27
+ from qanswer_sdk.models.ai_template_create_payload import AITemplateCreatePayload
28
+ from qanswer_sdk.models.ai_template_row import AITemplateRow
29
+ from qanswer_sdk.models.ai_template_row_base import AITemplateRowBase
30
+ from qanswer_sdk.models.ai_template_row_update_payload import AITemplateRowUpdatePayload
31
+ from qanswer_sdk.models.ai_template_row_with_cells import AITemplateRowWithCells
32
+ from qanswer_sdk.models.ai_template_with_cells import AITemplateWithCells
33
+ from qanswer_sdk.models.ai_template_with_cells_new_column_id import AITemplateWithCellsNewColumnId
34
+ from qanswer_sdk.models.access_audio_spans_response_model import AccessAudioSpansResponseModel
17
35
  from qanswer_sdk.models.access_pdf_payload_model import AccessPdfPayloadModel
18
36
  from qanswer_sdk.models.add_qn_a_request import AddQnARequest
19
37
  from qanswer_sdk.models.add_synonyms import AddSynonyms
20
38
  from qanswer_sdk.models.add_synonyms_resp import AddSynonymsResp
39
+ from qanswer_sdk.models.advanced_o_auth2_mcp_authentication_config import AdvancedOAuth2MCPAuthenticationConfig
21
40
  from qanswer_sdk.models.aggregate import Aggregate
22
41
  from qanswer_sdk.models.aggregation import Aggregation
23
42
  from qanswer_sdk.models.aggregations_group import AggregationsGroup
@@ -26,8 +45,11 @@ from qanswer_sdk.models.ai_assistant_filter_dto import AiAssistantFilterDto
26
45
  from qanswer_sdk.models.ai_assistant_list import AiAssistantList
27
46
  from qanswer_sdk.models.ai_assistant_shared_access import AiAssistantSharedAccess
28
47
  from qanswer_sdk.models.allowed_file_extensions import AllowedFileExtensions
48
+ from qanswer_sdk.models.api_key_mcp_authentication_config import ApiKeyMCPAuthenticationConfig
29
49
  from qanswer_sdk.models.applied_metadata_filter import AppliedMetadataFilter
50
+ from qanswer_sdk.models.assistant_category_count import AssistantCategoryCount
30
51
  from qanswer_sdk.models.assistant_message_stop import AssistantMessageStop
52
+ from qanswer_sdk.models.assistant_template import AssistantTemplate
31
53
  from qanswer_sdk.models.audio_connector_extract_request import AudioConnectorExtractRequest
32
54
  from qanswer_sdk.models.audio_file_upload_payload import AudioFileUploadPayload
33
55
  from qanswer_sdk.models.audio_segment import AudioSegment
@@ -46,6 +68,8 @@ from qanswer_sdk.models.audio_word_span_update_response import AudioWordSpanUpda
46
68
  from qanswer_sdk.models.audio_word_update_payload import AudioWordUpdatePayload
47
69
  from qanswer_sdk.models.audio_word_update_response import AudioWordUpdateResponse
48
70
  from qanswer_sdk.models.auth_link_response import AuthLinkResponse
71
+ from qanswer_sdk.models.auto_bot_description_request import AutoBotDescriptionRequest
72
+ from qanswer_sdk.models.auto_bot_description_response import AutoBotDescriptionResponse
49
73
  from qanswer_sdk.models.autocompletion_config import AutocompletionConfig
50
74
  from qanswer_sdk.models.available_aggregation import AvailableAggregation
51
75
  from qanswer_sdk.models.available_connectors_response import AvailableConnectorsResponse
@@ -65,20 +89,20 @@ from qanswer_sdk.models.chat_task_settings import ChatTaskSettings
65
89
  from qanswer_sdk.models.chat_task_settings_update_payload import ChatTaskSettingsUpdatePayload
66
90
  from qanswer_sdk.models.chat_task_update import ChatTaskUpdate
67
91
  from qanswer_sdk.models.chatbot_chat_payload import ChatbotChatPayload
68
- from qanswer_sdk.models.chatbot_conversation_model import ChatbotConversationModel
69
92
  from qanswer_sdk.models.chatbot_response import ChatbotResponse
70
93
  from qanswer_sdk.models.chatbot_setting_dto import ChatbotSettingDto
71
94
  from qanswer_sdk.models.chatbot_setting_request import ChatbotSettingRequest
72
- from qanswer_sdk.models.check_mode_response import CheckModeResponse
73
95
  from qanswer_sdk.models.class_info import ClassInfo
74
96
  from qanswer_sdk.models.connector_model import ConnectorModel
75
97
  from qanswer_sdk.models.content_item import ContentItem
76
98
  from qanswer_sdk.models.conversation_message import ConversationMessage
77
99
  from qanswer_sdk.models.conversation_model import ConversationModel
100
+ from qanswer_sdk.models.conversation_retention_response import ConversationRetentionResponse
78
101
  from qanswer_sdk.models.conversation_statistics import ConversationStatistics
79
102
  from qanswer_sdk.models.conversation_update import ConversationUpdate
80
103
  from qanswer_sdk.models.conversation_users_stats import ConversationUsersStats
81
104
  from qanswer_sdk.models.conversation_users_stats_response import ConversationUsersStatsResponse
105
+ from qanswer_sdk.models.convert_pdf_images_response import ConvertPdfImagesResponse
82
106
  from qanswer_sdk.models.coordinates import Coordinates
83
107
  from qanswer_sdk.models.cost_summary_dto import CostSummaryDto
84
108
  from qanswer_sdk.models.create_connector_request import CreateConnectorRequest
@@ -98,6 +122,7 @@ from qanswer_sdk.models.default_prompt import DefaultPrompt
98
122
  from qanswer_sdk.models.delete_connector_model import DeleteConnectorModel
99
123
  from qanswer_sdk.models.delete_connector_request import DeleteConnectorRequest
100
124
  from qanswer_sdk.models.delete_connectors_response import DeleteConnectorsResponse
125
+ from qanswer_sdk.models.delete_files_status_response import DeleteFilesStatusResponse
101
126
  from qanswer_sdk.models.delete_qn_a_pair_request import DeleteQnAPairRequest
102
127
  from qanswer_sdk.models.delete_qn_a_pair_response import DeleteQnAPairResponse
103
128
  from qanswer_sdk.models.delete_synonym import DeleteSynonym
@@ -105,6 +130,7 @@ from qanswer_sdk.models.delete_synonym_resp import DeleteSynonymResp
105
130
  from qanswer_sdk.models.document_content_response import DocumentContentResponse
106
131
  from qanswer_sdk.models.document_content_update_model import DocumentContentUpdateModel
107
132
  from qanswer_sdk.models.document_file_delete_by_connector_model import DocumentFileDeleteByConnectorModel
133
+ from qanswer_sdk.models.document_file_delete_by_id_model import DocumentFileDeleteByIdModel
108
134
  from qanswer_sdk.models.document_metadata import DocumentMetadata
109
135
  from qanswer_sdk.models.document_metadata_list_wrapper import DocumentMetadataListWrapper
110
136
  from qanswer_sdk.models.document_status_response import DocumentStatusResponse
@@ -116,6 +142,8 @@ from qanswer_sdk.models.econsilium_search_index_add_payload import EconsiliumSea
116
142
  from qanswer_sdk.models.econsilium_search_index_additional_fields import EconsiliumSearchIndexAdditionalFields
117
143
  from qanswer_sdk.models.email_folder import EmailFolder
118
144
  from qanswer_sdk.models.email_request import EmailRequest
145
+ from qanswer_sdk.models.embedder import Embedder
146
+ from qanswer_sdk.models.embedder_consumption import EmbedderConsumption
119
147
  from qanswer_sdk.models.embedder_cost_filter import EmbedderCostFilter
120
148
  from qanswer_sdk.models.embedder_cost_list import EmbedderCostList
121
149
  from qanswer_sdk.models.embedder_create_dto import EmbedderCreateDto
@@ -130,6 +158,7 @@ from qanswer_sdk.models.entity import Entity
130
158
  from qanswer_sdk.models.entity_description import EntityDescription
131
159
  from qanswer_sdk.models.entity_description_dto import EntityDescriptionDto
132
160
  from qanswer_sdk.models.entity_linker_response import EntityLinkerResponse
161
+ from qanswer_sdk.models.export_relation_extraction_table_request import ExportRelationExtractionTableRequest
133
162
  from qanswer_sdk.models.extra_body import ExtraBody
134
163
  from qanswer_sdk.models.extract_hyper_links_payload import ExtractHyperLinksPayload
135
164
  from qanswer_sdk.models.extract_robot_links_payload import ExtractRobotLinksPayload
@@ -145,6 +174,8 @@ from qanswer_sdk.models.format_return import FormatReturn
145
174
  from qanswer_sdk.models.g_drive_connector_info import GDriveConnectorInfo
146
175
  from qanswer_sdk.models.g_drive_download_by_ids import GDriveDownloadByIds
147
176
  from qanswer_sdk.models.g_drive_download_request import GDriveDownloadRequest
177
+ from qanswer_sdk.models.generate_ai_cells_by_dimension_payload import GenerateAICellsByDimensionPayload
178
+ from qanswer_sdk.models.generate_ai_cells_payload import GenerateAICellsPayload
148
179
  from qanswer_sdk.models.generation_params import GenerationParams
149
180
  from qanswer_sdk.models.get_aggregations_payload import GetAggregationsPayload
150
181
  from qanswer_sdk.models.get_connector_by_id_response import GetConnectorByIdResponse
@@ -152,6 +183,7 @@ from qanswer_sdk.models.get_conversation_response import GetConversationResponse
152
183
  from qanswer_sdk.models.get_file_es_meta_data_response import GetFileESMetaDataResponse
153
184
  from qanswer_sdk.models.guardrail_endpoint import GuardrailEndpoint
154
185
  from qanswer_sdk.models.has_lucene_index_result import HasLuceneIndexResult
186
+ from qanswer_sdk.models.highlight_audio_payload_model import HighlightAudioPayloadModel
155
187
  from qanswer_sdk.models.imap_add_payload import ImapAddPayload
156
188
  from qanswer_sdk.models.imap_additional_fields import ImapAdditionalFields
157
189
  from qanswer_sdk.models.imap_file_metadata import ImapFileMetadata
@@ -161,6 +193,7 @@ from qanswer_sdk.models.install_response import InstallResponse
161
193
  from qanswer_sdk.models.is_enabled_response import IsEnabledResponse
162
194
  from qanswer_sdk.models.is_merging_result import IsMergingResult
163
195
  from qanswer_sdk.models.jwt_authentication_response import JwtAuthenticationResponse
196
+ from qanswer_sdk.models.jwt_refresh_token import JwtRefreshToken
164
197
  from qanswer_sdk.models.llm_context_ranges import LLMContextRanges
165
198
  from qanswer_sdk.models.llm_context_ranges_response import LLMContextRangesResponse
166
199
  from qanswer_sdk.models.llm_endpoint import LLMEndpoint
@@ -176,7 +209,7 @@ from qanswer_sdk.models.link_result_paginated import LinkResultPaginated
176
209
  from qanswer_sdk.models.linker import Linker
177
210
  from qanswer_sdk.models.linking_result import LinkingResult
178
211
  from qanswer_sdk.models.links import Links
179
- from qanswer_sdk.models.list_chatbot_conversation_response import ListChatbotConversationResponse
212
+ from qanswer_sdk.models.list_ai_templates_response import ListAITemplatesResponse
180
213
  from qanswer_sdk.models.list_connectors_response import ListConnectorsResponse
181
214
  from qanswer_sdk.models.list_conversation_response import ListConversationResponse
182
215
  from qanswer_sdk.models.list_feedback_response import ListFeedbackResponse
@@ -200,6 +233,14 @@ from qanswer_sdk.models.logo import Logo
200
233
  from qanswer_sdk.models.logs_visibility_policy_payload import LogsVisibilityPolicyPayload
201
234
  from qanswer_sdk.models.logs_visibility_policy_response import LogsVisibilityPolicyResponse
202
235
  from qanswer_sdk.models.lucene_index_request_result import LuceneIndexRequestResult
236
+ from qanswer_sdk.models.mcp_connection import MCPConnection
237
+ from qanswer_sdk.models.mcp_connection_create import MCPConnectionCreate
238
+ from qanswer_sdk.models.mcp_server_create import MCPServerCreate
239
+ from qanswer_sdk.models.mcp_server_update import MCPServerUpdate
240
+ from qanswer_sdk.models.mcp_tool_description_update import MCPToolDescriptionUpdate
241
+ from qanswer_sdk.models.mcp_tool_info import MCPToolInfo
242
+ from qanswer_sdk.models.mcp_server_dto import McpServerDto
243
+ from qanswer_sdk.models.mcp_tool_dto import McpToolDto
203
244
  from qanswer_sdk.models.merge_request_result import MergeRequestResult
204
245
  from qanswer_sdk.models.messages_stats_per_day_response import MessagesStatsPerDayResponse
205
246
  from qanswer_sdk.models.modify_connector_request import ModifyConnectorRequest
@@ -212,10 +253,10 @@ from qanswer_sdk.models.one_note_download_request import OneNoteDownloadRequest
212
253
  from qanswer_sdk.models.organization import Organization
213
254
  from qanswer_sdk.models.organization_admin import OrganizationAdmin
214
255
  from qanswer_sdk.models.organization_creation import OrganizationCreation
256
+ from qanswer_sdk.models.organization_embedder import OrganizationEmbedder
215
257
  from qanswer_sdk.models.organization_filter_dto import OrganizationFilterDto
216
258
  from qanswer_sdk.models.organization_list_dto import OrganizationListDto
217
259
  from qanswer_sdk.models.organization_llm import OrganizationLlm
218
- from qanswer_sdk.models.organization_shared import OrganizationShared
219
260
  from qanswer_sdk.models.paginated_report_templates import PaginatedReportTemplates
220
261
  from qanswer_sdk.models.password import Password
221
262
  from qanswer_sdk.models.pinecone_index_model import PineconeIndexModel
@@ -223,12 +264,12 @@ from qanswer_sdk.models.plan_dto import PlanDto
223
264
  from qanswer_sdk.models.predicted_class import PredictedClass
224
265
  from qanswer_sdk.models.prepare_synonyms_upload_resp import PrepareSynonymsUploadResp
225
266
  from qanswer_sdk.models.prepared_synonym_group import PreparedSynonymGroup
226
- from qanswer_sdk.models.prompt_token_count_details import PromptTokenCountDetails
227
267
  from qanswer_sdk.models.provider import Provider
228
268
  from qanswer_sdk.models.publication_add_payload import PublicationAddPayload
229
269
  from qanswer_sdk.models.publication_file_metadata import PublicationFileMetadata
230
270
  from qanswer_sdk.models.publication_office_additional_fields import PublicationOfficeAdditionalFields
231
271
  from qanswer_sdk.models.publication_search_index_search_response import PublicationSearchIndexSearchResponse
272
+ from qanswer_sdk.models.put_cell_payload import PutCellPayload
232
273
  from qanswer_sdk.models.qa_context import QaContext
233
274
  from qanswer_sdk.models.qa_contexts import QaContexts
234
275
  from qanswer_sdk.models.qa_table import QaTable
@@ -292,7 +333,9 @@ from qanswer_sdk.models.share_point_connector_settings import SharePointConnecto
292
333
  from qanswer_sdk.models.share_point_download_by_ids import SharePointDownloadByIds
293
334
  from qanswer_sdk.models.share_point_download_request import SharePointDownloadRequest
294
335
  from qanswer_sdk.models.shared_organization_access import SharedOrganizationAccess
336
+ from qanswer_sdk.models.shared_organization_access_dto import SharedOrganizationAccessDto
295
337
  from qanswer_sdk.models.shared_team_access import SharedTeamAccess
338
+ from qanswer_sdk.models.shared_team_access_dto import SharedTeamAccessDto
296
339
  from qanswer_sdk.models.shared_user import SharedUser
297
340
  from qanswer_sdk.models.sign_up_request import SignUpRequest
298
341
  from qanswer_sdk.models.signout_request import SignoutRequest
@@ -301,6 +344,7 @@ from qanswer_sdk.models.slot_history_entry import SlotHistoryEntry
301
344
  from qanswer_sdk.models.slot_in_prompt import SlotInPrompt
302
345
  from qanswer_sdk.models.slot_info_with_latest_version import SlotInfoWithLatestVersion
303
346
  from qanswer_sdk.models.slot_update import SlotUpdate
347
+ from qanswer_sdk.models.socket_ai_cell_generation import SocketAICellGeneration
304
348
  from qanswer_sdk.models.socket_conversation_message import SocketConversationMessage
305
349
  from qanswer_sdk.models.socket_data_extraction import SocketDataExtraction
306
350
  from qanswer_sdk.models.socket_file_metadata import SocketFileMetadata
@@ -313,7 +357,6 @@ from qanswer_sdk.models.socket_speech2_text_response import SocketSpeech2TextRes
313
357
  from qanswer_sdk.models.socket_stop_conversation import SocketStopConversation
314
358
  from qanswer_sdk.models.source import Source
315
359
  from qanswer_sdk.models.source_metadata import SourceMetadata
316
- from qanswer_sdk.models.sparql2_text_payload import Sparql2TextPayload
317
360
  from qanswer_sdk.models.speech2_text_response import Speech2TextResponse
318
361
  from qanswer_sdk.models.stat_per_date import StatPerDate
319
362
  from qanswer_sdk.models.status_response import StatusResponse
@@ -326,8 +369,8 @@ from qanswer_sdk.models.team_admin import TeamAdmin
326
369
  from qanswer_sdk.models.team_creation import TeamCreation
327
370
  from qanswer_sdk.models.team_filter_dto import TeamFilterDto
328
371
  from qanswer_sdk.models.team_list_dto import TeamListDto
329
- from qanswer_sdk.models.team_shared import TeamShared
330
372
  from qanswer_sdk.models.template_clip_structure import TemplateClipStructure
373
+ from qanswer_sdk.models.template_toggle_request import TemplateToggleRequest
331
374
  from qanswer_sdk.models.terms_bucket import TermsBucket
332
375
  from qanswer_sdk.models.test_imap_connection_payload import TestImapConnectionPayload
333
376
  from qanswer_sdk.models.text2_sparql_payload import Text2SparqlPayload
@@ -338,6 +381,7 @@ from qanswer_sdk.models.text_classification_payload import TextClassificationPay
338
381
  from qanswer_sdk.models.text_classification_response import TextClassificationResponse
339
382
  from qanswer_sdk.models.text_classification_v2_payload import TextClassificationV2Payload
340
383
  from qanswer_sdk.models.text_classification_v2_response import TextClassificationV2Response
384
+ from qanswer_sdk.models.tool_selection import ToolSelection
341
385
  from qanswer_sdk.models.total_stat import TotalStat
342
386
  from qanswer_sdk.models.ui_mappings import UIMappings
343
387
  from qanswer_sdk.models.update_metadata_model import UpdateMetadataModel
@@ -350,18 +394,24 @@ from qanswer_sdk.models.uri_mapping import UriMapping
350
394
  from qanswer_sdk.models.user import User
351
395
  from qanswer_sdk.models.user_chatbot_setting import UserChatbotSetting
352
396
  from qanswer_sdk.models.user_dataset import UserDataset
397
+ from qanswer_sdk.models.user_dataset_access_control_origin_header import UserDatasetAccessControlOriginHeader
353
398
  from qanswer_sdk.models.user_dataset_api_key import UserDatasetApiKey
399
+ from qanswer_sdk.models.user_dataset_mcp_tool_selection_dto import UserDatasetMcpToolSelectionDto
354
400
  from qanswer_sdk.models.user_dataset_shared import UserDatasetShared
355
401
  from qanswer_sdk.models.user_filter_dto import UserFilterDto
356
402
  from qanswer_sdk.models.user_identity_availability import UserIdentityAvailability
403
+ from qanswer_sdk.models.user_info import UserInfo
357
404
  from qanswer_sdk.models.user_info_dto import UserInfoDto
358
405
  from qanswer_sdk.models.user_list_dto import UserListDto
406
+ from qanswer_sdk.models.user_llm_features import UserLlmFeatures
359
407
  from qanswer_sdk.models.user_log import UserLog
360
408
  from qanswer_sdk.models.user_logs_list_dto import UserLogsListDto
409
+ from qanswer_sdk.models.user_mcp_tool_selection_dto import UserMcpToolSelectionDto
361
410
  from qanswer_sdk.models.user_oauth_token import UserOauthToken
362
411
  from qanswer_sdk.models.user_profile_dto import UserProfileDto
363
412
  from qanswer_sdk.models.user_profile_list_dto import UserProfileListDto
364
413
  from qanswer_sdk.models.value_model import ValueModel
414
+ from qanswer_sdk.models.verification_token import VerificationToken
365
415
  from qanswer_sdk.models.website_add_payload import WebsiteAddPayload
366
416
  from qanswer_sdk.models.website_connector_settings import WebsiteConnectorSettings
367
417
  from qanswer_sdk.models.widget_configs import WidgetConfigs
@@ -0,0 +1,91 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QAnswer: Api Documentation
5
+
6
+ APIs provided by QAnswer
7
+
8
+ The version of the OpenAPI document: 1.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, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class AccessAudioSpansResponseModel(BaseModel):
26
+ """
27
+ AccessAudioSpansResponseModel
28
+ """ # noqa: E501
29
+ start_span: Union[StrictFloat, StrictInt]
30
+ end_span: Union[StrictFloat, StrictInt]
31
+ file_id: StrictStr
32
+ __properties: ClassVar[List[str]] = ["start_span", "end_span", "file_id"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of AccessAudioSpansResponseModel 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 AccessAudioSpansResponseModel 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
+ "start_span": obj.get("start_span"),
86
+ "end_span": obj.get("end_span"),
87
+ "file_id": obj.get("file_id")
88
+ })
89
+ return _obj
90
+
91
+
@@ -30,9 +30,10 @@ class AccessPdfPayloadModel(BaseModel):
30
30
  username: StrictStr
31
31
  dataset: StrictStr
32
32
  filename: StrictStr
33
+ file_id: Optional[StrictStr] = None
33
34
  references: Optional[ReferenceModel] = None
34
35
  task_name: Optional[StrictStr] = None
35
- __properties: ClassVar[List[str]] = ["username", "dataset", "filename", "references", "task_name"]
36
+ __properties: ClassVar[List[str]] = ["username", "dataset", "filename", "file_id", "references", "task_name"]
36
37
 
37
38
  @field_validator('task_name')
38
39
  def task_name_validate_enum(cls, value):
@@ -40,8 +41,8 @@ class AccessPdfPayloadModel(BaseModel):
40
41
  if value is None:
41
42
  return value
42
43
 
43
- if value not in set(['search', 'chat', 'data_extraction', 'report_copilot', 'text2sparql', 'sparql2text', 'chatbot']):
44
- raise ValueError("must be one of enum values ('search', 'chat', 'data_extraction', 'report_copilot', 'text2sparql', 'sparql2text', 'chatbot')")
44
+ if value not in set(['search', 'chat', 'data_extraction', 'ai_excel', 'report_copilot', 'text2sparql', 'sparql2text', 'chatbot']):
45
+ raise ValueError("must be one of enum values ('search', 'chat', 'data_extraction', 'ai_excel', 'report_copilot', 'text2sparql', 'sparql2text', 'chatbot')")
45
46
  return value
46
47
 
47
48
  model_config = ConfigDict(
@@ -101,6 +102,7 @@ class AccessPdfPayloadModel(BaseModel):
101
102
  "username": obj.get("username"),
102
103
  "dataset": obj.get("dataset"),
103
104
  "filename": obj.get("filename"),
105
+ "file_id": obj.get("file_id"),
104
106
  "references": ReferenceModel.from_dict(obj["references"]) if obj.get("references") is not None else None,
105
107
  "task_name": obj.get("task_name")
106
108
  })
@@ -0,0 +1,95 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QAnswer: Api Documentation
5
+
6
+ APIs provided by QAnswer
7
+
8
+ The version of the OpenAPI document: 1.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
+
25
+ class AdvancedOAuth2MCPAuthenticationConfig(BaseModel):
26
+ """
27
+ AdvancedOAuth2MCPAuthenticationConfig
28
+ """ # noqa: E501
29
+ client_id: StrictStr = Field(description="Client ID")
30
+ client_secret: StrictStr = Field(description="Client secret")
31
+ scopes: List[StrictStr] = Field(description="Scopes")
32
+ auth_uri: StrictStr = Field(description="Authorization URI")
33
+ token_uri: StrictStr = Field(description="Token URI")
34
+ __properties: ClassVar[List[str]] = ["client_id", "client_secret", "scopes", "auth_uri", "token_uri"]
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of AdvancedOAuth2MCPAuthenticationConfig from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([
68
+ ])
69
+
70
+ _dict = self.model_dump(
71
+ by_alias=True,
72
+ exclude=excluded_fields,
73
+ exclude_none=True,
74
+ )
75
+ return _dict
76
+
77
+ @classmethod
78
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
+ """Create an instance of AdvancedOAuth2MCPAuthenticationConfig from a dict"""
80
+ if obj is None:
81
+ return None
82
+
83
+ if not isinstance(obj, dict):
84
+ return cls.model_validate(obj)
85
+
86
+ _obj = cls.model_validate({
87
+ "client_id": obj.get("client_id"),
88
+ "client_secret": obj.get("client_secret"),
89
+ "scopes": obj.get("scopes"),
90
+ "auth_uri": obj.get("auth_uri"),
91
+ "token_uri": obj.get("token_uri")
92
+ })
93
+ return _obj
94
+
95
+
@@ -35,8 +35,9 @@ class AiAssistantDto(BaseModel):
35
35
  description: Optional[StrictStr] = None
36
36
  assistant_name: Optional[StrictStr] = Field(default=None, alias="assistantName")
37
37
  question_quota_available: Optional[StrictBool] = Field(default=None, alias="questionQuotaAvailable")
38
+ favorite: Optional[StrictBool] = None
38
39
  created: Optional[datetime] = None
39
- __properties: ClassVar[List[str]] = ["id", "dataset", "username", "shared", "description", "assistantName", "questionQuotaAvailable", "created"]
40
+ __properties: ClassVar[List[str]] = ["id", "dataset", "username", "shared", "description", "assistantName", "questionQuotaAvailable", "favorite", "created"]
40
41
 
41
42
  model_config = ConfigDict(
42
43
  populate_by_name=True,
@@ -99,6 +100,7 @@ class AiAssistantDto(BaseModel):
99
100
  "description": obj.get("description"),
100
101
  "assistantName": obj.get("assistantName"),
101
102
  "questionQuotaAvailable": obj.get("questionQuotaAvailable"),
103
+ "favorite": obj.get("favorite"),
102
104
  "created": obj.get("created")
103
105
  })
104
106
  return _obj
@@ -32,11 +32,13 @@ class AiAssistantFilterDto(BaseModel):
32
32
  team_id: Optional[StrictInt] = Field(default=None, description="Filter over the team id", alias="teamId")
33
33
  organization_id: Optional[StrictInt] = Field(default=None, description="Filter over the organization id", alias="organizationId")
34
34
  owned: Optional[StrictBool] = None
35
+ favorite: Optional[StrictBool] = None
36
+ favorite_first: Optional[StrictBool] = Field(default=None, alias="favoriteFirst")
35
37
  page: Optional[StrictInt] = None
36
38
  size: Optional[StrictInt] = None
37
39
  sort_by: Optional[StrictStr] = Field(default=None, alias="sortBy")
38
40
  sort_dir: Optional[StrictStr] = Field(default=None, alias="sortDir")
39
- __properties: ClassVar[List[str]] = ["search", "aiAssistantId", "userId", "teamId", "organizationId", "owned", "page", "size", "sortBy", "sortDir"]
41
+ __properties: ClassVar[List[str]] = ["search", "aiAssistantId", "userId", "teamId", "organizationId", "owned", "favorite", "favoriteFirst", "page", "size", "sortBy", "sortDir"]
40
42
 
41
43
  model_config = ConfigDict(
42
44
  populate_by_name=True,
@@ -95,6 +97,8 @@ class AiAssistantFilterDto(BaseModel):
95
97
  "teamId": obj.get("teamId"),
96
98
  "organizationId": obj.get("organizationId"),
97
99
  "owned": obj.get("owned"),
100
+ "favorite": obj.get("favorite"),
101
+ "favoriteFirst": obj.get("favoriteFirst"),
98
102
  "page": obj.get("page"),
99
103
  "size": obj.get("size"),
100
104
  "sortBy": obj.get("sortBy"),
@@ -0,0 +1,125 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QAnswer: Api Documentation
5
+
6
+ APIs provided by QAnswer
7
+
8
+ The version of the OpenAPI document: 1.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, StrictFloat, StrictInt, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from qanswer_sdk.models.llm_endpoint_read_output import LLMEndpointReadOutput
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class AIExcelTaskSettings(BaseModel):
27
+ """
28
+ AIExcelTaskSettings
29
+ """ # noqa: E501
30
+ prompt: Optional[StrictStr] = None
31
+ bot_seed: Optional[StrictInt] = None
32
+ bot_temperature: Optional[Union[StrictFloat, StrictInt]] = None
33
+ bot_answer_length: Optional[StrictStr] = None
34
+ number_of_references: Optional[StrictInt] = None
35
+ stream_speed: Optional[Union[StrictFloat, StrictInt]] = None
36
+ context_window: Optional[StrictInt] = None
37
+ max_tokens: Optional[StrictInt] = None
38
+ slots_values: Optional[Dict[str, StrictStr]] = None
39
+ bot_name: Optional[StrictStr] = None
40
+ bot_description: Optional[StrictStr] = None
41
+ llm_id: Optional[StrictInt] = Field(default=None, description="The LLM ID. This field is populated based on the llm_choice.")
42
+ llm_endpoint: Optional[LLMEndpointReadOutput] = None
43
+ __properties: ClassVar[List[str]] = ["prompt", "bot_seed", "bot_temperature", "bot_answer_length", "number_of_references", "stream_speed", "context_window", "max_tokens", "slots_values", "bot_name", "bot_description", "llm_id", "llm_endpoint"]
44
+
45
+ @field_validator('bot_answer_length')
46
+ def bot_answer_length_validate_enum(cls, value):
47
+ """Validates the enum"""
48
+ if value is None:
49
+ return value
50
+
51
+ if value not in set(['short', 'brief', 'long']):
52
+ raise ValueError("must be one of enum values ('short', 'brief', 'long')")
53
+ return value
54
+
55
+ model_config = ConfigDict(
56
+ populate_by_name=True,
57
+ validate_assignment=True,
58
+ protected_namespaces=(),
59
+ )
60
+
61
+
62
+ def to_str(self) -> str:
63
+ """Returns the string representation of the model using alias"""
64
+ return pprint.pformat(self.model_dump(by_alias=True))
65
+
66
+ def to_json(self) -> str:
67
+ """Returns the JSON representation of the model using alias"""
68
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
69
+ return json.dumps(self.to_dict())
70
+
71
+ @classmethod
72
+ def from_json(cls, json_str: str) -> Optional[Self]:
73
+ """Create an instance of AIExcelTaskSettings from a JSON string"""
74
+ return cls.from_dict(json.loads(json_str))
75
+
76
+ def to_dict(self) -> Dict[str, Any]:
77
+ """Return the dictionary representation of the model using alias.
78
+
79
+ This has the following differences from calling pydantic's
80
+ `self.model_dump(by_alias=True)`:
81
+
82
+ * `None` is only added to the output dict for nullable fields that
83
+ were set at model initialization. Other fields with value `None`
84
+ are ignored.
85
+ """
86
+ excluded_fields: Set[str] = set([
87
+ ])
88
+
89
+ _dict = self.model_dump(
90
+ by_alias=True,
91
+ exclude=excluded_fields,
92
+ exclude_none=True,
93
+ )
94
+ # override the default output from pydantic by calling `to_dict()` of llm_endpoint
95
+ if self.llm_endpoint:
96
+ _dict['llm_endpoint'] = self.llm_endpoint.to_dict()
97
+ return _dict
98
+
99
+ @classmethod
100
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
101
+ """Create an instance of AIExcelTaskSettings from a dict"""
102
+ if obj is None:
103
+ return None
104
+
105
+ if not isinstance(obj, dict):
106
+ return cls.model_validate(obj)
107
+
108
+ _obj = cls.model_validate({
109
+ "prompt": obj.get("prompt"),
110
+ "bot_seed": obj.get("bot_seed"),
111
+ "bot_temperature": obj.get("bot_temperature"),
112
+ "bot_answer_length": obj.get("bot_answer_length"),
113
+ "number_of_references": obj.get("number_of_references"),
114
+ "stream_speed": obj.get("stream_speed"),
115
+ "context_window": obj.get("context_window"),
116
+ "max_tokens": obj.get("max_tokens"),
117
+ "slots_values": obj.get("slots_values"),
118
+ "bot_name": obj.get("bot_name"),
119
+ "bot_description": obj.get("bot_description"),
120
+ "llm_id": obj.get("llm_id"),
121
+ "llm_endpoint": LLMEndpointReadOutput.from_dict(obj["llm_endpoint"]) if obj.get("llm_endpoint") is not None else None
122
+ })
123
+ return _obj
124
+
125
+