qwak-core 0.6.7__py3-none-any.whl → 0.7.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 (68) hide show
  1. frogml_storage/__init__.py +1 -0
  2. frogml_storage/artifactory/__init__.py +1 -0
  3. frogml_storage/artifactory/_artifactory_api.py +315 -0
  4. frogml_storage/authentication/login/__init__.py +1 -0
  5. frogml_storage/authentication/login/_login_cli.py +239 -0
  6. frogml_storage/authentication/login/_login_command.py +74 -0
  7. frogml_storage/authentication/models/__init__.py +3 -0
  8. frogml_storage/authentication/models/_auth.py +24 -0
  9. frogml_storage/authentication/models/_auth_config.py +70 -0
  10. frogml_storage/authentication/models/_login.py +22 -0
  11. frogml_storage/authentication/utils/__init__.py +18 -0
  12. frogml_storage/authentication/utils/_authentication_utils.py +284 -0
  13. frogml_storage/authentication/utils/_login_checks_utils.py +114 -0
  14. frogml_storage/base_storage.py +140 -0
  15. frogml_storage/constants.py +56 -0
  16. frogml_storage/exceptions/checksum_verification_error.py +3 -0
  17. frogml_storage/exceptions/validation_error.py +4 -0
  18. frogml_storage/frog_ml.py +668 -0
  19. frogml_storage/http/__init__.py +1 -0
  20. frogml_storage/http/http_client.py +83 -0
  21. frogml_storage/logging/__init__.py +1 -0
  22. frogml_storage/logging/_log_config.py +45 -0
  23. frogml_storage/logging/log_utils.py +21 -0
  24. frogml_storage/models/__init__.py +1 -0
  25. frogml_storage/models/_download_context.py +54 -0
  26. frogml_storage/models/dataset_manifest.py +13 -0
  27. frogml_storage/models/entity_manifest.py +93 -0
  28. frogml_storage/models/frogml_dataset_version.py +21 -0
  29. frogml_storage/models/frogml_entity_type_info.py +50 -0
  30. frogml_storage/models/frogml_entity_version.py +34 -0
  31. frogml_storage/models/frogml_model_version.py +21 -0
  32. frogml_storage/models/model_manifest.py +60 -0
  33. frogml_storage/models/serialization_metadata.py +15 -0
  34. frogml_storage/utils/__init__.py +12 -0
  35. frogml_storage/utils/_environment.py +21 -0
  36. frogml_storage/utils/_input_checks_utility.py +104 -0
  37. frogml_storage/utils/_storage_utils.py +15 -0
  38. frogml_storage/utils/_url_utils.py +27 -0
  39. qwak/__init__.py +1 -1
  40. qwak/clients/model_management/client.py +5 -0
  41. qwak/clients/project/client.py +7 -0
  42. qwak/inner/const.py +8 -0
  43. qwak/inner/di_configuration/account.py +67 -6
  44. qwak/inner/di_configuration/dependency_wiring.py +0 -2
  45. qwak/inner/tool/auth.py +83 -0
  46. qwak/inner/tool/grpc/grpc_auth.py +35 -0
  47. qwak/inner/tool/grpc/grpc_tools.py +37 -14
  48. qwak/inner/tool/grpc/grpc_try_wrapping.py +1 -3
  49. qwak/qwak_client/client.py +6 -0
  50. {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/METADATA +1 -1
  51. {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/RECORD +54 -30
  52. qwak_services_mock/mocks/qwak_mocks.py +2 -8
  53. qwak_services_mock/services_mock.py +0 -24
  54. qwak/clients/vector_store/__init__.py +0 -2
  55. qwak/clients/vector_store/management_client.py +0 -124
  56. qwak/clients/vector_store/serving_client.py +0 -156
  57. qwak/vector_store/__init__.py +0 -4
  58. qwak/vector_store/client.py +0 -150
  59. qwak/vector_store/collection.py +0 -426
  60. qwak/vector_store/filters.py +0 -354
  61. qwak/vector_store/inference_client.py +0 -103
  62. qwak/vector_store/rest_helpers.py +0 -72
  63. qwak/vector_store/utils/__init__.py +0 -0
  64. qwak/vector_store/utils/filter_utils.py +0 -21
  65. qwak/vector_store/utils/upsert_utils.py +0 -217
  66. qwak_services_mock/mocks/vector_serving_api.py +0 -154
  67. qwak_services_mock/mocks/vectors_management_api.py +0 -96
  68. {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/WHEEL +0 -0
@@ -628,7 +628,45 @@ _qwak_proto/qwak/workspace/workspace_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
628
628
  _qwak_proto/qwak/workspace/workspace_service_pb2.py,sha256=93uNm83VVrkLG_XVsuBOBTPs4UJF91YD1xJTOEbRyig,9239
629
629
  _qwak_proto/qwak/workspace/workspace_service_pb2.pyi,sha256=nKKCHwnovZhsy8TSVmdz-Vtl0nviOOoX56HD-41Xo08,13726
630
630
  _qwak_proto/qwak/workspace/workspace_service_pb2_grpc.py,sha256=yKGuexxTBza99Ihe0DSTniV2ZSd_AG47inHenqfi890,27193
631
- qwak/__init__.py,sha256=phXeOFx9au7BigBlw_4AhvnwLKQAGbYB0M88pYmn75o,585
631
+ frogml_storage/__init__.py,sha256=RaANGbRu5e-vehwXI1-Qe2ggPPfs1TQaZj072JdbLk4,22
632
+ frogml_storage/artifactory/__init__.py,sha256=C02rcm7kqsZBVA6c6Gztxamj96hn8Aj6BuzYWFRmWbQ,71
633
+ frogml_storage/artifactory/_artifactory_api.py,sha256=z8YX90bCy82BWqMNUdpbbig1qF5CarkIOfP6V96uYYg,11188
634
+ frogml_storage/authentication/login/__init__.py,sha256=ch8UhQwh3o5ddyoJykQ0Bnog5-8qKHmeDpwqny8xMzM,46
635
+ frogml_storage/authentication/login/_login_cli.py,sha256=pGWGfelbUMorVqn6XEgOSa4ZbUJQL-fNHW5xBjDcj8M,8412
636
+ frogml_storage/authentication/login/_login_command.py,sha256=dj9pOanaYg4PMNbF1EbgMXeoIMo1lfoHp5JFNUZFZ5g,2849
637
+ frogml_storage/authentication/models/__init__.py,sha256=-nG08ZWSD2nIa5lqGtn9pidXM_-XLj4ASG_jHATOK84,113
638
+ frogml_storage/authentication/models/_auth.py,sha256=uKo6hxD1jjDGmYeQIJSnKJCOZIE6iTA8LJJs__BTufA,600
639
+ frogml_storage/authentication/models/_auth_config.py,sha256=uDcPXaPRXKDEtAhHEuN-GQTeDg8AUL8FE4aiAByHU_I,2024
640
+ frogml_storage/authentication/models/_login.py,sha256=jcFdiWRqjaVAGG9hiYpPHF0WUNT4DqMqVp1FPFGuwOM,723
641
+ frogml_storage/authentication/utils/__init__.py,sha256=8TrFU_IUyO0g_JLazY3ui51uSCCTsP6eDmMI-dvXD4k,431
642
+ frogml_storage/authentication/utils/_authentication_utils.py,sha256=9vIeK88UrKRixOLfuXWRFT9vrZtkWTQADcdT42icB_E,9705
643
+ frogml_storage/authentication/utils/_login_checks_utils.py,sha256=OQZSJHN9C0ujCaAjYuttBBxyoOrWo0KGLKOw5et__ds,2993
644
+ frogml_storage/base_storage.py,sha256=gbkDRhXhLLJrr72A2vGcQqEHEjCDEk9-n7ye98F3_2k,5606
645
+ frogml_storage/constants.py,sha256=Fx-Dyzkl9e28O2qCvIgyEf2aBuhftXAdbn2BIfXFaGw,1542
646
+ frogml_storage/exceptions/checksum_verification_error.py,sha256=t1muLRYvqza7Q4jo1mYHck9ZoDwlGE7WxcheAFAnIQs,159
647
+ frogml_storage/exceptions/validation_error.py,sha256=_twu_xcL-O7D26qkskuuR-_NcnPPTADIUO9HGY4g0x0,156
648
+ frogml_storage/frog_ml.py,sha256=RO6YVLv1eBAZWs1noWkNqyWcI8yNoHP3mnGIr67qCkk,24182
649
+ frogml_storage/http/__init__.py,sha256=BOXGzjq1gJXlihldaZvMQNGJIdCy-UHWsk3u-bXEZnQ,36
650
+ frogml_storage/http/http_client.py,sha256=jYwe4aHhMRsTjl5fZDlJxaTFuY3RnIcw7P1Wz8Ykz4g,2420
651
+ frogml_storage/logging/__init__.py,sha256=JaBPWQQt3pjoLhUcZtgqPydGlKAWYpSvfPkt2z1Wi90,32
652
+ frogml_storage/logging/_log_config.py,sha256=ytwyRLYr3SyRlo4UpTjLBtlNqVApP9URTVO5m5DN3uU,1162
653
+ frogml_storage/logging/log_utils.py,sha256=MLuQvBrmysiWAeKKq1lHFt3o6DJPyafFWRJNTg9ECaY,711
654
+ frogml_storage/models/__init__.py,sha256=ZoWMjtQ4Bn-ARJqKEUp-XDRbHgaSQJG_1M2S5z91jbQ,47
655
+ frogml_storage/models/_download_context.py,sha256=8Jc5JmQG5mwObQp-CXF-D6dP3xUbZcyHUSdwM-p-8s0,1667
656
+ frogml_storage/models/dataset_manifest.py,sha256=w5ARGQSkRSP7mofsbxOcc9bXORKXIMo5iF1yFGd8Nyw,303
657
+ frogml_storage/models/entity_manifest.py,sha256=BXwJz1q3NIH6QFccnGDG51R3HnHO9-oCeO9qZqaxQg4,2787
658
+ frogml_storage/models/frogml_dataset_version.py,sha256=Uwe50e8eD9XqwARCsa4-iJJqyMQsDqs9E-iuAInvJuA,637
659
+ frogml_storage/models/frogml_entity_type_info.py,sha256=gIoWcm-nqKQRpVg8DJcq8jJE-e7qgR_-EUv6R8wKCFs,1448
660
+ frogml_storage/models/frogml_entity_version.py,sha256=jiDGk3xcZ-OaaTacs6VLshpyUNKYs8qgBOPk1NUJFkY,928
661
+ frogml_storage/models/frogml_model_version.py,sha256=2pVHW-BhowBcIScLZzWj5SH0abAirP3cDvXeq334lJI,631
662
+ frogml_storage/models/model_manifest.py,sha256=NEyUTt0ZbLbv-47nb_yJJrA0xnTCk67SdEUcZ09tjr8,2200
663
+ frogml_storage/models/serialization_metadata.py,sha256=KOJ9Yj0XGbYudpcUBMh67Hd7VohmoWsYOvhD-L2yzyY,347
664
+ frogml_storage/utils/__init__.py,sha256=HQUWfuGUIPZY7kfS795TRW8BQ4WmNqrNjS7lUrbxCdk,299
665
+ frogml_storage/utils/_environment.py,sha256=NEnRxaFdRDi3UA33IVTSfQxqc9ZB6nV9YlHDmT5bIkI,650
666
+ frogml_storage/utils/_input_checks_utility.py,sha256=ZUvkxhcTcbSKtpSo5ePWha3Ca5xohxIpiAlZlpcQ3xk,3221
667
+ frogml_storage/utils/_storage_utils.py,sha256=HB2g7uY5A3b33yIcAUM1OjHb5jWsnpESsiDrEviQwrI,366
668
+ frogml_storage/utils/_url_utils.py,sha256=NUEfz9Fp1iE8b676-A5wrMlSTsJVRKrUhcUItOFAJD8,821
669
+ qwak/__init__.py,sha256=gkgi11OkNJ_VMpm721NGVpcZRHEd-UnGTtDKivrMGL8,585
632
670
  qwak/automations/__init__.py,sha256=qFZRvCxUUn8gcxkJR0v19ulHW2oJ0x6-Rif7HiheDP4,1522
633
671
  qwak/automations/automation_executions.py,sha256=5MeH_epYYWb8NKXgAozwT_jPyyUDednBHG7izloi7RY,3228
634
672
  qwak/automations/automations.py,sha256=2Wyrgj2mW5VmJzTKAXj3vQM_svYCuq_Bsu3_Vu9SdR4,12732
@@ -703,9 +741,9 @@ qwak/clients/location_discovery/client.py,sha256=O-wjMGiSTJ5qGjD0VhofE6Mv7NqvmwC
703
741
  qwak/clients/logging_client/__init__.py,sha256=1OCHnigQBYThBwGbxCreYA0BgP0HcuLFzNEWd3Yxh-c,34
704
742
  qwak/clients/logging_client/client.py,sha256=bLTxX2JFF1DKWjxtqoZexS10pN1BHSen3IRSbWjX5HQ,4746
705
743
  qwak/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
706
- qwak/clients/model_management/client.py,sha256=TdfWm_sjWWJHe2bBMwSF773MR3Pmh-ZYaUQtkXGaVV0,4471
744
+ qwak/clients/model_management/client.py,sha256=LHJlR12plQCjv0TtuozJ4Da91M7C-ay6Gvc09BEXItM,4755
707
745
  qwak/clients/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
708
- qwak/clients/project/client.py,sha256=15HNp5yAdS8FLNxK-NLOKbRZFnqU_4F22kHywKFZkl0,2180
746
+ qwak/clients/project/client.py,sha256=Np4vDU4iPndGtWTF_bH2CqepCQHw49whvsq23uLMMJs,2484
709
747
  qwak/clients/prompt_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
710
748
  qwak/clients/prompt_manager/model_descriptor_mapper.py,sha256=QDLPImRIPv9Jrdtg03oL7zgKvrWDXmzK0QXkUFAo1bs,7395
711
749
  qwak/clients/prompt_manager/prompt_manager_client.py,sha256=Mg1uqJjwj57jFfNKx6tomzfOe6C8keTKpxvXFSPo0yA,6952
@@ -716,9 +754,6 @@ qwak/clients/system_secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
716
754
  qwak/clients/system_secret/system_secret_client.py,sha256=79xwp-vica-APOqq7iL6KO8SwyxwZewjHOqiHsfMg48,1065
717
755
  qwak/clients/user_application_instance/__init__.py,sha256=lvdNCdtV7BGcN7XlK5Lb_OnXAJ-ued3AGckiZ-_EmL0,50
718
756
  qwak/clients/user_application_instance/client.py,sha256=M3NSuBl9bg9IjPN8Z9HJIs1PagxwXuUAWJpzk-uHIbA,6013
719
- qwak/clients/vector_store/__init__.py,sha256=JGMvcS9kGCbwEIMMji4G4ohZPvccGWoTJNC6vF6RPwc,102
720
- qwak/clients/vector_store/management_client.py,sha256=EiO6B-zO0ETgL0VonWJZnigqpF3iIebVArlsfJ-nOQ0,4247
721
- qwak/clients/vector_store/serving_client.py,sha256=hl9B5Rr3fvCN12gCI6amlNoUll7sxT8rUE0a_JqhEHs,5293
722
757
  qwak/clients/workspace_manager/__init__.py,sha256=sJ_tnt-CqjXVVNlcywmyQ5L3n5Dk0uMDNjSVvEwHziA,43
723
758
  qwak/clients/workspace_manager/client.py,sha256=KXoipmYmzKTS1-auStjbZ7JKzXdCyHHqk22Q7KnrgV4,8136
724
759
  qwak/exceptions/__init__.py,sha256=RgGCJgUvVbNm9Z_Kxnu3YUiI877LcqdMv7mJVtDxqYg,856
@@ -875,12 +910,12 @@ qwak/inner/build_logic/tools/files.py,sha256=druKkTp640Zy3x1MLjuTuXY56r5blEnH8dS
875
910
  qwak/inner/build_logic/tools/ignore_files.py,sha256=E65s3m46pmSX4q4hX2-R5HYHDO4VCQHjip8Xn_yOBRg,750
876
911
  qwak/inner/build_logic/tools/text.py,sha256=tH-v19Mt8l90sMVxku5XRtrderT0qdRqJ-jLijqannA,188
877
912
  qwak/inner/build_logic/trigger_build_context.py,sha256=n5s7MRk41h8cxPI3IVuqMQUVuCc-D8A7Hhq35YuuAps,200
878
- qwak/inner/const.py,sha256=nKeJOpIguWJR3RWRv3peb62-TibYOzzqkGhVR12oEf4,1025
913
+ qwak/inner/const.py,sha256=lDDl3eSowB6-Z7GA45vvC-f0bdvgfof-uiRUQsFcvR4,1295
879
914
  qwak/inner/di_configuration/__init__.py,sha256=RxGaowPAmq-entRtvlp2Ln6uc08wD0TTFwnTr7cr5zI,133
880
- qwak/inner/di_configuration/account.py,sha256=V5NOVOsxhe11-oD4i4UFskWMhq0EOyJ0rDbNSAv7GfA,5338
915
+ qwak/inner/di_configuration/account.py,sha256=K0QbvzJE74vICfJqxfPyNXPssegHr3ePzHXUPLMb02g,7649
881
916
  qwak/inner/di_configuration/config.yml,sha256=GUvaZMWIDIR_d7hFcPVG_kHdCwpERKH1AFDakG3vqI4,242
882
917
  qwak/inner/di_configuration/containers.py,sha256=dK-cfd8ajT6yujlEhPhcRYB-avdYDcreQz_2kTIVDRQ,1252
883
- qwak/inner/di_configuration/dependency_wiring.py,sha256=5T9kJ26MBnzuJxUYlj3Q9JKUptevQeHSuxuwdq6UNBE,2659
918
+ qwak/inner/di_configuration/dependency_wiring.py,sha256=dh2rM0R05ZZjaFSOjkQCOEkNMN4JJwXvPIcezaTspnU,2611
884
919
  qwak/inner/di_configuration/session.py,sha256=Pwqapcu-0dsbb5dDn7ZGewVk4bYRN9sWk6ity72IDqY,452
885
920
  qwak/inner/instance_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
886
921
  qwak/inner/instance_template/verify_template_id.py,sha256=-c0Fh89XAfphKCpkurYaD-YyX3M3NkkpSLH4QsNPyko,1916
@@ -890,11 +925,11 @@ qwak/inner/runtime_di/__init__.py,sha256=ylaHwo2Hlq3pmeziA0Ip87DMnkcuBffKKi0tTH7
890
925
  qwak/inner/runtime_di/containers.py,sha256=-AREM-IUAd9JhrhQablqixxpj4L9Tk1iQkK1fA5YbrA,545
891
926
  qwak/inner/singleton_meta.py,sha256=1cU99I0f9tjuMQLMJyLsK1oK3fZJMsO5-TbRHAMXqds,627
892
927
  qwak/inner/tool/__init__.py,sha256=DDoMZk7LIZNfu63Ft0mLE5wflwlQoghAJ1ZmMAcAeVE,74
893
- qwak/inner/tool/auth.py,sha256=_78ufvtkNQ3ogcFwkotVySZgdS1yMTuIDMLOBsICkSU,4483
928
+ qwak/inner/tool/auth.py,sha256=5dFw-yzpe9BJWTEFS9B9szhDq8-b2VniJf9M14MWSd8,7811
894
929
  qwak/inner/tool/grpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
895
- qwak/inner/tool/grpc/grpc_auth.py,sha256=_DvwaRruUu12l4K6ACvmzsTbIDlKl1kuKjm-ustQ5ns,1139
896
- qwak/inner/tool/grpc/grpc_tools.py,sha256=XReEerN5bVh1JlDwxFx6Ea-gBecGnkesQnuYlzpyGGQ,10880
897
- qwak/inner/tool/grpc/grpc_try_wrapping.py,sha256=4RScvo2jiCr5XwZvaH516OJWqbMSxC8MWIarrD-5HnA,5654
930
+ qwak/inner/tool/grpc/grpc_auth.py,sha256=V3NOHakh1AHtqnBYO5cbXYmtaTM-ElpU9ZXiQXo2FoY,2361
931
+ qwak/inner/tool/grpc/grpc_tools.py,sha256=i8y8S855DNG2lv8_QhD_L879kbDxhUIbm3lj7AiVqLE,11685
932
+ qwak/inner/tool/grpc/grpc_try_wrapping.py,sha256=cGUfy74IcFGjUE9EMQEpB3-0ta6WkzO4UW_34NtPH_Q,5651
898
933
  qwak/inner/tool/protobuf_factory.py,sha256=ar_oY38w_x0sxgVF7EBs5h7gchNsDntvtKK5sSYxb24,1686
899
934
  qwak/inner/tool/retry_utils.py,sha256=KcSFJuj02RKF-H9INpCmdiTNXlywEMJ2ClBa00N9aNM,435
900
935
  qwak/inner/tool/run_config/__init__.py,sha256=AIuy7zhaF9Zvlp6tuLonnCfjp7vIwH1YOl8P5qT6YGE,275
@@ -1029,7 +1064,7 @@ qwak/qwak_client/builds/build.py,sha256=1dBRZkvZV04uw8RI-7iOs_yvfgUzglh9ZyzgHJyU
1029
1064
  qwak/qwak_client/builds/filters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1030
1065
  qwak/qwak_client/builds/filters/metric_filter.py,sha256=i0ZsjqN1iw-cX_uxvbJzRT-EYAOEqejKkukLiyYmYqE,1185
1031
1066
  qwak/qwak_client/builds/filters/parameter_filter.py,sha256=IY-J6bAIEM_KyVzESMDx0xv_fAScRp_AsltdMJk0IDY,1088
1032
- qwak/qwak_client/client.py,sha256=-GMcSRRvuPH6oYasFK3RO3_bQ7GcWQ-y7KoyvMBRxcQ,28246
1067
+ qwak/qwak_client/client.py,sha256=GPR8Pd2K8kwAzlG_eohPpPZNjB6vjaf4986rP9NjVUQ,28590
1033
1068
  qwak/qwak_client/data_versioning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1034
1069
  qwak/qwak_client/data_versioning/data_tag.py,sha256=B7_TsBrp0LZK-yLqGpodVhoh67dpWBsiyEgWq3RCKcA,806
1035
1070
  qwak/qwak_client/deployments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1050,15 +1085,6 @@ qwak/tools/logger/logging.yml,sha256=UWC2i3NVKT3j5S8_SapzqClDzXLIEAurzNIXa2tS4UA
1050
1085
  qwak/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1051
1086
  qwak/utils/datetime_utils.py,sha256=3zK7PUrerMlwB7U6WeuYwMAclVMfPqBNZihNRyIVMs4,581
1052
1087
  qwak/utils/dict_utils.py,sha256=YsOSQeGpmrsm3CMnx2ZbqvzEcybk3m-0TCMXbBdBXaY,263
1053
- qwak/vector_store/__init__.py,sha256=9gR2B5A1MXb2ks5VUzqrPASGpVTDuJs4uq7N7FNWOY4,120
1054
- qwak/vector_store/client.py,sha256=UVc3UK2ytyhhXPF8rAznENXBWhjYpxEl8i5JIjWgO_8,6040
1055
- qwak/vector_store/collection.py,sha256=3HWXU5DwcK30-eJ1ABs-r0S3UsUAPmDjS_aR1DgSHSM,16916
1056
- qwak/vector_store/filters.py,sha256=y549rUHf2pRSDqNnslxb7DgUj-eNu_i755-CuTt8apo,8209
1057
- qwak/vector_store/inference_client.py,sha256=Zyqx3nmhvyiNDBlaL8J1egDiZuB__ecsfvSTgNxrkT0,3711
1058
- qwak/vector_store/rest_helpers.py,sha256=pKp77Qt8NPJDuampmOWhJgt6zgMLDq6YwahHwMcehME,2323
1059
- qwak/vector_store/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1060
- qwak/vector_store/utils/filter_utils.py,sha256=fK01Ag2UxdXXqCVWWQOibh2OAGvm6Lvdl1dBWk3vVlg,837
1061
- qwak/vector_store/utils/upsert_utils.py,sha256=DEjJlX_h1NM1_AhakH_IyfOJPOxWnyTPG9DOrEH7QIw,7459
1062
1088
  qwak_services_mock/__init__.py,sha256=UH7y3X0K0j75G4mYFgCgxcv6hvhaCppC18E6fTF-eC4,46
1063
1089
  qwak_services_mock/mocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1064
1090
  qwak_services_mock/mocks/alert_manager_service_api.py,sha256=X9VF5-zroUqo9SpeaG_Oz_Jz9BHJW2-qHc3N1MDeCT4,2150
@@ -1098,19 +1124,17 @@ qwak_services_mock/mocks/logging_service.py,sha256=rkOud7CFAvb0xfP6WXf3kP541eXdY
1098
1124
  qwak_services_mock/mocks/model_management_service.py,sha256=H3bMTr7VLrGjZjIrjgrjBk3kNDy1UjQXOeUyL5eAL_o,4153
1099
1125
  qwak_services_mock/mocks/project_manager_service.py,sha256=WzcYzN3O04kSpvuTwX0QIF0HCh_ggsV9-gMel_vQVuc,3090
1100
1126
  qwak_services_mock/mocks/prompt_manager_service.py,sha256=tEhVUVwkvRy68r7MNX9V3V8ZBZ1ynqzr6v1zREMm0_s,9895
1101
- qwak_services_mock/mocks/qwak_mocks.py,sha256=Pbl70ILBE4eL_NGk0quDyF2j5PZQJj-Fpin3nlnm6Qg,6410
1127
+ qwak_services_mock/mocks/qwak_mocks.py,sha256=V4ngV3dna2YGgcZKDtVHDPlrtlEVnMp3YZ_tXCD2Ros,6125
1102
1128
  qwak_services_mock/mocks/secret_service.py,sha256=BwNyhNSTmxHDACzrr7NHjZ0YchX3wHWuJkl1ioi0Aig,1406
1103
1129
  qwak_services_mock/mocks/self_service_user_service.py,sha256=UK22V-wAc0zHScXCE0QKDO0TdbrHf_uk7tEEIM47MpI,1205
1104
1130
  qwak_services_mock/mocks/system_secret_service.py,sha256=S8MfGGEex7bs0AvnAf8SbPOzE-YDfCvePT1TxXWzHRQ,1896
1105
1131
  qwak_services_mock/mocks/user_application_instance_service_api.py,sha256=AHGppH_XXxQ2WXucqxgiFtKkzR13o4PVYnLxYzkgp3I,4083
1106
1132
  qwak_services_mock/mocks/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1107
1133
  qwak_services_mock/mocks/utils/exception_handlers.py,sha256=Fhi9cx_qNytDnl4BtZmEerjXGLeTq9DLZgbdi3sqvKg,159
1108
- qwak_services_mock/mocks/vector_serving_api.py,sha256=7ZSmDJVdw7_ne7BxLLrmy8eZkzVCeZ508gfL51wpKeY,5722
1109
- qwak_services_mock/mocks/vectors_management_api.py,sha256=ePh8l3MlDGzs7E4NuPZzF5xK-bC9AdMgDaNZrq3FkHc,3594
1110
1134
  qwak_services_mock/mocks/workspace_manager_service_mock.py,sha256=O9ZSwln4T4kHVkR_usXnDQtarTeNfffSMON0P6wbT4g,7740
1111
- qwak_services_mock/services_mock.py,sha256=8XyKtzEWxfvp4bVMSAlJ90GhkXKROZrgWeH25Iq3ETA,20601
1135
+ qwak_services_mock/services_mock.py,sha256=woIlkM0Y5SCweaN5SFaJYnlx3v5UxIuDTGWxsOGJA-4,19685
1112
1136
  qwak_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1113
1137
  qwak_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1114
- qwak_core-0.6.7.dist-info/METADATA,sha256=oOduH81p6KeOQXYZNJO1FNgyUfq73YmOBk_ycs6zgdY,1986
1115
- qwak_core-0.6.7.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1116
- qwak_core-0.6.7.dist-info/RECORD,,
1138
+ qwak_core-0.7.0.dist-info/METADATA,sha256=Lu7jU0CVYUwVcBjIeVigtoOKJGY02DayYO-riXic3DE,1986
1139
+ qwak_core-0.7.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1140
+ qwak_core-0.7.0.dist-info/RECORD,,
@@ -1,6 +1,6 @@
1
1
  import dataclasses
2
2
 
3
- from qwak_services_mock.mocks import workspace_manager_service_mock
3
+ from qwak_services_mock.mocks.workspace_manager_service_mock import WorkspaceManagerServiceMock
4
4
  from qwak_services_mock.mocks.alert_manager_service_api import (
5
5
  AlertManagerServiceApiMock,
6
6
  )
@@ -79,10 +79,6 @@ from qwak_services_mock.mocks.system_secret_service import SystemSecretServiceMo
79
79
  from qwak_services_mock.mocks.user_application_instance_service_api import (
80
80
  UserApplicationInstanceServiceApiMock,
81
81
  )
82
- from qwak_services_mock.mocks.vector_serving_api import VectorServingServiceMock
83
- from qwak_services_mock.mocks.vectors_management_api import (
84
- VectorCollectionManagementServiceMock,
85
- )
86
82
 
87
83
 
88
84
  @dataclasses.dataclass
@@ -118,9 +114,7 @@ class QwakMocks:
118
114
  fs_feature_sets_service: FeatureSetServiceMock
119
115
  instance_templates_service: InstanceTemplateManagementServiceMock
120
116
  alerts_registry_service: AlertsRegistryServiceApiMock
121
- workspace_manager_service: workspace_manager_service_mock
122
- vector_serving_service: VectorServingServiceMock
123
- vector_collection_service: VectorCollectionManagementServiceMock
117
+ workspace_manager_service: WorkspaceManagerServiceMock
124
118
  execution_management_service: ExecutionManagementServiceMock
125
119
  system_secret_service: SystemSecretServiceMock
126
120
  integration_management_service: IntegrationManagementServiceMock
@@ -116,12 +116,6 @@ from _qwak_proto.qwak.self_service.user.v1.user_service_pb2_grpc import (
116
116
  from _qwak_proto.qwak.service_discovery.service_discovery_location_service_pb2_grpc import (
117
117
  add_LocationDiscoveryServiceServicer_to_server,
118
118
  )
119
- from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2_grpc import (
120
- add_VectorCollectionServiceServicer_to_server,
121
- )
122
- from _qwak_proto.qwak.vectors.v1.vector_service_pb2_grpc import (
123
- add_VectorServiceServicer_to_server,
124
- )
125
119
  from _qwak_proto.qwak.workspace.workspace_service_pb2_grpc import (
126
120
  add_WorkspaceManagementServiceServicer_to_server,
127
121
  )
@@ -205,10 +199,6 @@ from qwak_services_mock.mocks.system_secret_service import SystemSecretServiceMo
205
199
  from qwak_services_mock.mocks.user_application_instance_service_api import (
206
200
  UserApplicationInstanceServiceApiMock,
207
201
  )
208
- from qwak_services_mock.mocks.vector_serving_api import VectorServingServiceMock
209
- from qwak_services_mock.mocks.vectors_management_api import (
210
- VectorCollectionManagementServiceMock,
211
- )
212
202
  from qwak_services_mock.mocks.workspace_manager_service_mock import (
213
203
  WorkspaceManagerServiceMock,
214
204
  )
@@ -255,7 +245,6 @@ def qwak_container():
255
245
  project,
256
246
  secret_service,
257
247
  user_application_instance,
258
- vector_store,
259
248
  workspace_manager,
260
249
  )
261
250
  from qwak.clients.administration import (
@@ -269,7 +258,6 @@ def qwak_container():
269
258
  from qwak.clients.integration_management import integration_manager_client
270
259
  from qwak.clients.prompt_manager import prompt_manager_client
271
260
  from qwak.clients.system_secret import system_secret_client
272
- from qwak.vector_store.utils import upsert_utils
273
261
 
274
262
  container.wire(
275
263
  packages=[
@@ -299,8 +287,6 @@ def qwak_container():
299
287
  secret_service,
300
288
  alerts_registry,
301
289
  workspace_manager,
302
- vector_store,
303
- upsert_utils,
304
290
  integration_manager_client,
305
291
  system_secret_client,
306
292
  prompt_manager_client,
@@ -492,16 +478,6 @@ def attach_servicers(free_port, server):
492
478
  WorkspaceManagerServiceMock,
493
479
  add_WorkspaceManagementServiceServicer_to_server,
494
480
  ),
495
- (
496
- "vector_serving_service",
497
- VectorServingServiceMock,
498
- add_VectorServiceServicer_to_server,
499
- ),
500
- (
501
- "vector_collection_service",
502
- VectorCollectionManagementServiceMock,
503
- add_VectorCollectionServiceServicer_to_server,
504
- ),
505
481
  (
506
482
  "execution_management_service",
507
483
  ExecutionManagementServiceMock,
@@ -1,2 +0,0 @@
1
- from .management_client import VectorManagementClient
2
- from .serving_client import VectorServingClient
@@ -1,124 +0,0 @@
1
- from typing import List, Optional
2
-
3
- import grpc
4
- from _qwak_proto.qwak.vectors.v1.collection.collection_pb2 import (
5
- VectorCollection,
6
- VectorCollectionMetric,
7
- VectorCollectionSpec,
8
- VectorCollectionVectorizer,
9
- )
10
- from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2 import (
11
- CreateCollectionRequest,
12
- DeleteCollectionByIdRequest,
13
- DeleteCollectionByNameRequest,
14
- GetCollectionByIdRequest,
15
- GetCollectionByNameRequest,
16
- ListCollectionsRequest,
17
- )
18
- from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2_grpc import (
19
- VectorCollectionServiceStub,
20
- )
21
- from dependency_injector.wiring import Provide, inject
22
- from qwak.exceptions import QwakException
23
- from qwak.inner.di_configuration import QwakContainer
24
-
25
-
26
- class VectorManagementClient:
27
- @inject
28
- def __init__(self, grpc_channel=Provide[QwakContainer.core_grpc_channel]):
29
- self._vector_management_service: VectorCollectionServiceStub = (
30
- VectorCollectionServiceStub(grpc_channel)
31
- )
32
-
33
- def create_collection(
34
- self,
35
- name: str,
36
- dimension: int,
37
- description: str = None,
38
- metric: VectorCollectionMetric = VectorCollectionMetric.COLLECTION_METRIC_L2_SQUARED,
39
- vectorizer: Optional[str] = None,
40
- multi_tenant: bool = False,
41
- ) -> VectorCollection:
42
- """
43
- Create a collection
44
- """
45
- try:
46
- return self._vector_management_service.CreateCollection(
47
- CreateCollectionRequest(
48
- collection_spec=VectorCollectionSpec(
49
- name=name,
50
- description=description,
51
- vectorizer=VectorCollectionVectorizer(
52
- qwak_model_name=vectorizer
53
- ),
54
- metric=metric,
55
- dimension=dimension,
56
- multi_tenancy_enabled=multi_tenant,
57
- )
58
- )
59
- ).vector_collection
60
-
61
- except grpc.RpcError as e:
62
- raise QwakException(f"Failed to create collection: {e.details()}")
63
-
64
- def list_collections(self) -> List[VectorCollection]:
65
- """
66
- List all vector collections
67
- """
68
- try:
69
- return self._vector_management_service.ListCollections(
70
- ListCollectionsRequest()
71
- ).vector_collections
72
-
73
- except grpc.RpcError as e:
74
- raise QwakException(f"Failed to list collections: {e.details()}")
75
-
76
- def get_collection_by_name(self, name: str) -> VectorCollection:
77
- """
78
- Get vector collection by name
79
- """
80
- try:
81
- return self._vector_management_service.GetCollectionByName(
82
- GetCollectionByNameRequest(name=name)
83
- ).vector_collection
84
- except grpc.RpcError as e:
85
- raise QwakException(
86
- f"Failed to get collection by name '{name}': {e.details()}"
87
- )
88
-
89
- def get_collection_by_id(self, id: str) -> VectorCollection:
90
- """
91
- Get vector collection by id
92
- """
93
- try:
94
- return self._vector_management_service.GetCollectionById(
95
- GetCollectionByIdRequest(id=id)
96
- ).vector_collection
97
- except grpc.RpcError as e:
98
- raise QwakException(f"Failed to get collection by id '{id}': {e.details()}")
99
-
100
- def delete_collection_by_id(self, id: str) -> None:
101
- """
102
- Delete vector collection by id
103
- """
104
- try:
105
- self._vector_management_service.DeleteCollectionById(
106
- DeleteCollectionByIdRequest(id=id)
107
- )
108
- except grpc.RpcError as e:
109
- raise QwakException(
110
- f"Failed to delete collection by id '{id}': {e.details()}"
111
- )
112
-
113
- def delete_collection_by_name(self, name: str) -> None:
114
- """
115
- Delete vector collection by id
116
- """
117
- try:
118
- self._vector_management_service.DeleteCollectionByName(
119
- DeleteCollectionByNameRequest(name=name)
120
- )
121
- except grpc.RpcError as e:
122
- raise QwakException(
123
- f"Failed to delete collection by name '{name}': {e.details()}"
124
- )
@@ -1,156 +0,0 @@
1
- from typing import List, Optional
2
-
3
- import grpc
4
- from _qwak_proto.qwak.vectors.v1.filters_pb2 import Filter as ProtoFilter
5
- from _qwak_proto.qwak.vectors.v1.vector_pb2 import (
6
- DoubleVector,
7
- SearchResult,
8
- StoredVector,
9
- VectorIdentifier,
10
- )
11
- from _qwak_proto.qwak.vectors.v1.vector_service_pb2 import (
12
- DeleteVectorsRequest,
13
- FetchVectorRequest,
14
- SearchSimilarVectorsRequest,
15
- UpsertVectorsRequest,
16
- )
17
- from _qwak_proto.qwak.vectors.v1.vector_service_pb2_grpc import VectorServiceStub
18
- from qwak.clients._inner.edge_communications import get_endpoint_url
19
- from qwak.exceptions import QwakException, QwakNotFoundException
20
- from qwak.inner.tool.grpc.grpc_tools import create_grpc_channel
21
- from typeguard import typechecked
22
-
23
-
24
- class VectorServingClient:
25
- def __init__(
26
- self,
27
- edge_services_url: Optional[str] = None,
28
- environment_id: Optional[str] = None,
29
- ):
30
- edge_services_url = get_endpoint_url(edge_services_url, environment_id)
31
- self._edge_services_url = edge_services_url
32
-
33
- grpc_channel = create_grpc_channel(
34
- url=edge_services_url,
35
- enable_ssl=False if edge_services_url.startswith("localhost") else True,
36
- status_for_retry=(
37
- grpc.StatusCode.UNAVAILABLE,
38
- grpc.StatusCode.DEADLINE_EXCEEDED,
39
- grpc.StatusCode.INTERNAL,
40
- ),
41
- backoff_options={"init_backoff_ms": 250},
42
- )
43
-
44
- self._vector_serving_service = VectorServiceStub(grpc_channel)
45
-
46
- @typechecked
47
- def search(
48
- self,
49
- collection_name: str,
50
- vector: List[float],
51
- properties: List[str],
52
- top_results: int = 1,
53
- include_id: bool = True,
54
- include_vector: bool = False,
55
- include_distance: bool = False,
56
- filters: Optional[ProtoFilter] = None,
57
- tenant_id: Optional[str] = None,
58
- ) -> List[SearchResult]:
59
- """
60
- Search for similar vectors
61
- """
62
- request: SearchSimilarVectorsRequest
63
- if tenant_id is not None:
64
- request = SearchSimilarVectorsRequest(
65
- collection_name=collection_name,
66
- reference_vector=DoubleVector(element=vector),
67
- properties=properties,
68
- max_results=top_results,
69
- filter=filters,
70
- include_id=include_id,
71
- include_vector=include_vector,
72
- include_distance=include_distance,
73
- tenant_id=tenant_id,
74
- )
75
- else:
76
- request = SearchSimilarVectorsRequest(
77
- collection_name=collection_name,
78
- reference_vector=DoubleVector(element=vector),
79
- properties=properties,
80
- max_results=top_results,
81
- filter=filters,
82
- include_id=include_id,
83
- include_vector=include_vector,
84
- include_distance=include_distance,
85
- )
86
-
87
- try:
88
- return list(
89
- self._vector_serving_service.SearchSimilarVectors(
90
- request
91
- ).search_results
92
- )
93
-
94
- except grpc.RpcError as e:
95
- raise QwakException(
96
- f"Failed to query collection '{collection_name}' for vector '{str(vector)}': {repr(e)}"
97
- )
98
-
99
- @typechecked
100
- def upsert_vectors(self, collection_name: str, vectors: List[StoredVector]) -> None:
101
- """
102
- Upsert vectors to a collection
103
- """
104
- try:
105
- self._vector_serving_service.UpsertVectors(
106
- UpsertVectorsRequest(
107
- collection_name=collection_name,
108
- vector=vectors,
109
- )
110
- )
111
-
112
- except grpc.RpcError as e:
113
- raise QwakException(f"Failed to upsert, got: {repr(e)}")
114
-
115
- @typechecked
116
- def delete_vectors(
117
- self, collection_name: str, vector_identifiers: List[VectorIdentifier]
118
- ) -> int:
119
- """
120
- Delete vectors from a collection
121
- """
122
- try:
123
- return self._vector_serving_service.DeleteVectors(
124
- DeleteVectorsRequest(
125
- collection_name=collection_name,
126
- vector_identifiers=vector_identifiers,
127
- )
128
- ).num_vectors_deleted
129
-
130
- except grpc.RpcError as e:
131
- raise QwakException(
132
- f"Failed to delete vectors by id '{str(vector_identifiers)}': {repr(e)}"
133
- )
134
-
135
- @typechecked
136
- def fetch_vector(
137
- self, collection_name: str, vector_identifier: VectorIdentifier
138
- ) -> StoredVector:
139
- """
140
- Fetch a vector from a collection
141
- """
142
- try:
143
- return self._vector_serving_service.FetchVector(
144
- FetchVectorRequest(
145
- collection_name=collection_name, vector_identifier=vector_identifier
146
- )
147
- ).vector
148
-
149
- except grpc.RpcError as e:
150
- if e.args[0].code.name == "NOT_FOUND":
151
- raise QwakNotFoundException(
152
- f"Could not find vector {repr(vector_identifier)} in collection {collection_name}"
153
- )
154
- raise QwakException(
155
- f"Failed to get vector by ID '{vector_identifier}': {repr(e)}"
156
- )
@@ -1,4 +0,0 @@
1
- from .client import VectorStoreClient
2
- from .collection import Collection
3
-
4
- __all__ = ["VectorStoreClient", "Collection"]