shaped 2.0.0__py3-none-any.whl → 2.0.2__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 (323) hide show
  1. shaped/__init__.py +54 -4
  2. shaped/autogen/__init__.py +541 -66
  3. shaped/autogen/api/__init__.py +4 -3
  4. shaped/autogen/api/engine_api.py +1467 -0
  5. shaped/autogen/api/{dataset_api.py → query_api.py} +219 -194
  6. shaped/autogen/api/table_api.py +1494 -0
  7. shaped/autogen/api/{model_management_api.py → view_api.py} +179 -181
  8. shaped/autogen/api_client.py +15 -8
  9. shaped/autogen/configuration.py +20 -9
  10. shaped/autogen/exceptions.py +19 -2
  11. shaped/autogen/models/__init__.py +254 -52
  12. shaped/autogen/models/ai_enrichment_view_config.py +123 -0
  13. shaped/autogen/models/{path.py → algorithm.py} +19 -19
  14. shaped/autogen/models/amplitude_table_config.py +106 -0
  15. shaped/autogen/models/ascending.py +136 -0
  16. shaped/autogen/models/attn_dropout_prob.py +136 -0
  17. shaped/autogen/models/attribute_journey.py +124 -0
  18. shaped/autogen/models/attribute_value.py +178 -0
  19. shaped/autogen/models/autoscaling_config.py +95 -0
  20. shaped/autogen/models/aws_pinpoint_table_config.py +108 -0
  21. shaped/autogen/models/batch_size.py +136 -0
  22. shaped/autogen/models/batch_size1.py +136 -0
  23. shaped/autogen/models/batch_size2.py +136 -0
  24. shaped/autogen/models/big_query_table_config.py +147 -0
  25. shaped/autogen/models/bm25.py +136 -0
  26. shaped/autogen/models/boosted_reorder_step.py +125 -0
  27. shaped/autogen/models/canary_rollout.py +99 -0
  28. shaped/autogen/models/candidate_attributes_retrieve_step.py +126 -0
  29. shaped/autogen/models/candidate_ids_retrieve_step.py +113 -0
  30. shaped/autogen/models/candidate_retrieval_strategy.py +41 -0
  31. shaped/autogen/models/clickhouse_table_config.py +146 -0
  32. shaped/autogen/models/column_order_retrieve_step.py +123 -0
  33. shaped/autogen/models/column_ordering.py +91 -0
  34. shaped/autogen/models/create_table_response.py +87 -0
  35. shaped/autogen/models/create_view_response.py +87 -0
  36. shaped/autogen/models/custom_table_config.py +135 -0
  37. shaped/autogen/models/data_compute_config.py +89 -0
  38. shaped/autogen/models/data_config.py +145 -0
  39. shaped/autogen/models/data_config_interaction_table.py +146 -0
  40. shaped/autogen/models/data_split_config.py +88 -0
  41. shaped/autogen/models/data_split_strategy.py +37 -0
  42. shaped/autogen/models/data_tier.py +37 -0
  43. shaped/autogen/models/default.py +246 -0
  44. shaped/autogen/models/delete_engine_response.py +87 -0
  45. shaped/autogen/models/delete_table_response.py +87 -0
  46. shaped/autogen/models/delete_view_response.py +87 -0
  47. shaped/autogen/models/deployment_config.py +123 -0
  48. shaped/autogen/models/distance_function.py +38 -0
  49. shaped/autogen/models/diversity_reorder_step.py +137 -0
  50. shaped/autogen/models/dropout_rate.py +136 -0
  51. shaped/autogen/models/dynamo_db_table_config.py +160 -0
  52. shaped/autogen/models/dynamo_db_table_config_scan_kwargs_value.py +138 -0
  53. shaped/autogen/models/embedder_batch_size.py +136 -0
  54. shaped/autogen/models/embedding_config.py +93 -0
  55. shaped/autogen/models/embedding_dim.py +136 -0
  56. shaped/autogen/models/embedding_dims.py +136 -0
  57. shaped/autogen/models/embedding_size.py +136 -0
  58. shaped/autogen/models/encoder.py +140 -0
  59. shaped/autogen/models/encoding_pooling_strategy.py +38 -0
  60. shaped/autogen/models/engine.py +109 -0
  61. shaped/autogen/models/engine_config_v2.py +152 -0
  62. shaped/autogen/models/engine_details_response.py +120 -0
  63. shaped/autogen/models/engine_schema.py +113 -0
  64. shaped/autogen/models/engine_schema_user_inner.py +134 -0
  65. shaped/autogen/models/entity_config.py +109 -0
  66. shaped/autogen/models/entity_journey.py +152 -0
  67. shaped/autogen/models/entity_type.py +38 -0
  68. shaped/autogen/models/evaluation_config.py +92 -0
  69. shaped/autogen/models/exploration_reorder_step.py +125 -0
  70. shaped/autogen/models/expression_filter_step.py +106 -0
  71. shaped/autogen/models/factors.py +136 -0
  72. shaped/autogen/models/factors1.py +136 -0
  73. shaped/autogen/models/feature.py +90 -0
  74. shaped/autogen/models/feature_type.py +60 -0
  75. shaped/autogen/models/file_table_config.py +112 -0
  76. shaped/autogen/models/filter_config.py +99 -0
  77. shaped/autogen/models/filter_dataset.py +140 -0
  78. shaped/autogen/models/filter_index_type.py +36 -0
  79. shaped/autogen/models/filter_retrieve_step.py +113 -0
  80. shaped/autogen/models/global_filter.py +102 -0
  81. shaped/autogen/models/hidden_dropout_prob.py +136 -0
  82. shaped/autogen/models/hidden_size.py +136 -0
  83. shaped/autogen/models/hidden_size1.py +136 -0
  84. shaped/autogen/models/http_problem_response.py +115 -0
  85. shaped/autogen/models/http_validation_error.py +2 -2
  86. shaped/autogen/models/hugging_face_encoder.py +113 -0
  87. shaped/autogen/models/iceberg_table_config.py +154 -0
  88. shaped/autogen/models/index_config.py +101 -0
  89. shaped/autogen/models/inner_size.py +136 -0
  90. shaped/autogen/models/inner_size1.py +136 -0
  91. shaped/autogen/models/interaction_config.py +122 -0
  92. shaped/autogen/models/interaction_pooling_encoder.py +104 -0
  93. shaped/autogen/models/interaction_round_robin_encoder.py +104 -0
  94. shaped/autogen/models/item_attribute_pooling_encoder.py +124 -0
  95. shaped/autogen/models/journey.py +140 -0
  96. shaped/autogen/models/kafka_table_config.py +129 -0
  97. shaped/autogen/models/kinesis_table_config.py +140 -0
  98. shaped/autogen/models/kinesis_table_config_column_schema_value.py +136 -0
  99. shaped/autogen/models/label.py +90 -0
  100. shaped/autogen/models/label_type.py +37 -0
  101. shaped/autogen/models/laplace_smoothing.py +136 -0
  102. shaped/autogen/models/latency_scaling_policy.py +112 -0
  103. shaped/autogen/models/learning_rate.py +136 -0
  104. shaped/autogen/models/learning_rate1.py +136 -0
  105. shaped/autogen/models/learning_rate2.py +136 -0
  106. shaped/autogen/models/learning_rate3.py +136 -0
  107. shaped/autogen/models/lexical_search_mode.py +99 -0
  108. shaped/autogen/models/list_engines_response.py +95 -0
  109. shaped/autogen/models/list_tables_response.py +95 -0
  110. shaped/autogen/models/list_views_response.py +95 -0
  111. shaped/autogen/models/loss_types.py +37 -0
  112. shaped/autogen/models/lr.py +136 -0
  113. shaped/autogen/models/lr1.py +136 -0
  114. shaped/autogen/models/lr2.py +136 -0
  115. shaped/autogen/models/max_depth.py +136 -0
  116. shaped/autogen/models/max_leaves.py +136 -0
  117. shaped/autogen/models/max_seq_length.py +136 -0
  118. shaped/autogen/models/max_seq_length1.py +136 -0
  119. shaped/autogen/models/max_seq_length2.py +136 -0
  120. shaped/autogen/models/mode.py +134 -0
  121. shaped/autogen/models/mode1.py +134 -0
  122. shaped/autogen/models/mode2.py +136 -0
  123. shaped/autogen/models/mongo_db_table_config.py +147 -0
  124. shaped/autogen/models/mssql_table_config.py +155 -0
  125. shaped/autogen/models/{my_sql_dataset_config.py → my_sql_table_config.py} +45 -28
  126. shaped/autogen/models/n_epochs.py +136 -0
  127. shaped/autogen/models/n_epochs1.py +136 -0
  128. shaped/autogen/models/n_epochs2.py +136 -0
  129. shaped/autogen/models/n_estimators.py +136 -0
  130. shaped/autogen/models/n_heads.py +136 -0
  131. shaped/autogen/models/n_layers.py +136 -0
  132. shaped/autogen/models/neg_per_positive.py +136 -0
  133. shaped/autogen/models/negative_samples_count.py +136 -0
  134. shaped/autogen/models/ngram_tokenizer.py +103 -0
  135. shaped/autogen/models/no_op_config.py +117 -0
  136. shaped/autogen/models/num_blocks.py +136 -0
  137. shaped/autogen/models/num_heads.py +136 -0
  138. shaped/autogen/models/num_leaves.py +136 -0
  139. shaped/autogen/models/objective.py +40 -0
  140. shaped/autogen/models/objective1.py +134 -0
  141. shaped/autogen/models/online_store_config.py +89 -0
  142. shaped/autogen/models/pagination_config.py +87 -0
  143. shaped/autogen/models/parameter_definition.py +96 -0
  144. shaped/autogen/models/parameters_value.py +240 -0
  145. shaped/autogen/models/passthrough_score.py +104 -0
  146. shaped/autogen/models/personal_filter.py +104 -0
  147. shaped/autogen/models/pipeline_stage_explanation.py +118 -0
  148. shaped/autogen/models/policy.py +134 -0
  149. shaped/autogen/models/pool_fn.py +134 -0
  150. shaped/autogen/models/pooling_function.py +37 -0
  151. shaped/autogen/models/{postgres_dataset_config.py → postgres_table_config.py} +66 -28
  152. shaped/autogen/models/posthog_table_config.py +133 -0
  153. shaped/autogen/models/prebuilt_filter_step.py +113 -0
  154. shaped/autogen/models/precomputed_item_embedding.py +99 -0
  155. shaped/autogen/models/precomputed_user_embedding.py +99 -0
  156. shaped/autogen/models/query.py +136 -0
  157. shaped/autogen/models/query1.py +136 -0
  158. shaped/autogen/models/query_any_of.py +140 -0
  159. shaped/autogen/models/query_definition.py +106 -0
  160. shaped/autogen/models/query_encoder.py +194 -0
  161. shaped/autogen/models/query_explanation.py +197 -0
  162. shaped/autogen/models/query_request.py +121 -0
  163. shaped/autogen/models/query_result.py +113 -0
  164. shaped/autogen/models/query_table_config.py +99 -0
  165. shaped/autogen/models/rank_item_attribute_values_query_config.py +122 -0
  166. shaped/autogen/models/rank_query_config.py +167 -0
  167. shaped/autogen/models/rank_query_config_filter_inner.py +149 -0
  168. shaped/autogen/models/rank_query_config_reorder_inner.py +149 -0
  169. shaped/autogen/models/rank_query_config_retrieve_inner.py +196 -0
  170. shaped/autogen/models/recreate_rollout.py +97 -0
  171. shaped/autogen/models/{redshift_dataset_config.py → redshift_table_config.py} +48 -25
  172. shaped/autogen/models/reference_table_config.py +113 -0
  173. shaped/autogen/models/regularization.py +136 -0
  174. shaped/autogen/models/request.py +378 -0
  175. shaped/autogen/models/request1.py +140 -0
  176. shaped/autogen/models/requests_per_second_scaling_policy.py +112 -0
  177. shaped/autogen/models/response_get_view_details_views_view_name_get.py +134 -0
  178. shaped/autogen/models/result.py +145 -0
  179. shaped/autogen/models/result_embeddings_value.py +127 -0
  180. shaped/autogen/models/retriever.py +196 -0
  181. shaped/autogen/models/retriever1.py +196 -0
  182. shaped/autogen/models/rollout_config.py +91 -0
  183. shaped/autogen/models/rudderstack_table_config.py +106 -0
  184. shaped/autogen/models/sampling_strategy.py +36 -0
  185. shaped/autogen/models/saved_query_info_response.py +89 -0
  186. shaped/autogen/models/saved_query_list_response.py +87 -0
  187. shaped/autogen/models/saved_query_request.py +115 -0
  188. shaped/autogen/models/schema_config.py +117 -0
  189. shaped/autogen/models/score.py +134 -0
  190. shaped/autogen/models/score_ensemble.py +140 -0
  191. shaped/autogen/models/score_ensemble_policy_config.py +141 -0
  192. shaped/autogen/models/score_ensemble_policy_config_policies_inner.py +422 -0
  193. shaped/autogen/models/search_config.py +105 -0
  194. shaped/autogen/models/segment_table_config.py +106 -0
  195. shaped/autogen/models/sequence_length.py +136 -0
  196. shaped/autogen/models/server_config.py +87 -0
  197. shaped/autogen/models/setup_engine_response.py +87 -0
  198. shaped/autogen/models/shaped_internal_recsys_policies_als_model_policy_als_model_policy_config.py +148 -0
  199. shaped/autogen/models/shaped_internal_recsys_policies_beeformer_model_policy_beeformer_model_policy_beeformer_model_policy_config.py +154 -0
  200. shaped/autogen/models/shaped_internal_recsys_policies_bert_model_policy_bert_model_policy_bert_model_policy_config.py +209 -0
  201. shaped/autogen/models/shaped_internal_recsys_policies_chronological_model_policy_chronological_model_policy_config.py +137 -0
  202. shaped/autogen/models/shaped_internal_recsys_policies_elsa_model_policy_elsa_model_policy_elsa_model_policy_config.py +139 -0
  203. shaped/autogen/models/shaped_internal_recsys_policies_gsasrec_model_policy_gsasrec_model_policy_gsas_rec_model_policy_config.py +205 -0
  204. shaped/autogen/models/shaped_internal_recsys_policies_item2vec_model_policy_item2_vec_model_policy_config.py +140 -0
  205. shaped/autogen/models/shaped_internal_recsys_policies_item_content_similarity_model_policy_item_content_similarity_model_policy_config.py +152 -0
  206. shaped/autogen/models/shaped_internal_recsys_policies_lightgbm_model_policy_lightgbm_model_policy_light_gbm_model_policy_config.py +239 -0
  207. shaped/autogen/models/shaped_internal_recsys_policies_ngram_model_policy_ngram_model_policy_config.py +119 -0
  208. shaped/autogen/models/shaped_internal_recsys_policies_popular_model_policy_popular_model_policy_config.py +137 -0
  209. shaped/autogen/models/shaped_internal_recsys_policies_random_model_policy_random_model_policy_config.py +104 -0
  210. shaped/autogen/models/shaped_internal_recsys_policies_recently_popular_policy_recently_popular_policy_config.py +130 -0
  211. shaped/autogen/models/shaped_internal_recsys_policies_rising_popular_policy_rising_popular_policy_config.py +123 -0
  212. shaped/autogen/models/shaped_internal_recsys_policies_sasrec_model_policy_sasrec_model_policy_sas_rec_model_policy_config.py +224 -0
  213. shaped/autogen/models/shaped_internal_recsys_policies_svd_model_policy_svd_model_policy_config.py +119 -0
  214. shaped/autogen/models/shaped_internal_recsys_policies_two_tower_model_policy_two_tower_model_policy_two_tower_model_policy_config.py +159 -0
  215. shaped/autogen/models/shaped_internal_recsys_policies_user_item_content_similarity_model_policy_user_item_content_similarity_model_policy_config.py +131 -0
  216. shaped/autogen/models/shaped_internal_recsys_policies_widedeep_model_policy_wide_deep_model_policy_config.py +131 -0
  217. shaped/autogen/models/shaped_internal_recsys_policies_xgboost_model_policy_xg_boost_model_policy_config.py +149 -0
  218. shaped/autogen/models/shopify_table_config.py +156 -0
  219. shaped/autogen/models/similarity_retrieve_step.py +121 -0
  220. shaped/autogen/models/{snowflake_dataset_config.py → snowflake_table_config.py} +47 -18
  221. shaped/autogen/models/sql_transform_type.py +37 -0
  222. shaped/autogen/models/sql_view_config.py +111 -0
  223. shaped/autogen/models/stemmer_tokenizer.py +105 -0
  224. shaped/autogen/models/step_explanation.py +137 -0
  225. shaped/autogen/models/strategy.py +134 -0
  226. shaped/autogen/models/table.py +102 -0
  227. shaped/autogen/models/table_deployment_type.py +38 -0
  228. shaped/autogen/models/table_insert_arguments.py +87 -0
  229. shaped/autogen/models/table_insert_response.py +87 -0
  230. shaped/autogen/models/text_encoding.py +136 -0
  231. shaped/autogen/models/text_search_retrieve_step.py +121 -0
  232. shaped/autogen/models/time_frequency.py +136 -0
  233. shaped/autogen/models/time_window.py +136 -0
  234. shaped/autogen/models/time_window_in_days.py +142 -0
  235. shaped/autogen/models/tokenizer.py +149 -0
  236. shaped/autogen/models/trained_model_encoder.py +99 -0
  237. shaped/autogen/models/training_compute_config.py +99 -0
  238. shaped/autogen/models/training_config.py +121 -0
  239. shaped/autogen/models/training_config_models_inner.py +308 -0
  240. shaped/autogen/models/training_strategy.py +37 -0
  241. shaped/autogen/models/trending_mode.py +37 -0
  242. shaped/autogen/models/truncate_filter_step.py +106 -0
  243. shaped/autogen/models/tunable_bool.py +97 -0
  244. shaped/autogen/models/tunable_float.py +118 -0
  245. shaped/autogen/models/tunable_int.py +118 -0
  246. shaped/autogen/models/tunable_int_categorical.py +99 -0
  247. shaped/autogen/models/tunable_string.py +99 -0
  248. shaped/autogen/models/tuning_config.py +89 -0
  249. shaped/autogen/models/type.py +134 -0
  250. shaped/autogen/models/update_table_response.py +87 -0
  251. shaped/autogen/models/update_view_response.py +87 -0
  252. shaped/autogen/models/user_attribute_pooling_encoder.py +124 -0
  253. shaped/autogen/models/val_split.py +136 -0
  254. shaped/autogen/models/validation_error.py +13 -3
  255. shaped/autogen/models/validation_error_loc_inner.py +138 -0
  256. shaped/autogen/models/value_type.py +7 -5
  257. shaped/autogen/models/vector_search_mode.py +99 -0
  258. shaped/autogen/models/view.py +104 -0
  259. shaped/autogen/models/view_details_ai.py +140 -0
  260. shaped/autogen/models/view_details_ai_schema_value.py +153 -0
  261. shaped/autogen/models/view_details_sql.py +140 -0
  262. shaped/autogen/models/view_status.py +41 -0
  263. shaped/autogen/models/weight_decay.py +136 -0
  264. shaped/autogen/models/whitespace_tokenizer.py +97 -0
  265. shaped/autogen/models/window_size.py +136 -0
  266. shaped/autogen/rest.py +8 -2
  267. shaped/cli/shaped_cli.py +12 -7
  268. shaped/client.py +587 -174
  269. shaped/config_builders.py +695 -0
  270. shaped/query_builder.py +774 -0
  271. {shaped-2.0.0.dist-info → shaped-2.0.2.dist-info}/METADATA +119 -56
  272. shaped-2.0.2.dist-info/RECORD +278 -0
  273. shaped-2.0.2.dist-info/entry_points.txt +2 -0
  274. shaped/autogen/api/model_inference_api.py +0 -2825
  275. shaped/autogen/models/amplitude_dataset_config.py +0 -96
  276. shaped/autogen/models/aws_pinpoint_dataset_config.py +0 -96
  277. shaped/autogen/models/big_query_dataset_config.py +0 -114
  278. shaped/autogen/models/complement_items_request.py +0 -99
  279. shaped/autogen/models/complement_items_response.py +0 -89
  280. shaped/autogen/models/connectors_inner.py +0 -134
  281. shaped/autogen/models/create_dataset_arguments.py +0 -263
  282. shaped/autogen/models/create_embedding_response.py +0 -87
  283. shaped/autogen/models/create_item_embedding_request.py +0 -89
  284. shaped/autogen/models/create_model_arguments.py +0 -107
  285. shaped/autogen/models/create_model_response.py +0 -87
  286. shaped/autogen/models/create_user_embedding_request.py +0 -89
  287. shaped/autogen/models/custom_dataset_config.py +0 -115
  288. shaped/autogen/models/dataset_config.py +0 -101
  289. shaped/autogen/models/dataset_schema_type.py +0 -47
  290. shaped/autogen/models/datasets_inner.py +0 -91
  291. shaped/autogen/models/delete_model_response.py +0 -87
  292. shaped/autogen/models/fetch_config.py +0 -95
  293. shaped/autogen/models/file_config.py +0 -105
  294. shaped/autogen/models/file_source_config.py +0 -89
  295. shaped/autogen/models/inference_config.py +0 -101
  296. shaped/autogen/models/insert_model_response.py +0 -87
  297. shaped/autogen/models/interaction.py +0 -87
  298. shaped/autogen/models/list_datasets_response.py +0 -95
  299. shaped/autogen/models/list_models_response.py +0 -95
  300. shaped/autogen/models/model_config.py +0 -99
  301. shaped/autogen/models/model_response.py +0 -95
  302. shaped/autogen/models/mongo_db_dataset_config.py +0 -119
  303. shaped/autogen/models/post_rank_request.py +0 -117
  304. shaped/autogen/models/rank_attribute_response.py +0 -89
  305. shaped/autogen/models/rank_grid_attribute_request.py +0 -91
  306. shaped/autogen/models/rank_grid_attribute_request1.py +0 -93
  307. shaped/autogen/models/rank_grid_attribute_response.py +0 -91
  308. shaped/autogen/models/rank_response.py +0 -91
  309. shaped/autogen/models/retrieve_request.py +0 -101
  310. shaped/autogen/models/retrieve_response.py +0 -91
  311. shaped/autogen/models/retriever_top_k_override.py +0 -97
  312. shaped/autogen/models/rudder_stack_dataset_config.py +0 -96
  313. shaped/autogen/models/segment_dataset_config.py +0 -96
  314. shaped/autogen/models/similar_item_request.py +0 -101
  315. shaped/autogen/models/similar_response.py +0 -89
  316. shaped/autogen/models/similar_users_request.py +0 -99
  317. shaped/autogen/models/successful_response.py +0 -87
  318. shaped/autogen/models/view_model_response.py +0 -99
  319. shaped-2.0.0.dist-info/RECORD +0 -73
  320. shaped-2.0.0.dist-info/entry_points.txt +0 -2
  321. {shaped-2.0.0.dist-info → shaped-2.0.2.dist-info}/WHEEL +0 -0
  322. {shaped-2.0.0.dist-info → shaped-2.0.2.dist-info}/top_level.txt +0 -0
  323. {shaped-2.0.0.dist-info → shaped-2.0.2.dist-info}/zip-safe +0 -0
@@ -0,0 +1,167 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.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, StrictInt, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from shaped.autogen.models.entity_type import EntityType
23
+ from shaped.autogen.models.rank_query_config_filter_inner import RankQueryConfigFilterInner
24
+ from shaped.autogen.models.rank_query_config_reorder_inner import RankQueryConfigReorderInner
25
+ from shaped.autogen.models.rank_query_config_retrieve_inner import RankQueryConfigRetrieveInner
26
+ from shaped.autogen.models.score import Score
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+
30
+ class RankQueryConfig(BaseModel):
31
+ """
32
+ Config for a query pipeline that ranks entities (items or users) based on the given definition. The entity type is determined by the 'from' field.
33
+ """ # noqa: E501
34
+ columns: Optional[List[StrictStr]] = None
35
+ embeddings: Optional[List[StrictStr]] = None
36
+ retrieve: Optional[List[RankQueryConfigRetrieveInner]] = Field(default=None, description="List of retrieval steps to execute.")
37
+ filter: Optional[List[RankQueryConfigFilterInner]] = None
38
+ score: Optional[Score] = None
39
+ reorder: Optional[List[RankQueryConfigReorderInner]] = Field(default=None, description="List of reordering steps to apply.")
40
+ limit: Optional[StrictInt] = None
41
+ type: Optional[StrictStr] = Field(default='rank', description="Query config type discriminator.")
42
+ var_from: Optional[EntityType] = Field(default=None, alias="from")
43
+ __properties: ClassVar[List[str]] = ["columns", "embeddings", "retrieve", "filter", "score", "reorder", "limit", "type", "from"]
44
+
45
+ @field_validator('type')
46
+ def type_validate_enum(cls, value):
47
+ """Validates the enum"""
48
+ if value is None:
49
+ return value
50
+
51
+ if value not in set(['rank']):
52
+ raise ValueError("must be one of enum values ('rank')")
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 RankQueryConfig 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 each item in retrieve (list)
95
+ _items = []
96
+ if self.retrieve:
97
+ for _item_retrieve in self.retrieve:
98
+ if _item_retrieve:
99
+ _items.append(_item_retrieve.to_dict())
100
+ _dict['retrieve'] = _items
101
+ # override the default output from pydantic by calling `to_dict()` of each item in filter (list)
102
+ _items = []
103
+ if self.filter:
104
+ for _item_filter in self.filter:
105
+ if _item_filter:
106
+ _items.append(_item_filter.to_dict())
107
+ _dict['filter'] = _items
108
+ # override the default output from pydantic by calling `to_dict()` of score
109
+ if self.score:
110
+ _dict['score'] = self.score.to_dict()
111
+ # override the default output from pydantic by calling `to_dict()` of each item in reorder (list)
112
+ _items = []
113
+ if self.reorder:
114
+ for _item_reorder in self.reorder:
115
+ if _item_reorder:
116
+ _items.append(_item_reorder.to_dict())
117
+ _dict['reorder'] = _items
118
+ # set to None if columns (nullable) is None
119
+ # and model_fields_set contains the field
120
+ if self.columns is None and "columns" in self.model_fields_set:
121
+ _dict['columns'] = None
122
+
123
+ # set to None if embeddings (nullable) is None
124
+ # and model_fields_set contains the field
125
+ if self.embeddings is None and "embeddings" in self.model_fields_set:
126
+ _dict['embeddings'] = None
127
+
128
+ # set to None if filter (nullable) is None
129
+ # and model_fields_set contains the field
130
+ if self.filter is None and "filter" in self.model_fields_set:
131
+ _dict['filter'] = None
132
+
133
+ # set to None if limit (nullable) is None
134
+ # and model_fields_set contains the field
135
+ if self.limit is None and "limit" in self.model_fields_set:
136
+ _dict['limit'] = None
137
+
138
+ # set to None if var_from (nullable) is None
139
+ # and model_fields_set contains the field
140
+ if self.var_from is None and "var_from" in self.model_fields_set:
141
+ _dict['from'] = None
142
+
143
+ return _dict
144
+
145
+ @classmethod
146
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
147
+ """Create an instance of RankQueryConfig from a dict"""
148
+ if obj is None:
149
+ return None
150
+
151
+ if not isinstance(obj, dict):
152
+ return cls.model_validate(obj)
153
+
154
+ _obj = cls.model_validate({
155
+ "columns": obj.get("columns"),
156
+ "embeddings": obj.get("embeddings"),
157
+ "retrieve": [RankQueryConfigRetrieveInner.from_dict(_item) for _item in obj["retrieve"]] if obj.get("retrieve") is not None else None,
158
+ "filter": [RankQueryConfigFilterInner.from_dict(_item) for _item in obj["filter"]] if obj.get("filter") is not None else None,
159
+ "score": Score.from_dict(obj["score"]) if obj.get("score") is not None else None,
160
+ "reorder": [RankQueryConfigReorderInner.from_dict(_item) for _item in obj["reorder"]] if obj.get("reorder") is not None else None,
161
+ "limit": obj.get("limit"),
162
+ "type": obj.get("type") if obj.get("type") is not None else 'rank',
163
+ "from": obj.get("from")
164
+ })
165
+ return _obj
166
+
167
+
@@ -0,0 +1,149 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.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
+ from inspect import getfullargspec
17
+ import json
18
+ import pprint
19
+ import re # noqa: F401
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
21
+ from typing import Optional
22
+ from shaped.autogen.models.expression_filter_step import ExpressionFilterStep
23
+ from shaped.autogen.models.prebuilt_filter_step import PrebuiltFilterStep
24
+ from shaped.autogen.models.truncate_filter_step import TruncateFilterStep
25
+ from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
26
+ from typing_extensions import Literal, Self
27
+ from pydantic import Field
28
+
29
+ RANKQUERYCONFIGFILTERINNER_ANY_OF_SCHEMAS = ["ExpressionFilterStep", "PrebuiltFilterStep", "TruncateFilterStep"]
30
+
31
+ class RankQueryConfigFilterInner(BaseModel):
32
+ """
33
+ RankQueryConfigFilterInner
34
+ """
35
+
36
+ # data type: PrebuiltFilterStep
37
+ anyof_schema_1_validator: Optional[PrebuiltFilterStep] = None
38
+ # data type: ExpressionFilterStep
39
+ anyof_schema_2_validator: Optional[ExpressionFilterStep] = None
40
+ # data type: TruncateFilterStep
41
+ anyof_schema_3_validator: Optional[TruncateFilterStep] = None
42
+ if TYPE_CHECKING:
43
+ actual_instance: Optional[Union[ExpressionFilterStep, PrebuiltFilterStep, TruncateFilterStep]] = None
44
+ else:
45
+ actual_instance: Any = None
46
+ any_of_schemas: Set[str] = { "ExpressionFilterStep", "PrebuiltFilterStep", "TruncateFilterStep" }
47
+
48
+ model_config = {
49
+ "validate_assignment": True,
50
+ "protected_namespaces": (),
51
+ }
52
+
53
+ def __init__(self, *args, **kwargs) -> None:
54
+ if args:
55
+ if len(args) > 1:
56
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
57
+ if kwargs:
58
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
59
+ super().__init__(actual_instance=args[0])
60
+ else:
61
+ super().__init__(**kwargs)
62
+
63
+ @field_validator('actual_instance')
64
+ def actual_instance_must_validate_anyof(cls, v):
65
+ instance = RankQueryConfigFilterInner.model_construct()
66
+ error_messages = []
67
+ # validate data type: PrebuiltFilterStep
68
+ if not isinstance(v, PrebuiltFilterStep):
69
+ error_messages.append(f"Error! Input type `{type(v)}` is not `PrebuiltFilterStep`")
70
+ else:
71
+ return v
72
+
73
+ # validate data type: ExpressionFilterStep
74
+ if not isinstance(v, ExpressionFilterStep):
75
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ExpressionFilterStep`")
76
+ else:
77
+ return v
78
+
79
+ # validate data type: TruncateFilterStep
80
+ if not isinstance(v, TruncateFilterStep):
81
+ error_messages.append(f"Error! Input type `{type(v)}` is not `TruncateFilterStep`")
82
+ else:
83
+ return v
84
+
85
+ if error_messages:
86
+ # no match
87
+ raise ValueError("No match found when setting the actual_instance in RankQueryConfigFilterInner with anyOf schemas: ExpressionFilterStep, PrebuiltFilterStep, TruncateFilterStep. Details: " + ", ".join(error_messages))
88
+ else:
89
+ return v
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
93
+ return cls.from_json(json.dumps(obj))
94
+
95
+ @classmethod
96
+ def from_json(cls, json_str: str) -> Self:
97
+ """Returns the object represented by the json string"""
98
+ instance = cls.model_construct()
99
+ error_messages = []
100
+ # anyof_schema_1_validator: Optional[PrebuiltFilterStep] = None
101
+ try:
102
+ instance.actual_instance = PrebuiltFilterStep.from_json(json_str)
103
+ return instance
104
+ except (ValidationError, ValueError) as e:
105
+ error_messages.append(str(e))
106
+ # anyof_schema_2_validator: Optional[ExpressionFilterStep] = None
107
+ try:
108
+ instance.actual_instance = ExpressionFilterStep.from_json(json_str)
109
+ return instance
110
+ except (ValidationError, ValueError) as e:
111
+ error_messages.append(str(e))
112
+ # anyof_schema_3_validator: Optional[TruncateFilterStep] = None
113
+ try:
114
+ instance.actual_instance = TruncateFilterStep.from_json(json_str)
115
+ return instance
116
+ except (ValidationError, ValueError) as e:
117
+ error_messages.append(str(e))
118
+
119
+ if error_messages:
120
+ # no match
121
+ raise ValueError("No match found when deserializing the JSON string into RankQueryConfigFilterInner with anyOf schemas: ExpressionFilterStep, PrebuiltFilterStep, TruncateFilterStep. Details: " + ", ".join(error_messages))
122
+ else:
123
+ return instance
124
+
125
+ def to_json(self) -> str:
126
+ """Returns the JSON representation of the actual instance"""
127
+ if self.actual_instance is None:
128
+ return "null"
129
+
130
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
131
+ return self.actual_instance.to_json()
132
+ else:
133
+ return json.dumps(self.actual_instance)
134
+
135
+ def to_dict(self) -> Optional[Union[Dict[str, Any], ExpressionFilterStep, PrebuiltFilterStep, TruncateFilterStep]]:
136
+ """Returns the dict representation of the actual instance"""
137
+ if self.actual_instance is None:
138
+ return None
139
+
140
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
141
+ return self.actual_instance.to_dict()
142
+ else:
143
+ return self.actual_instance
144
+
145
+ def to_str(self) -> str:
146
+ """Returns the string representation of the actual instance"""
147
+ return pprint.pformat(self.model_dump())
148
+
149
+
@@ -0,0 +1,149 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.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
+ from inspect import getfullargspec
17
+ import json
18
+ import pprint
19
+ import re # noqa: F401
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
21
+ from typing import Optional
22
+ from shaped.autogen.models.boosted_reorder_step import BoostedReorderStep
23
+ from shaped.autogen.models.diversity_reorder_step import DiversityReorderStep
24
+ from shaped.autogen.models.exploration_reorder_step import ExplorationReorderStep
25
+ from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict
26
+ from typing_extensions import Literal, Self
27
+ from pydantic import Field
28
+
29
+ RANKQUERYCONFIGREORDERINNER_ANY_OF_SCHEMAS = ["BoostedReorderStep", "DiversityReorderStep", "ExplorationReorderStep"]
30
+
31
+ class RankQueryConfigReorderInner(BaseModel):
32
+ """
33
+ RankQueryConfigReorderInner
34
+ """
35
+
36
+ # data type: ExplorationReorderStep
37
+ anyof_schema_1_validator: Optional[ExplorationReorderStep] = None
38
+ # data type: BoostedReorderStep
39
+ anyof_schema_2_validator: Optional[BoostedReorderStep] = None
40
+ # data type: DiversityReorderStep
41
+ anyof_schema_3_validator: Optional[DiversityReorderStep] = None
42
+ if TYPE_CHECKING:
43
+ actual_instance: Optional[Union[BoostedReorderStep, DiversityReorderStep, ExplorationReorderStep]] = None
44
+ else:
45
+ actual_instance: Any = None
46
+ any_of_schemas: Set[str] = { "BoostedReorderStep", "DiversityReorderStep", "ExplorationReorderStep" }
47
+
48
+ model_config = {
49
+ "validate_assignment": True,
50
+ "protected_namespaces": (),
51
+ }
52
+
53
+ def __init__(self, *args, **kwargs) -> None:
54
+ if args:
55
+ if len(args) > 1:
56
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
57
+ if kwargs:
58
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
59
+ super().__init__(actual_instance=args[0])
60
+ else:
61
+ super().__init__(**kwargs)
62
+
63
+ @field_validator('actual_instance')
64
+ def actual_instance_must_validate_anyof(cls, v):
65
+ instance = RankQueryConfigReorderInner.model_construct()
66
+ error_messages = []
67
+ # validate data type: ExplorationReorderStep
68
+ if not isinstance(v, ExplorationReorderStep):
69
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ExplorationReorderStep`")
70
+ else:
71
+ return v
72
+
73
+ # validate data type: BoostedReorderStep
74
+ if not isinstance(v, BoostedReorderStep):
75
+ error_messages.append(f"Error! Input type `{type(v)}` is not `BoostedReorderStep`")
76
+ else:
77
+ return v
78
+
79
+ # validate data type: DiversityReorderStep
80
+ if not isinstance(v, DiversityReorderStep):
81
+ error_messages.append(f"Error! Input type `{type(v)}` is not `DiversityReorderStep`")
82
+ else:
83
+ return v
84
+
85
+ if error_messages:
86
+ # no match
87
+ raise ValueError("No match found when setting the actual_instance in RankQueryConfigReorderInner with anyOf schemas: BoostedReorderStep, DiversityReorderStep, ExplorationReorderStep. Details: " + ", ".join(error_messages))
88
+ else:
89
+ return v
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: Dict[str, Any]) -> Self:
93
+ return cls.from_json(json.dumps(obj))
94
+
95
+ @classmethod
96
+ def from_json(cls, json_str: str) -> Self:
97
+ """Returns the object represented by the json string"""
98
+ instance = cls.model_construct()
99
+ error_messages = []
100
+ # anyof_schema_1_validator: Optional[ExplorationReorderStep] = None
101
+ try:
102
+ instance.actual_instance = ExplorationReorderStep.from_json(json_str)
103
+ return instance
104
+ except (ValidationError, ValueError) as e:
105
+ error_messages.append(str(e))
106
+ # anyof_schema_2_validator: Optional[BoostedReorderStep] = None
107
+ try:
108
+ instance.actual_instance = BoostedReorderStep.from_json(json_str)
109
+ return instance
110
+ except (ValidationError, ValueError) as e:
111
+ error_messages.append(str(e))
112
+ # anyof_schema_3_validator: Optional[DiversityReorderStep] = None
113
+ try:
114
+ instance.actual_instance = DiversityReorderStep.from_json(json_str)
115
+ return instance
116
+ except (ValidationError, ValueError) as e:
117
+ error_messages.append(str(e))
118
+
119
+ if error_messages:
120
+ # no match
121
+ raise ValueError("No match found when deserializing the JSON string into RankQueryConfigReorderInner with anyOf schemas: BoostedReorderStep, DiversityReorderStep, ExplorationReorderStep. Details: " + ", ".join(error_messages))
122
+ else:
123
+ return instance
124
+
125
+ def to_json(self) -> str:
126
+ """Returns the JSON representation of the actual instance"""
127
+ if self.actual_instance is None:
128
+ return "null"
129
+
130
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
131
+ return self.actual_instance.to_json()
132
+ else:
133
+ return json.dumps(self.actual_instance)
134
+
135
+ def to_dict(self) -> Optional[Union[Dict[str, Any], BoostedReorderStep, DiversityReorderStep, ExplorationReorderStep]]:
136
+ """Returns the dict representation of the actual instance"""
137
+ if self.actual_instance is None:
138
+ return None
139
+
140
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
141
+ return self.actual_instance.to_dict()
142
+ else:
143
+ return self.actual_instance
144
+
145
+ def to_str(self) -> str:
146
+ """Returns the string representation of the actual instance"""
147
+ return pprint.pformat(self.model_dump())
148
+
149
+
@@ -0,0 +1,196 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.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 json
17
+ import pprint
18
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
19
+ from typing import Any, List, Optional
20
+ from shaped.autogen.models.candidate_attributes_retrieve_step import CandidateAttributesRetrieveStep
21
+ from shaped.autogen.models.candidate_ids_retrieve_step import CandidateIdsRetrieveStep
22
+ from shaped.autogen.models.column_order_retrieve_step import ColumnOrderRetrieveStep
23
+ from shaped.autogen.models.filter_retrieve_step import FilterRetrieveStep
24
+ from shaped.autogen.models.similarity_retrieve_step import SimilarityRetrieveStep
25
+ from shaped.autogen.models.text_search_retrieve_step import TextSearchRetrieveStep
26
+ from pydantic import StrictStr, Field
27
+ from typing import Union, List, Set, Optional, Dict
28
+ from typing_extensions import Literal, Self
29
+
30
+ RANKQUERYCONFIGRETRIEVEINNER_ONE_OF_SCHEMAS = ["CandidateAttributesRetrieveStep", "CandidateIdsRetrieveStep", "ColumnOrderRetrieveStep", "FilterRetrieveStep", "SimilarityRetrieveStep", "TextSearchRetrieveStep"]
31
+
32
+ class RankQueryConfigRetrieveInner(BaseModel):
33
+ """
34
+ RankQueryConfigRetrieveInner
35
+ """
36
+ # data type: ColumnOrderRetrieveStep
37
+ oneof_schema_1_validator: Optional[ColumnOrderRetrieveStep] = None
38
+ # data type: TextSearchRetrieveStep
39
+ oneof_schema_2_validator: Optional[TextSearchRetrieveStep] = None
40
+ # data type: SimilarityRetrieveStep
41
+ oneof_schema_3_validator: Optional[SimilarityRetrieveStep] = None
42
+ # data type: FilterRetrieveStep
43
+ oneof_schema_4_validator: Optional[FilterRetrieveStep] = None
44
+ # data type: CandidateIdsRetrieveStep
45
+ oneof_schema_5_validator: Optional[CandidateIdsRetrieveStep] = None
46
+ # data type: CandidateAttributesRetrieveStep
47
+ oneof_schema_6_validator: Optional[CandidateAttributesRetrieveStep] = None
48
+ actual_instance: Optional[Union[CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep]] = None
49
+ one_of_schemas: Set[str] = { "CandidateAttributesRetrieveStep", "CandidateIdsRetrieveStep", "ColumnOrderRetrieveStep", "FilterRetrieveStep", "SimilarityRetrieveStep", "TextSearchRetrieveStep" }
50
+
51
+ model_config = ConfigDict(
52
+ validate_assignment=True,
53
+ protected_namespaces=(),
54
+ )
55
+
56
+
57
+ discriminator_value_class_map: Dict[str, str] = {
58
+ }
59
+
60
+ def __init__(self, *args, **kwargs) -> None:
61
+ if args:
62
+ if len(args) > 1:
63
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
64
+ if kwargs:
65
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
66
+ super().__init__(actual_instance=args[0])
67
+ else:
68
+ super().__init__(**kwargs)
69
+
70
+ @field_validator('actual_instance')
71
+ def actual_instance_must_validate_oneof(cls, v):
72
+ instance = RankQueryConfigRetrieveInner.model_construct()
73
+ error_messages = []
74
+ match = 0
75
+ # validate data type: ColumnOrderRetrieveStep
76
+ if not isinstance(v, ColumnOrderRetrieveStep):
77
+ error_messages.append(f"Error! Input type `{type(v)}` is not `ColumnOrderRetrieveStep`")
78
+ else:
79
+ match += 1
80
+ # validate data type: TextSearchRetrieveStep
81
+ if not isinstance(v, TextSearchRetrieveStep):
82
+ error_messages.append(f"Error! Input type `{type(v)}` is not `TextSearchRetrieveStep`")
83
+ else:
84
+ match += 1
85
+ # validate data type: SimilarityRetrieveStep
86
+ if not isinstance(v, SimilarityRetrieveStep):
87
+ error_messages.append(f"Error! Input type `{type(v)}` is not `SimilarityRetrieveStep`")
88
+ else:
89
+ match += 1
90
+ # validate data type: FilterRetrieveStep
91
+ if not isinstance(v, FilterRetrieveStep):
92
+ error_messages.append(f"Error! Input type `{type(v)}` is not `FilterRetrieveStep`")
93
+ else:
94
+ match += 1
95
+ # validate data type: CandidateIdsRetrieveStep
96
+ if not isinstance(v, CandidateIdsRetrieveStep):
97
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CandidateIdsRetrieveStep`")
98
+ else:
99
+ match += 1
100
+ # validate data type: CandidateAttributesRetrieveStep
101
+ if not isinstance(v, CandidateAttributesRetrieveStep):
102
+ error_messages.append(f"Error! Input type `{type(v)}` is not `CandidateAttributesRetrieveStep`")
103
+ else:
104
+ match += 1
105
+ if match > 1:
106
+ # more than 1 match
107
+ raise ValueError("Multiple matches found when setting `actual_instance` in RankQueryConfigRetrieveInner with oneOf schemas: CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep. Details: " + ", ".join(error_messages))
108
+ elif match == 0:
109
+ # no match
110
+ raise ValueError("No match found when setting `actual_instance` in RankQueryConfigRetrieveInner with oneOf schemas: CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep. Details: " + ", ".join(error_messages))
111
+ else:
112
+ return v
113
+
114
+ @classmethod
115
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
116
+ return cls.from_json(json.dumps(obj))
117
+
118
+ @classmethod
119
+ def from_json(cls, json_str: str) -> Self:
120
+ """Returns the object represented by the json string"""
121
+ instance = cls.model_construct()
122
+ error_messages = []
123
+ match = 0
124
+
125
+ # deserialize data into ColumnOrderRetrieveStep
126
+ try:
127
+ instance.actual_instance = ColumnOrderRetrieveStep.from_json(json_str)
128
+ match += 1
129
+ except (ValidationError, ValueError) as e:
130
+ error_messages.append(str(e))
131
+ # deserialize data into TextSearchRetrieveStep
132
+ try:
133
+ instance.actual_instance = TextSearchRetrieveStep.from_json(json_str)
134
+ match += 1
135
+ except (ValidationError, ValueError) as e:
136
+ error_messages.append(str(e))
137
+ # deserialize data into SimilarityRetrieveStep
138
+ try:
139
+ instance.actual_instance = SimilarityRetrieveStep.from_json(json_str)
140
+ match += 1
141
+ except (ValidationError, ValueError) as e:
142
+ error_messages.append(str(e))
143
+ # deserialize data into FilterRetrieveStep
144
+ try:
145
+ instance.actual_instance = FilterRetrieveStep.from_json(json_str)
146
+ match += 1
147
+ except (ValidationError, ValueError) as e:
148
+ error_messages.append(str(e))
149
+ # deserialize data into CandidateIdsRetrieveStep
150
+ try:
151
+ instance.actual_instance = CandidateIdsRetrieveStep.from_json(json_str)
152
+ match += 1
153
+ except (ValidationError, ValueError) as e:
154
+ error_messages.append(str(e))
155
+ # deserialize data into CandidateAttributesRetrieveStep
156
+ try:
157
+ instance.actual_instance = CandidateAttributesRetrieveStep.from_json(json_str)
158
+ match += 1
159
+ except (ValidationError, ValueError) as e:
160
+ error_messages.append(str(e))
161
+
162
+ if match > 1:
163
+ # more than 1 match
164
+ raise ValueError("Multiple matches found when deserializing the JSON string into RankQueryConfigRetrieveInner with oneOf schemas: CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep. Details: " + ", ".join(error_messages))
165
+ elif match == 0:
166
+ # no match
167
+ raise ValueError("No match found when deserializing the JSON string into RankQueryConfigRetrieveInner with oneOf schemas: CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep. Details: " + ", ".join(error_messages))
168
+ else:
169
+ return instance
170
+
171
+ def to_json(self) -> str:
172
+ """Returns the JSON representation of the actual instance"""
173
+ if self.actual_instance is None:
174
+ return "null"
175
+
176
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
177
+ return self.actual_instance.to_json()
178
+ else:
179
+ return json.dumps(self.actual_instance)
180
+
181
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CandidateAttributesRetrieveStep, CandidateIdsRetrieveStep, ColumnOrderRetrieveStep, FilterRetrieveStep, SimilarityRetrieveStep, TextSearchRetrieveStep]]:
182
+ """Returns the dict representation of the actual instance"""
183
+ if self.actual_instance is None:
184
+ return None
185
+
186
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
187
+ return self.actual_instance.to_dict()
188
+ else:
189
+ # primitive type
190
+ return self.actual_instance
191
+
192
+ def to_str(self) -> str:
193
+ """Returns the string representation of the actual instance"""
194
+ return pprint.pformat(self.model_dump())
195
+
196
+