qwak-core 0.4.266__py3-none-any.whl → 0.4.267__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 (52) hide show
  1. qwak/__init__.py +1 -1
  2. qwak/clients/instance_template/client.py +4 -6
  3. qwak/clients/prompt_manager/model_descriptor_mapper.py +19 -21
  4. qwak/feature_store/_common/artifact_utils.py +3 -3
  5. qwak/feature_store/data_sources/base.py +4 -4
  6. qwak/feature_store/data_sources/batch/athena.py +3 -3
  7. qwak/feature_store/feature_sets/streaming.py +3 -3
  8. qwak/feature_store/feature_sets/streaming_backfill.py +1 -1
  9. qwak/feature_store/online/client.py +6 -6
  10. qwak/feature_store/sinks/streaming/factory.py +1 -1
  11. qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/git_strategy.py +3 -3
  12. qwak/llmops/provider/openai/provider.py +3 -3
  13. qwak/model/tools/adapters/output.py +1 -1
  14. qwak/model/utils/feature_utils.py +8 -12
  15. qwak/model_loggers/artifact_logger.py +7 -7
  16. qwak/tools/logger/logger.py +1 -1
  17. qwak_core-0.4.267.dist-info/METADATA +53 -0
  18. {qwak_core-0.4.266.dist-info → qwak_core-0.4.267.dist-info}/RECORD +19 -51
  19. frogml_storage/__init__.py +0 -0
  20. frogml_storage/_artifactory_api.py +0 -315
  21. frogml_storage/_environment.py +0 -22
  22. frogml_storage/_log_config.py +0 -45
  23. frogml_storage/_storage_utils.py +0 -15
  24. frogml_storage/_utils.py +0 -69
  25. frogml_storage/authentication/_authentication_utils.py +0 -259
  26. frogml_storage/authentication/models/_auth_config.py +0 -70
  27. frogml_storage/cli/_frogml_cli.py +0 -40
  28. frogml_storage/cli/_login_cli.py +0 -240
  29. frogml_storage/cli/commands/_login_command.py +0 -74
  30. frogml_storage/cli/models/_cli_login_arguments.py +0 -22
  31. frogml_storage/cli/utils/_cli_utils.py +0 -19
  32. frogml_storage/cli/utils/_login_checks_utility.py +0 -114
  33. frogml_storage/constants.py +0 -56
  34. frogml_storage/dataset_manifest.py +0 -13
  35. frogml_storage/entity_manifest.py +0 -93
  36. frogml_storage/exceptions/checksum_verification_error.py +0 -3
  37. frogml_storage/exceptions/validation_error.py +0 -4
  38. frogml_storage/frog_ml.py +0 -668
  39. frogml_storage/frogml_entity_type_info.py +0 -46
  40. frogml_storage/http/__init__.py +0 -0
  41. frogml_storage/http/http_client.py +0 -83
  42. frogml_storage/model_manifest.py +0 -60
  43. frogml_storage/models/_download_context.py +0 -54
  44. frogml_storage/models/frogml_dataset_version.py +0 -21
  45. frogml_storage/models/frogml_entity_version.py +0 -34
  46. frogml_storage/models/frogml_model_version.py +0 -21
  47. frogml_storage/serialization_metadata.py +0 -15
  48. frogml_storage/storage.py +0 -140
  49. frogml_storage/utils/_input_checks_utility.py +0 -104
  50. qwak_core-0.4.266.dist-info/METADATA +0 -419
  51. qwak_core-0.4.266.dist-info/entry_points.txt +0 -3
  52. {qwak_core-0.4.266.dist-info → qwak_core-0.4.267.dist-info}/WHEEL +0 -0
qwak/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """Top-level package for qwak-core."""
2
2
 
3
3
  __author__ = "Qwak.ai"
4
- __version__ = "0.4.266"
4
+ __version__ = "0.4.267"
5
5
 
6
6
  from qwak.inner.di_configuration import wire_dependencies
7
7
  from qwak.model.experiment_tracking import log_metric, log_param
@@ -49,12 +49,10 @@ class InstanceTemplateManagementClient:
49
49
 
50
50
  def list_instance_templates(self) -> List[InstanceTemplateSpec]:
51
51
  try:
52
- result: ListInstanceTemplatesResponse = (
53
- self._instance_template_service.ListInstanceTemplates(
54
- ListInstanceTemplatesRequest(
55
- optional_instance_filter=InstanceFilter(
56
- instance_type_filter=InstanceTypeFilter.INSTANCE_TYPE_FILTER_ALL
57
- )
52
+ result: ListInstanceTemplatesResponse = self._instance_template_service.ListInstanceTemplates(
53
+ ListInstanceTemplatesRequest(
54
+ optional_instance_filter=InstanceFilter(
55
+ instance_type_filter=InstanceTypeFilter.INSTANCE_TYPE_FILTER_ALL
58
56
  )
59
57
  )
60
58
  )
@@ -44,10 +44,10 @@ class ModelDescriptorMapper:
44
44
  model_id: str, openai_chat_params: ProtoOpenAIChatModelParams
45
45
  ) -> OpenAIChat:
46
46
  p = openai_chat_params
47
- _tool_choice: Union[str, ChatCompletionNamedToolChoiceParam] = (
48
- ModelDescriptorMapper._from_tool_choice(
49
- openai_chat_params=openai_chat_params
50
- )
47
+ _tool_choice: Union[
48
+ str, ChatCompletionNamedToolChoiceParam
49
+ ] = ModelDescriptorMapper._from_tool_choice(
50
+ openai_chat_params=openai_chat_params
51
51
  )
52
52
  _tools: List[ChatCompletionToolParam] = []
53
53
 
@@ -57,23 +57,21 @@ class ModelDescriptorMapper:
57
57
 
58
58
  return OpenAIChat(
59
59
  model_id=model_id,
60
- frequency_penalty=(
61
- p.frequency_penalty if p.HasField("frequency_penalty") else None
62
- ),
63
- logit_bias=(
64
- {k: int(v) for k, v in p.logit_bias.items()}
65
- if p.HasField("logit_bias")
66
- else None
67
- ),
60
+ frequency_penalty=p.frequency_penalty
61
+ if p.HasField("frequency_penalty")
62
+ else None,
63
+ logit_bias={k: int(v) for k, v in p.logit_bias.items()}
64
+ if p.HasField("logit_bias")
65
+ else None,
68
66
  logprobs=p.logprobs if p.HasField("logprobs") else None,
69
67
  max_tokens=p.max_tokens if p.HasField("max_tokens") else None,
70
68
  n=p.n if p.HasField("n") else None,
71
- presence_penalty=(
72
- p.presence_penalty if p.HasField("presence_penalty") else None
73
- ),
74
- response_format=(
75
- p.response_format if p.HasField("response_format") else None
76
- ), # noqa
69
+ presence_penalty=p.presence_penalty
70
+ if p.HasField("presence_penalty")
71
+ else None,
72
+ response_format=p.response_format
73
+ if p.HasField("response_format")
74
+ else None, # noqa
77
75
  seed=p.seed if p.HasField("seed") else None,
78
76
  stop=[_ for _ in p.stop] if p.HasField("stop") else None,
79
77
  temperature=p.temperature if p.HasField("temperature") else None,
@@ -152,9 +150,9 @@ class ModelDescriptorMapper:
152
150
  max_tokens=d.max_tokens,
153
151
  n=d.n,
154
152
  presence_penalty=d.presence_penalty,
155
- response_format=(
156
- d.response_format if d.response_format else None
157
- ), # noqa
153
+ response_format=d.response_format
154
+ if d.response_format
155
+ else None, # noqa
158
156
  seed=d.seed,
159
157
  stop=stop_list_value if d.stop else None,
160
158
  temperature=d.temperature,
@@ -45,9 +45,9 @@ class ArtifactsUploader:
45
45
  featureset_name: str,
46
46
  __instance_module_path__: str,
47
47
  ) -> Optional[ArtifactSpec]:
48
- transformation_functions: Optional[List[Callable[..., Any]]] = (
49
- transformation.get_functions()
50
- )
48
+ transformation_functions: Optional[
49
+ List[Callable[..., Any]]
50
+ ] = transformation.get_functions()
51
51
  if transformation_functions is not None and transformation_functions:
52
52
  return ArtifactSpec(
53
53
  artifact_name=featureset_name,
@@ -63,10 +63,10 @@ class BaseSource(ABC):
63
63
  uploaded_artifact_url = self._upload_artifact()
64
64
 
65
65
  if source_definition_path:
66
- presign_url: (
67
- str
68
- ) = FeatureRegistryClient().get_datasource_source_code_presign_url(
69
- ds_name=self.name
66
+ presign_url: str = (
67
+ FeatureRegistryClient().get_datasource_source_code_presign_url(
68
+ ds_name=self.name
69
+ )
70
70
  )
71
71
  source_code_spec: SourceCodeSpec = (
72
72
  SourceCodeSpecFactory.get_zip_source_code_spec(
@@ -118,9 +118,9 @@ class AthenaSource(JdbcSource):
118
118
  )
119
119
  )
120
120
 
121
- time_partition_columns: Optional[TimePartitionColumns] = (
122
- AthenaSource._extract_partition_column(proto_athena_source)
123
- )
121
+ time_partition_columns: Optional[
122
+ TimePartitionColumns
123
+ ] = AthenaSource._extract_partition_column(proto_athena_source)
124
124
  workgroup: Optional[str] = (
125
125
  proto_athena_source.workgroup
126
126
  if proto_athena_source.HasField("workgroup")
@@ -120,9 +120,9 @@ def feature_set(
120
120
  offline_scheduling_policy=offline_scheduling_policy,
121
121
  )
122
122
 
123
- streaming_backfill: Optional[StreamingBackfill] = (
124
- StreamingBackfill.get_streaming_backfill_from_function(function=function)
125
- )
123
+ streaming_backfill: Optional[
124
+ StreamingBackfill
125
+ ] = StreamingBackfill.get_streaming_backfill_from_function(function=function)
126
126
 
127
127
  fs_name = name or function.__name__
128
128
  streaming_feature_set = StreamingFeatureSet(
@@ -218,7 +218,7 @@ class StreamingBackfill:
218
218
 
219
219
  @staticmethod
220
220
  def _get_normalized_backfill_sources_spec(
221
- data_sources: Union[List[str], List[DataSourceBackfillSpec]],
221
+ data_sources: Union[List[str], List[DataSourceBackfillSpec]]
222
222
  ) -> List[DataSourceBackfillSpec]:
223
223
  # reformat all data source specs to 'DataSourceBackfillSpec'
224
224
  return [
@@ -182,12 +182,12 @@ class OnlineClient:
182
182
  )
183
183
  ordered_entities = [entity[0] for entity in ordered_entities_tuple]
184
184
 
185
- request_chunks: List[Tuple[RequestedEntitiesMatrix, pd.DataFrame]] = (
186
- OnlineClient._split_entities(
187
- entity_names=ordered_entities,
188
- population_df=df,
189
- max_entities_per_split=max_keys_per_request,
190
- )
185
+ request_chunks: List[
186
+ Tuple[RequestedEntitiesMatrix, pd.DataFrame]
187
+ ] = OnlineClient._split_entities(
188
+ entity_names=ordered_entities,
189
+ population_df=df,
190
+ max_entities_per_split=max_keys_per_request,
191
191
  )
192
192
 
193
193
  results: List[pd.DataFrame] = []
@@ -25,7 +25,7 @@ class StreamingSinkFactory:
25
25
  def get_streaming_sink(proto_streaming_sink: ProtoStreamingSink) -> BaseSink:
26
26
  sink_type = proto_streaming_sink.WhichOneof("sink_type")
27
27
 
28
- auth_conf: BaseAuthentication # noqa: F842
28
+ auth_conf: BaseAuthentication
29
29
  if sink_type == "kafka_sink":
30
30
  proto_kafka_sink: ProtoKafkaSink = proto_streaming_sink.kafka_sink
31
31
  auth_configuration: BaseAuthentication = cast(
@@ -163,9 +163,9 @@ def make_ssh_key_file(git_ssh_key: str) -> str:
163
163
 
164
164
 
165
165
  def add_ssh_file_to_env(ssh_key_file_path: str) -> None:
166
- os.environ["GIT_SSH_COMMAND"] = (
167
- f"ssh -i {ssh_key_file_path} -o StrictHostKeyChecking=no"
168
- )
166
+ os.environ[
167
+ "GIT_SSH_COMMAND"
168
+ ] = f"ssh -i {ssh_key_file_path} -o StrictHostKeyChecking=no"
169
169
  os.environ["GIT_SSH"] = f"ssh -i {ssh_key_file_path} -o StrictHostKeyChecking=no"
170
170
 
171
171
 
@@ -26,9 +26,9 @@ class OpenAIProvider:
26
26
  self.client = OpenAIClient()
27
27
 
28
28
  def _get_random_openai_api_key(self) -> Optional[str]:
29
- openai_api_keys: List[OpenAIApiKeySystemSecret] = (
30
- IntegrationUtils().get_openai_api_keys()
31
- )
29
+ openai_api_keys: List[
30
+ OpenAIApiKeySystemSecret
31
+ ] = IntegrationUtils().get_openai_api_keys()
32
32
  if len(openai_api_keys) == 0:
33
33
  return None
34
34
 
@@ -46,7 +46,7 @@ def get_output_adapter(
46
46
 
47
47
  first_result = (
48
48
  return_result[0]
49
- if isinstance(return_result, list) and len(return_result) > 0
49
+ if type(return_result) == list and len(return_result) > 0
50
50
  else return_result
51
51
  )
52
52
  if issubclass(type(first_result), Message):
@@ -30,19 +30,15 @@ def validate_and_sanitize_features_name(
30
30
  ecosystem_utils = EcosystemUtils()
31
31
  current_env_name = ecosystem_utils.get_current_environment_name()
32
32
  return [
33
- (
34
- cast(
35
- FeatureStoreInput,
36
- dataclasses.replace(
37
- feature,
38
- name=validate_and_sanitize_feature_name(
39
- feature.name, current_env_name
40
- ),
41
- ),
42
- )
43
- if isinstance(feature, FeatureStoreInput)
44
- else feature
33
+ cast(
34
+ FeatureStoreInput,
35
+ dataclasses.replace(
36
+ feature,
37
+ name=validate_and_sanitize_feature_name(feature.name, current_env_name),
38
+ ),
45
39
  )
40
+ if isinstance(feature, FeatureStoreInput)
41
+ else feature
46
42
  for feature in features
47
43
  ]
48
44
 
@@ -92,13 +92,13 @@ def load_file(
92
92
  )
93
93
 
94
94
  model_id = validate_model(model_id)
95
- download_url_response: (
96
- GetBuildVersioningDownloadURLResponse
97
- ) = BuildOrchestratorClient().get_build_versioning_download_url(
98
- build_id=build_id,
99
- model_id=model_id,
100
- tag=tag,
101
- tag_type=BuildVersioningTagsType.FILE_TAG_TYPE,
95
+ download_url_response: GetBuildVersioningDownloadURLResponse = (
96
+ BuildOrchestratorClient().get_build_versioning_download_url(
97
+ build_id=build_id,
98
+ model_id=model_id,
99
+ tag=tag,
100
+ tag_type=BuildVersioningTagsType.FILE_TAG_TYPE,
101
+ )
102
102
  )
103
103
 
104
104
  try:
@@ -275,7 +275,7 @@ def set_file_handler_log_file(
275
275
  logger: logging.Logger, handler_name: str, log_file: Path
276
276
  ):
277
277
  existing_handler = get_handler_from_logger(logger, handler_name)
278
- if not isinstance(existing_handler, RotatingFileHandler):
278
+ if type(existing_handler) != RotatingFileHandler:
279
279
  raise QwakException(
280
280
  f"Error in setting log file. Error message: handler of name {handler_name} is not a file logger handler"
281
281
  )
@@ -0,0 +1,53 @@
1
+ Metadata-Version: 2.3
2
+ Name: qwak-core
3
+ Version: 0.4.267
4
+ Summary: Qwak Core contains the necessary objects and communication tools for using the Qwak Platform
5
+ License: Apache-2.0
6
+ Keywords: mlops,ml,deployment,serving,model
7
+ Author: Qwak
8
+ Author-email: info@qwak.com
9
+ Requires-Python: >=3.9,<3.12
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.7
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Provides-Extra: feature-store
21
+ Provides-Extra: local-core-dependencies
22
+ Requires-Dist: PyYAML
23
+ Requires-Dist: cachetools
24
+ Requires-Dist: chevron (==0.14.0)
25
+ Requires-Dist: cloudpickle (==2.2.1) ; extra == "feature-store"
26
+ Requires-Dist: dacite (==1.8.1)
27
+ Requires-Dist: dependency-injector (>=4.0)
28
+ Requires-Dist: filelock
29
+ Requires-Dist: frogml-storage (>=0.11.2)
30
+ Requires-Dist: grpcio (>=1.57.0)
31
+ Requires-Dist: grpcio-tools (>=1.47.0) ; (python_full_version >= "3.7.1" and python_version < "3.10") and (extra == "local-core-dependencies")
32
+ Requires-Dist: grpcio-tools (>=1.56.2) ; (python_version >= "3.10") and (extra == "local-core-dependencies")
33
+ Requires-Dist: joblib (>=1.3.2,<2.0.0)
34
+ Requires-Dist: marshmallow-dataclass (>=8.5.8,<9.0.0)
35
+ Requires-Dist: mypy-protobuf (>=3.0.0,<4.0.0) ; extra == "local-core-dependencies"
36
+ Requires-Dist: protobuf (>=3.10,<4) ; python_full_version >= "3.7.1" and python_version < "3.10"
37
+ Requires-Dist: protobuf (>=4.21.6) ; python_version >= "3.10"
38
+ Requires-Dist: pyarrow (>=6.0.0) ; extra == "feature-store"
39
+ Requires-Dist: pyathena (>=2.2.0,!=2.18.0) ; extra == "feature-store"
40
+ Requires-Dist: pyspark (==3.4.2) ; extra == "feature-store"
41
+ Requires-Dist: python-jose[cryptography] (>=3.4.0)
42
+ Requires-Dist: python-json-logger (>=2.0.2)
43
+ Requires-Dist: requests
44
+ Requires-Dist: retrying (==1.3.4)
45
+ Requires-Dist: typeguard (>=2,<3)
46
+ Project-URL: Home page, https://www.qwak.com/
47
+ Description-Content-Type: text/markdown
48
+
49
+ # Qwak Core
50
+
51
+ Qwak is an end-to-end production ML platform designed to allow data scientists to build, deploy, and monitor their models in production with minimal engineering friction.
52
+ Qwak Core contains all the objects and tools necessary to use the Qwak Platform
53
+
@@ -591,38 +591,7 @@ _qwak_proto/qwak/workspace/workspace_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
591
591
  _qwak_proto/qwak/workspace/workspace_service_pb2.py,sha256=AB3C9S_AbOD7Nx1Ni4j1rW6PNtYTV1zjiqFQk-goQ74,21429
592
592
  _qwak_proto/qwak/workspace/workspace_service_pb2.pyi,sha256=nKKCHwnovZhsy8TSVmdz-Vtl0nviOOoX56HD-41Xo08,13726
593
593
  _qwak_proto/qwak/workspace/workspace_service_pb2_grpc.py,sha256=yKGuexxTBza99Ihe0DSTniV2ZSd_AG47inHenqfi890,27193
594
- frogml_storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
595
- frogml_storage/_artifactory_api.py,sha256=Hn8y7l61fhu9KZJBUr31F5m5gPIOz1UbnvthV4N_6-0,11209
596
- frogml_storage/_environment.py,sha256=zuzOJBtBwFaguwn_JkKjfhXStZoustgP30KzOP3mYv8,707
597
- frogml_storage/_log_config.py,sha256=ytwyRLYr3SyRlo4UpTjLBtlNqVApP9URTVO5m5DN3uU,1162
598
- frogml_storage/_storage_utils.py,sha256=HB2g7uY5A3b33yIcAUM1OjHb5jWsnpESsiDrEviQwrI,366
599
- frogml_storage/_utils.py,sha256=JkjJMObF-foFEA693KyrdDoVDHAyI21SW4UPlYrVYvs,1956
600
- frogml_storage/authentication/_authentication_utils.py,sha256=RQUNd2c88cOpcRJ-khsmI_XotwvzQ473pde6oyVSUPc,9227
601
- frogml_storage/authentication/models/_auth_config.py,sha256=uDcPXaPRXKDEtAhHEuN-GQTeDg8AUL8FE4aiAByHU_I,2024
602
- frogml_storage/cli/_frogml_cli.py,sha256=KAv0TrwwHazXoCb_cIScnbSG7NwZLf1nCjxEel642fI,1045
603
- frogml_storage/cli/_login_cli.py,sha256=n9sXUd4McD_0nULQErV8vrDmFJQvQTGKRMFEf8U-j64,8564
604
- frogml_storage/cli/commands/_login_command.py,sha256=RyeChctCB_wSAoLa2MdvSVKJLYkBxK9oDLoD7PaxvCA,2899
605
- frogml_storage/cli/models/_cli_login_arguments.py,sha256=jcFdiWRqjaVAGG9hiYpPHF0WUNT4DqMqVp1FPFGuwOM,723
606
- frogml_storage/cli/utils/_cli_utils.py,sha256=hffNsDeA8WnjLTDS2lE_HZLSdYgi7xEElSjuWDFWJrk,581
607
- frogml_storage/cli/utils/_login_checks_utility.py,sha256=sRS4-5MZQa3_Vcv7pSylUNZ_AcU8YW64PSCByDqGBCM,3014
608
- frogml_storage/constants.py,sha256=Fx-Dyzkl9e28O2qCvIgyEf2aBuhftXAdbn2BIfXFaGw,1542
609
- frogml_storage/dataset_manifest.py,sha256=x-1hLFXcX09T_drpCeN19JKZeI4WLD0HF1rXc8jcoa8,296
610
- frogml_storage/entity_manifest.py,sha256=xal9plqq7QNhR0hEaISKi2zUfiNmB4ENbyuG_7W4gsU,2796
611
- frogml_storage/exceptions/checksum_verification_error.py,sha256=t1muLRYvqza7Q4jo1mYHck9ZoDwlGE7WxcheAFAnIQs,159
612
- frogml_storage/exceptions/validation_error.py,sha256=_twu_xcL-O7D26qkskuuR-_NcnPPTADIUO9HGY4g0x0,156
613
- frogml_storage/frog_ml.py,sha256=ltESsR1ux8SU-cHNgiUQZ2Ua-Rr4m1eVKrG2Zmzll4k,24238
614
- frogml_storage/frogml_entity_type_info.py,sha256=EnPP49U-PdMrTZpFUJzXib5WHPs8Vh4AwIEPC3x2iqM,1376
615
- frogml_storage/http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
616
- frogml_storage/http/http_client.py,sha256=pHu8OKdUVW8-td4-BDjbPNzfBLyVmFHtnQiaFJFiOdA,2404
617
- frogml_storage/model_manifest.py,sha256=BVDw_41GVajpWj5WhCoqAk6lIiNMMnIMFKTFHkLuUbU,2186
618
- frogml_storage/models/_download_context.py,sha256=pc9KnepPQB9F-MaIe6JkRF0ineKj4B2ycdgr5e37zc4,1660
619
- frogml_storage/models/frogml_dataset_version.py,sha256=Uwe50e8eD9XqwARCsa4-iJJqyMQsDqs9E-iuAInvJuA,637
620
- frogml_storage/models/frogml_entity_version.py,sha256=-3lRFQSES76YbBAzKuOOlWGcT4T1v2RNQ-54bN8-GH0,921
621
- frogml_storage/models/frogml_model_version.py,sha256=2pVHW-BhowBcIScLZzWj5SH0abAirP3cDvXeq334lJI,631
622
- frogml_storage/serialization_metadata.py,sha256=KOJ9Yj0XGbYudpcUBMh67Hd7VohmoWsYOvhD-L2yzyY,347
623
- frogml_storage/storage.py,sha256=gfkaNzQBgR7-uMHc9-prdiFwyIGb-rO4dKQ49r-TQ3I,5595
624
- frogml_storage/utils/_input_checks_utility.py,sha256=bn3_xQcTnsASIHgmvoCyWCFu0akgWCiI8RdXn1AHqsE,3225
625
- qwak/__init__.py,sha256=kuADpQQnTq1K96a6bwwfFMNhoKzyLbPWFI4uD-Z8npQ,587
594
+ qwak/__init__.py,sha256=F-37S-zdaiHfG4C8QpWw3-IjEvvhbfnS2kYFYuM7hVg,587
626
595
  qwak/automations/__init__.py,sha256=qFZRvCxUUn8gcxkJR0v19ulHW2oJ0x6-Rif7HiheDP4,1522
627
596
  qwak/automations/automation_executions.py,sha256=5MeH_epYYWb8NKXgAozwT_jPyyUDednBHG7izloi7RY,3228
628
597
  qwak/automations/automations.py,sha256=3yx8e2v0uSKDnXbqyknasyEoQ5vxGni6K40Hbi1_zkk,12599
@@ -682,7 +651,7 @@ qwak/clients/file_versioning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
682
651
  qwak/clients/file_versioning/client.py,sha256=ywOy9olB4mekjQQrKUufAbaC-3sWzQnqd3ChcwrAJzc,2505
683
652
  qwak/clients/file_versioning/file_tag_filter.py,sha256=5pVJ0mGq9DEOqQkg7H-jjSbsmnWusO4-_0Jpz4DhDwo,885
684
653
  qwak/clients/instance_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
685
- qwak/clients/instance_template/client.py,sha256=8EjXzMLTeGfywO1kDycVr4MxT3Z6gF7nX8B9i03JRYQ,2565
654
+ qwak/clients/instance_template/client.py,sha256=7c4mQG7tzp-OmNhBEBYxIqAYTNYtCRe76j5X1aP2Xk4,2509
686
655
  qwak/clients/integration_management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
687
656
  qwak/clients/integration_management/integration_manager_client.py,sha256=-pNY6iQU8du46wvRCiTKKCi23RcCNXr9La_0oG0mJo0,1225
688
657
  qwak/clients/integration_management/integration_utils.py,sha256=EVNsM5ItlGwpfqfZPayJCrTiZa0AaR241ui4QvzcLVg,953
@@ -699,7 +668,7 @@ qwak/clients/model_management/client.py,sha256=LHJlR12plQCjv0TtuozJ4Da91M7C-ay6G
699
668
  qwak/clients/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
700
669
  qwak/clients/project/client.py,sha256=Np4vDU4iPndGtWTF_bH2CqepCQHw49whvsq23uLMMJs,2484
701
670
  qwak/clients/prompt_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
702
- qwak/clients/prompt_manager/model_descriptor_mapper.py,sha256=QDLPImRIPv9Jrdtg03oL7zgKvrWDXmzK0QXkUFAo1bs,7395
671
+ qwak/clients/prompt_manager/model_descriptor_mapper.py,sha256=rRQXjqLvq7SVxYSM5_IFo_6z70Kzf5WPOtxFzm-69m0,7313
703
672
  qwak/clients/prompt_manager/prompt_manager_client.py,sha256=Mg1uqJjwj57jFfNKx6tomzfOe6C8keTKpxvXFSPo0yA,6952
704
673
  qwak/clients/prompt_manager/prompt_proto_mapper.py,sha256=ybLsPz5nt4BsgBFk2RYk0tFwbNpHTsCOp93k8ALXmr4,9233
705
674
  qwak/clients/secret_service/__init__.py,sha256=TdQl1lgplXCKVHYSN4feRIAoonZ7XDz50zALjwVDcM4,40
@@ -731,7 +700,7 @@ qwak/exceptions/qwak_remote_build_failed.py,sha256=JgrYwCQGclCCcpSkYk2FKqhkEk45a
731
700
  qwak/exceptions/qwak_suggestion_exception.py,sha256=3sIK6s3OB3G0NLC_fGV1WkAo_tHNjH-A5vaehxmkoek,746
732
701
  qwak/feature_store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
733
702
  qwak/feature_store/_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
734
- qwak/feature_store/_common/artifact_utils.py,sha256=0u90A3Fxdw5_QFWaK80VJoJh907ffy-GIuVMku7cyL0,1979
703
+ qwak/feature_store/_common/artifact_utils.py,sha256=iIdz6EfFuE_yub6g5KXlOOMt7TA7pEuuLwjlzVSRpO8,1977
735
704
  qwak/feature_store/_common/feature_set_utils.py,sha256=dhtPWnwv1nB3h3EA8FAYklx1qGkO_Dj1jecaBGNNpew,8634
736
705
  qwak/feature_store/_common/functions.py,sha256=kSNYJ7dy48NN09HG9asm4ibQh0JaCGcZYsRDjRWlUHE,659
737
706
  qwak/feature_store/_common/packaging.py,sha256=eyTyjIB_C6wGHcdU7xR5u7-N2Ld98s4LPU_iZtcbRO0,8122
@@ -740,11 +709,11 @@ qwak/feature_store/_common/source_code_spec_factory.py,sha256=zDif0nlWs43T87-k2V
740
709
  qwak/feature_store/_common/value.py,sha256=6aN3101DvEDUJalNL1LrzH32wi9SVhl0ZpsGHcFJZzg,323
741
710
  qwak/feature_store/data_sources/__init__.py,sha256=IKv3UDhcaCm6VagPGv1AvdYu_gxHUc69mbNOG96kEsU,2316
742
711
  qwak/feature_store/data_sources/attributes.py,sha256=6xbotlaWcrqmW5cjCET57hyCRDy8I2a2aoo5BGcIE4I,791
743
- qwak/feature_store/data_sources/base.py,sha256=KYP1VLr_Br_4se3-JxKWC2dj5CjMM5Mli7OOz_NZtCQ,4170
712
+ qwak/feature_store/data_sources/base.py,sha256=w9EJOp-RnbA6oxoAvKOF6LKUCEWOkN8gjG9uNQUYJ1M,4178
744
713
  qwak/feature_store/data_sources/batch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
745
714
  qwak/feature_store/data_sources/batch/_batch.py,sha256=V-VLVgUVPN1Mfk-brNYl0nPczqRU-GYOB7Xy-3-O0zI,197
746
715
  qwak/feature_store/data_sources/batch/_jdbc.py,sha256=k045Rm5iMx2pXYvif4C4vdZt7tbVgAt-3ThH3cP2rTM,695
747
- qwak/feature_store/data_sources/batch/athena.py,sha256=Ogrr3Za7owdWu8cWsa81UnvZ4_R2UFA1YMe8UjkYroA,10902
716
+ qwak/feature_store/data_sources/batch/athena.py,sha256=sdP68PkWsAWE1U-5VpZnGFF9aNUTOqns4JQDeTDqI5k,10900
748
717
  qwak/feature_store/data_sources/batch/big_query.py,sha256=H3rEWGxXJjIQNFiyZ9c6JgcSyeWzSeZzh59y8ZjAn0U,3117
749
718
  qwak/feature_store/data_sources/batch/clickhouse.py,sha256=FELh-70EIyPeYap3Gj8maoalXdXbJ5kBvnfvaiw6Kk4,2158
750
719
  qwak/feature_store/data_sources/batch/csv.py,sha256=wdn8ARBYebTcNojaji8OYXnKlx_U1G7sFLChGffMxfg,2076
@@ -784,8 +753,8 @@ qwak/feature_store/feature_sets/context.py,sha256=zV6r0O70cfM4pmxlfC6xxAtro-wBhe
784
753
  qwak/feature_store/feature_sets/execution_spec.py,sha256=SXlhgNJeFDIKvrH35ZOyjBqGUesdoxjWkPgHmm518Y0,1877
785
754
  qwak/feature_store/feature_sets/metadata.py,sha256=ckr-zr0hZgsK-tRWucMomF7Tj8XIYcp_cnNGwtMV4mA,1814
786
755
  qwak/feature_store/feature_sets/read_policies.py,sha256=ZVMRiducxfb5YbU0NQQDPb78BH5fRttsE5y2TL7Jaj4,6820
787
- qwak/feature_store/feature_sets/streaming.py,sha256=G0Prg6hyjrzimL0u7tA71G-Bq3mnn57ZZCneMfudL0Y,25161
788
- qwak/feature_store/feature_sets/streaming_backfill.py,sha256=NInPNnc0WYx2FDsjaOt5woTO7EtzgrZCbMB_Ull0ux0,9585
756
+ qwak/feature_store/feature_sets/streaming.py,sha256=QScKkdCGF8TqVJscB-8YE4s9Uu--3VT2C7KwaRUMIpw,25159
757
+ qwak/feature_store/feature_sets/streaming_backfill.py,sha256=eb5grj467Z4xEujUpCMpmXda1_W82G7NaxR6cw_AHbQ,9584
789
758
  qwak/feature_store/feature_sets/transformations/__init__.py,sha256=TtzeMNhqxuYu8NIxqBCcGHJoA-B8389RTIHrDMvpMbw,857
790
759
  qwak/feature_store/feature_sets/transformations/aggregations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
791
760
  qwak/feature_store/feature_sets/transformations/aggregations/aggregations.py,sha256=MENQyuDEG5G4TQs7fd1L1FEfP4kWd0LaHbG61Kw4rbY,14117
@@ -800,14 +769,14 @@ qwak/feature_store/offline/_offline_serving_validations.py,sha256=a3Ga9-IPTS0TPf
800
769
  qwak/feature_store/offline/client_v2.py,sha256=MKIlVGohW7aMmCpBUKE9wP9X6gtU_pLVfOgnBn2Bp98,14393
801
770
  qwak/feature_store/offline/feature_set_features.py,sha256=Eh_rPz_m12cAQvrhIF-xtA-ZGVKy1HlgKJdjNvsmPoo,739
802
771
  qwak/feature_store/online/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
803
- qwak/feature_store/online/client.py,sha256=V317ol5IXslhmHmUlmucc-yBXaByj6HuA6LdzGWDSTk,12929
772
+ qwak/feature_store/online/client.py,sha256=fBD48NDpocX01qvFVYB5Qd4JRM1InCjdeQgoMM8nQ0Q,12911
804
773
  qwak/feature_store/online/endpoint_utils.py,sha256=Lx5Wvvg7teJGXP3SOUPPmYQeVjSve2b0hQlqhs13R5M,2210
805
774
  qwak/feature_store/sinks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
806
775
  qwak/feature_store/sinks/base.py,sha256=FvNz9aabvYHT-3vZdHdtEnlFQ0tyvsnspkPnWt2lTdU,360
807
776
  qwak/feature_store/sinks/kafka.py,sha256=P9gPxotQMyC3qr8xZyL_7g65amnzeqpvz6jutwRoHiY,1826
808
777
  qwak/feature_store/sinks/streaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
809
778
  qwak/feature_store/sinks/streaming/attachment.py,sha256=sONswzyTZlxB9OEDc1DzE_Et6AI7gBi_T--NSY3MeOw,1031
810
- qwak/feature_store/sinks/streaming/factory.py,sha256=8gGJs6dAzYZVhTIyvlmnQgm7KqYe5xa9eBGUyigMPSw,2361
779
+ qwak/feature_store/sinks/streaming/factory.py,sha256=VctrlU9oHNPniTb43eACXUwM2K2pDskd0LD4g_Cp8uY,2347
811
780
  qwak/feature_store/validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
812
781
  qwak/feature_store/validations/validation_options.py,sha256=f4kqv8j-lyvWLGnaFlUQNmAleZ3hkTZZs0CJPcsk18I,2656
813
782
  qwak/feature_store/validations/validation_response.py,sha256=e052KUs2qzYvh5Kuo4XbnscRK_1jcT6HwqwdL-4qH20,3783
@@ -843,7 +812,7 @@ qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strat
843
812
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/folder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
844
813
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/folder/folder_strategy.py,sha256=Cry97YuBP16TZT6iL512Gmqp-U1J-UDxdARt-E1MD2M,5057
845
814
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
846
- qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/git_strategy.py,sha256=xt2Ywwf0zirPkpLCu_RgtZp7AxFU-qEboqK6DZdNb5Y,5946
815
+ qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/git/git_strategy.py,sha256=QDK3upq7DNeL6zmegFf3sHg3kw61AGcxzjDPlv4nusA,5944
847
816
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/strategy.py,sha256=iRl-au3V6KbKIY-doYSAaqiS5Bt2_w3ZIvUw9xwSK64,1424
848
817
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/zip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
849
818
  qwak/inner/build_logic/phases/phase_010_fetch_model/fetch_strategy_manager/strategy/zip/zip_strategy.py,sha256=z1PHzvhUWtEqcppE5Ju4BRbwvZ07kodNglkl6AwvbfI,2258
@@ -941,7 +910,7 @@ qwak/llmops/provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
941
910
  qwak/llmops/provider/chat.py,sha256=dec-IKGzkECb5tz63HNK0Fx9Tm4ukQ4kkYFEr6bA7co,1582
942
911
  qwak/llmops/provider/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
943
912
  qwak/llmops/provider/openai/client.py,sha256=G20TB3LW4amdOu-_7526xBDnvpNop7c_QvhLz7hSLUs,4462
944
- qwak/llmops/provider/openai/provider.py,sha256=TFdbo9NWPPKkx8yNuAfDkVmYFvVW9IcAg_NBtCowW4Q,3044
913
+ qwak/llmops/provider/openai/provider.py,sha256=E0LnEfFFidrXMcOG-sI3teZvNyzApmhbi1ZB0MDnDcE,3042
945
914
  qwak/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
946
915
  qwak/model/_entity_extraction.py,sha256=-h66QcJS0bzrzHMqdvxybHj3lgPbQhoVHnt7YKAFjKg,4626
947
916
  qwak/model/adapters/__init__.py,sha256=jMM_0Nf6_vCKccsRB0izs8odCXYlXt-u1sXGh4PcpX4,1739
@@ -989,7 +958,7 @@ qwak/model/tools/adapters/input_adapters/image_input.py,sha256=NL869uiD5TjI3WzjQ
989
958
  qwak/model/tools/adapters/input_adapters/json_input.py,sha256=nP_1EgJvmv4rkXR6tLYrJwf4p-FAfFQOTxY-LEfAJaU,608
990
959
  qwak/model/tools/adapters/input_adapters/string_input.py,sha256=K2SIJy92C-1eX1ReT8iqeFAU8UQWF2d88Zv79jsMrac,151
991
960
  qwak/model/tools/adapters/input_adapters/tf_tensor_input.py,sha256=tNid73S0WOLjvD6tKrO2BsgUa-eJaMmCkRs4ucVQXDU,1363
992
- qwak/model/tools/adapters/output.py,sha256=tj2kj7TQiH0b7N1C3j-EPYWESoNiwSyqazV8gbkMIbY,2716
961
+ qwak/model/tools/adapters/output.py,sha256=GZa-8LD25vkDccupxNEvlmrept3hgL94BZ2pGABYmmQ,2712
993
962
  qwak/model/tools/adapters/output_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
994
963
  qwak/model/tools/adapters/output_adapters/base_output.py,sha256=VXiwnA1499RQSfdFbEU769lRhuOqWTBPfXglKaymhRc,343
995
964
  qwak/model/tools/adapters/output_adapters/dataframe_output.py,sha256=tJwG798QCarqXSfD8Je-E3RNwvW9KskcgAYoLioPFns,798
@@ -999,9 +968,9 @@ qwak/model/tools/adapters/output_adapters/tf_tensor_output.py,sha256=Xg98LMoldKE
999
968
  qwak/model/tools/run_model_locally.py,sha256=xRYOOi-BLAs-QRTrSWxKPQLeTg5j3FSmImDq6e6lLro,2289
1000
969
  qwak/model/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1001
970
  qwak/model/utils/extract_wrapped_function.py,sha256=uIle1zL8vbmeS3PGAuaNFLIUQAsvpuzk3LlH-Teba94,320
1002
- qwak/model/utils/feature_utils.py,sha256=bCeWZgsKSvGjbQOfLKubEJNec6Gp1Gbxug_fsO3wReo,2491
971
+ qwak/model/utils/feature_utils.py,sha256=jB4pfmhqN2_B4THR7YADlCWbymU3cm_8u2RzTegrv_w,2389
1003
972
  qwak/model_loggers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1004
- qwak/model_loggers/artifact_logger.py,sha256=kXYfnVu7zvInA3CQlPFdIQLWOUGpZ6wNTprY5WE6Mvo,3889
973
+ qwak/model_loggers/artifact_logger.py,sha256=Emv8eSpgxJ_5_uCiNLUloTNdXPCtWC0pJDcWMcc6A78,3909
1005
974
  qwak/model_loggers/data_logger.py,sha256=aTRnRwKmKUFZq9SRg4sY-b1yGDY2XB-pExlQ0WlcH0k,5629
1006
975
  qwak/model_loggers/model_logger.py,sha256=WxKLEpfzDaRn3kanrI0kj4zqqKQrwT2sin1IS1WNEA8,852
1007
976
  qwak/qwak_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1032,7 +1001,7 @@ qwak/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1032
1001
  qwak/testing/fixtures.py,sha256=tjWIvdZ2nIfNPs6VtUeGx5coJepQVMUWemKGtqUYPzM,318
1033
1002
  qwak/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1034
1003
  qwak/tools/logger/__init__.py,sha256=i70JxYs7RGOaUrcYAHkakLqyUt486qJyEY1cXFvkk9Y,107
1035
- qwak/tools/logger/logger.py,sha256=aGCsimvkfBF4eVPCqgwQc0LVuQZyenheNUmNiOSruK4,9606
1004
+ qwak/tools/logger/logger.py,sha256=VmseUKV8fWpJ7yYFHjE3nQu6_2dU-t1-PQrY6Mnt8nc,9598
1036
1005
  qwak/tools/logger/logging.yml,sha256=UWC2i3NVKT3j5S8_SapzqClDzXLIEAurzNIXa2tS4UA,1941
1037
1006
  qwak/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1038
1007
  qwak/utils/datetime_utils.py,sha256=3zK7PUrerMlwB7U6WeuYwMAclVMfPqBNZihNRyIVMs4,581
@@ -1096,7 +1065,6 @@ qwak_services_mock/mocks/workspace_manager_service_mock.py,sha256=O9ZSwln4T4kHVk
1096
1065
  qwak_services_mock/services_mock.py,sha256=zXtHcX8a_acz7ynxuCBxxVpHpde7aAGjIn6Uw52LY1s,19593
1097
1066
  qwak_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1098
1067
  qwak_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
1099
- qwak_core-0.4.266.dist-info/METADATA,sha256=piqQlieEvf1rcFagwMYmaZw07LkhF36cZIIsdDGC10I,15517
1100
- qwak_core-0.4.266.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1101
- qwak_core-0.4.266.dist-info/entry_points.txt,sha256=VvrKJ6Zw6M14z5ynvrzWY05fmyxgWrMm3Ti0r8eeCv0,62
1102
- qwak_core-0.4.266.dist-info/RECORD,,
1068
+ qwak_core-0.4.267.dist-info/METADATA,sha256=xP0arzOuZZ2eJ2TpTSG1T-uJ4E5dQ4DN_P8ZJ9w4avs,2549
1069
+ qwak_core-0.4.267.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1070
+ qwak_core-0.4.267.dist-info/RECORD,,
File without changes