frogml-core 0.0.71__py3-none-any.whl → 0.0.73__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.
- frogml_core/__init__.py +1 -1
- frogml_core/clients/feature_store/offline_serving_client.py +31 -29
- frogml_core/clients/location_discovery/__init__.py +1 -0
- frogml_core/clients/location_discovery/client.py +73 -0
- frogml_core/feature_store/_common/functions.py +0 -19
- frogml_core/feature_store/offline/__init__.py +1 -2
- frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/upload_step.py +18 -18
- {frogml_core-0.0.71.dist-info → frogml_core-0.0.73.dist-info}/METADATA +1 -1
- {frogml_core-0.0.71.dist-info → frogml_core-0.0.73.dist-info}/RECORD +19 -14
- frogml_proto/qwak/service_discovery/service_discovery_location_pb2.py +65 -0
- frogml_proto/qwak/service_discovery/service_discovery_location_pb2.pyi +73 -0
- frogml_proto/qwak/service_discovery/service_discovery_location_pb2_grpc.py +4 -0
- frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2.py +49 -0
- frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2.pyi +41 -0
- frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2_grpc.py +231 -0
- frogml_services_mock/mocks/frogml_mocks.py +4 -0
- frogml_services_mock/mocks/location_discovery_service_api.py +104 -0
- frogml_services_mock/services_mock.py +16 -4
- frogml_core/feature_store/offline/_query_engine.py +0 -32
- frogml_core/feature_store/offline/athena/__init__.py +0 -0
- frogml_core/feature_store/offline/athena/athena_query_engine.py +0 -154
- frogml_core/feature_store/offline/client.py +0 -721
- {frogml_core-0.0.71.dist-info → frogml_core-0.0.73.dist-info}/WHEEL +0 -0
frogml_core/__init__.py
CHANGED
@@ -1,40 +1,23 @@
|
|
1
1
|
import logging
|
2
2
|
from typing import List, Optional
|
3
3
|
|
4
|
-
|
5
|
-
from
|
6
|
-
|
4
|
+
import grpc
|
5
|
+
from frogml_core.clients.location_discovery import LocationDiscoveryClient
|
6
|
+
from frogml_core.inner.tool.grpc.grpc_tools import create_grpc_channel
|
7
|
+
from frogml_core.inner.tool.retry_utils import retry
|
7
8
|
from frogml_proto.qwak.offline.serving.v1.feature_values_pb2 import (
|
8
9
|
FeaturesetFeatures as ProtoFeaturesetFeatures,
|
9
10
|
)
|
10
11
|
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
11
12
|
FeatureValuesRequestStatus as ProtoFeatureValuesRequestStatus,
|
12
|
-
)
|
13
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
14
13
|
FileFormat as ProtoFileFormat,
|
15
|
-
)
|
16
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
17
14
|
GetFeatureValuesInRangeRequest as ProtoGetFeatureValuesInRangeRequest,
|
18
|
-
)
|
19
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
20
15
|
GetFeatureValuesInRangeResponse as ProtoGetFeatureValuesInRangeResponse,
|
21
|
-
)
|
22
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
23
16
|
GetFeatureValuesRequest as ProtoGetFeatureValuesRequest,
|
24
|
-
)
|
25
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
26
17
|
GetFeatureValuesResponse as ProtoGetFeatureValuesResponse,
|
27
|
-
)
|
28
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
29
18
|
GetFeatureValuesResultRequest as ProtoGetFeatureValuesResultRequest,
|
30
|
-
)
|
31
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
32
19
|
GetFeatureValuesResultResponse as ProtoGetFeatureValuesResultResponse,
|
33
|
-
)
|
34
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
35
20
|
GetFileUploadUrlRequest as ProtoGetFileUploadUrlRequest,
|
36
|
-
)
|
37
|
-
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2 import (
|
38
21
|
GetFileUploadUrlResponse as ProtoGetFileUploadUrlResponse,
|
39
22
|
)
|
40
23
|
from frogml_proto.qwak.offline.serving.v1.offline_serving_async_service_pb2_grpc import (
|
@@ -45,15 +28,10 @@ from frogml_proto.qwak.offline.serving.v1.options_pb2 import (
|
|
45
28
|
)
|
46
29
|
from frogml_proto.qwak.offline.serving.v1.population_pb2 import (
|
47
30
|
Population as ProtoPopulation,
|
48
|
-
)
|
49
|
-
from frogml_proto.qwak.offline.serving.v1.population_pb2 import (
|
50
31
|
PopulationFileUploadUrlType as ProtoPopulationFileUploadUrlType,
|
51
|
-
)
|
52
|
-
from frogml_proto.qwak.offline.serving.v1.population_pb2 import (
|
53
32
|
TimedPopulation as ProtoTimedPopulation,
|
54
33
|
)
|
55
|
-
from
|
56
|
-
from frogml_core.inner.tool.retry_utils import retry
|
34
|
+
from google.protobuf.timestamp_pb2 import Timestamp as ProtoTimestamp
|
57
35
|
|
58
36
|
|
59
37
|
class FeatureValuesResultNotReadyException(Exception):
|
@@ -69,8 +47,32 @@ class FsOfflineServingClient:
|
|
69
47
|
Querying offline features store
|
70
48
|
"""
|
71
49
|
|
72
|
-
def __init__(self, grpc_channel
|
73
|
-
self._client =
|
50
|
+
def __init__(self, grpc_channel: Optional[grpc.Channel] = None):
|
51
|
+
self._client = self._create_client(grpc_channel)
|
52
|
+
|
53
|
+
@staticmethod
|
54
|
+
def _get_offline_serving_url() -> str:
|
55
|
+
"""
|
56
|
+
Fetches the offline serving service URL from the LocationDiscoveryService.
|
57
|
+
"""
|
58
|
+
return LocationDiscoveryClient().get_offline_serving().service_url
|
59
|
+
|
60
|
+
def _create_client(
|
61
|
+
self, grpc_channel: Optional[grpc.Channel] = None
|
62
|
+
) -> FeatureStoreOfflineServingAsyncServiceStub:
|
63
|
+
if grpc_channel:
|
64
|
+
return FeatureStoreOfflineServingAsyncServiceStub(grpc_channel)
|
65
|
+
|
66
|
+
channel = create_grpc_channel(
|
67
|
+
url=self._get_offline_serving_url(),
|
68
|
+
enable_ssl=True,
|
69
|
+
status_for_retry=(
|
70
|
+
grpc.StatusCode.UNAVAILABLE,
|
71
|
+
grpc.StatusCode.CANCELLED,
|
72
|
+
grpc.StatusCode.DEADLINE_EXCEEDED,
|
73
|
+
),
|
74
|
+
)
|
75
|
+
return FeatureStoreOfflineServingAsyncServiceStub(channel)
|
74
76
|
|
75
77
|
def get_population_file_upload_url(
|
76
78
|
self,
|
@@ -0,0 +1 @@
|
|
1
|
+
from .client import LocationDiscoveryClient
|
@@ -0,0 +1,73 @@
|
|
1
|
+
from typing import Callable
|
2
|
+
|
3
|
+
import grpc
|
4
|
+
from dependency_injector.wiring import Provide
|
5
|
+
from frogml_core.exceptions import FrogmlException
|
6
|
+
from frogml_core.inner.di_configuration import FrogmlContainer
|
7
|
+
from frogml_proto.qwak.service_discovery.service_discovery_location_pb2 import (
|
8
|
+
ServiceLocationDescriptor,
|
9
|
+
)
|
10
|
+
from frogml_proto.qwak.service_discovery.service_discovery_location_service_pb2 import (
|
11
|
+
GetServingUrlRequest as ProtoGetServingUrlRequest,
|
12
|
+
GetServingUrlRequestResponse as ProtoGetServingUrlRequestResponse,
|
13
|
+
)
|
14
|
+
from frogml_proto.qwak.service_discovery.service_discovery_location_service_pb2_grpc import (
|
15
|
+
LocationDiscoveryServiceStub,
|
16
|
+
)
|
17
|
+
|
18
|
+
|
19
|
+
class LocationDiscoveryClient:
|
20
|
+
"""
|
21
|
+
Client for querying service locations from the LocationDiscoveryService.
|
22
|
+
"""
|
23
|
+
|
24
|
+
def __init__(self, grpc_channel=Provide[FrogmlContainer.core_grpc_channel]):
|
25
|
+
self._service = LocationDiscoveryServiceStub(grpc_channel)
|
26
|
+
|
27
|
+
@staticmethod
|
28
|
+
def _get_location(
|
29
|
+
method: Callable[
|
30
|
+
[ProtoGetServingUrlRequest], ProtoGetServingUrlRequestResponse
|
31
|
+
],
|
32
|
+
) -> ServiceLocationDescriptor:
|
33
|
+
"""
|
34
|
+
Calls a specific RPC and extracts the service location descriptor.
|
35
|
+
|
36
|
+
Args:
|
37
|
+
method: The gRPC method to call.
|
38
|
+
|
39
|
+
Returns:
|
40
|
+
ServiceLocationDescriptor: Contains service_url and location metadata.
|
41
|
+
"""
|
42
|
+
try:
|
43
|
+
request = ProtoGetServingUrlRequest()
|
44
|
+
response = method(request)
|
45
|
+
return response.location
|
46
|
+
except grpc.RpcError as e:
|
47
|
+
raise FrogmlException(
|
48
|
+
f"Failed to retrieve service location. Error is: {e.details()}"
|
49
|
+
) from e
|
50
|
+
|
51
|
+
def get_offline_serving(self) -> ServiceLocationDescriptor:
|
52
|
+
"""Fetches the offline serving service location."""
|
53
|
+
return self._get_location(self._service.GetOfflineServingUrl)
|
54
|
+
|
55
|
+
def get_distribution_manager(self) -> ServiceLocationDescriptor:
|
56
|
+
"""Fetches the distribution manager service location."""
|
57
|
+
return self._get_location(self._service.GetDistributionManagerUrl)
|
58
|
+
|
59
|
+
def get_analytics_engine(self) -> ServiceLocationDescriptor:
|
60
|
+
"""Fetches the analytics engine service location."""
|
61
|
+
return self._get_location(self._service.GetAnalyticsEngineUrl)
|
62
|
+
|
63
|
+
def get_metrics_gateway(self) -> ServiceLocationDescriptor:
|
64
|
+
"""Fetches the metrics gateway service location."""
|
65
|
+
return self._get_location(self._service.GetMetricsGatewayUrl)
|
66
|
+
|
67
|
+
def get_features_operator(self) -> ServiceLocationDescriptor:
|
68
|
+
"""Fetches the features operator service location."""
|
69
|
+
return self._get_location(self._service.GetFeaturesOperatorUrl)
|
70
|
+
|
71
|
+
def get_hosting_gateway(self) -> ServiceLocationDescriptor:
|
72
|
+
"""Fetches the hosting gateway service location."""
|
73
|
+
return self._get_location(self._service.GetHostingGatewayUrl)
|
@@ -16,22 +16,3 @@ def _generate_new_col(col_name: str, duplicate_cols_dict: dict):
|
|
16
16
|
return col_name
|
17
17
|
elif len(feature_full_name) == 2 and duplicate_cols_dict[feature_full_name[1]] == 1:
|
18
18
|
return feature_full_name[1]
|
19
|
-
|
20
|
-
|
21
|
-
def normalize_cols(cols) -> List[str]:
|
22
|
-
"""
|
23
|
-
Normalize cols - try to remove leading feature set name from features
|
24
|
-
Args:
|
25
|
-
cols: list of column
|
26
|
-
Return normalized columns
|
27
|
-
"""
|
28
|
-
duplicate_columns_dict = {}
|
29
|
-
for col in cols:
|
30
|
-
feature_full_name: List[str] = col.split(".")
|
31
|
-
if len(feature_full_name) != 2:
|
32
|
-
duplicate_columns_dict[col] = 1
|
33
|
-
else:
|
34
|
-
fs_name = feature_full_name[1]
|
35
|
-
duplicate_columns_dict[fs_name] = duplicate_columns_dict.get(fs_name, 0) + 1
|
36
|
-
cols = [_generate_new_col(col_name, duplicate_columns_dict) for col_name in cols]
|
37
|
-
return cols
|
@@ -10,7 +10,6 @@ from retrying import retry
|
|
10
10
|
|
11
11
|
from frogml_proto.qwak.builds.build_url_pb2 import BuildVersioningTagsType
|
12
12
|
from frogml_proto.qwak.builds.builds_orchestrator_service_pb2 import (
|
13
|
-
AuthenticationDetail,
|
14
13
|
GetBuildVersioningUploadURLResponse,
|
15
14
|
)
|
16
15
|
from frogml_core.exceptions import FrogmlException, FrogmlGeneralBuildException
|
@@ -159,15 +158,17 @@ class UploadStep(Step):
|
|
159
158
|
):
|
160
159
|
self.build_logger.debug(f"Upload file {file}")
|
161
160
|
|
162
|
-
pre_signed_url_response =
|
163
|
-
|
161
|
+
pre_signed_url_response: GetBuildVersioningUploadURLResponse = (
|
162
|
+
self.get_pre_signed_upload_url(
|
163
|
+
tag=tag, tag_type=BuildVersioningTagsType.FILE_TAG_TYPE
|
164
|
+
)
|
164
165
|
)
|
165
166
|
self.upload_file_to_remote_storge(
|
166
167
|
upload_url=pre_signed_url_response.upload_url,
|
167
168
|
file=file,
|
168
169
|
all_files_size_to_upload=all_files_size_to_upload,
|
169
170
|
read_so_far=read_so_far,
|
170
|
-
|
171
|
+
headers=pre_signed_url_response.headers,
|
171
172
|
)
|
172
173
|
|
173
174
|
self.build_logger.debug(f"Upload file {file} completed")
|
@@ -204,22 +205,16 @@ class UploadStep(Step):
|
|
204
205
|
file: Path,
|
205
206
|
all_files_size_to_upload: int,
|
206
207
|
read_so_far: int,
|
207
|
-
|
208
|
+
headers: Optional[dict] = None,
|
208
209
|
):
|
210
|
+
if not headers:
|
211
|
+
headers = {}
|
212
|
+
|
209
213
|
try:
|
210
214
|
self.build_logger.debug(f"Upload file {file} to Qwak storage")
|
211
|
-
auth: Optional[Tuple[str, str]] = None
|
212
|
-
if (
|
213
|
-
authentication_details.WhichOneof("integration_type")
|
214
|
-
== "jfrog_authentication_detail"
|
215
|
-
):
|
216
|
-
auth = (
|
217
|
-
authentication_details.jfrog_authentication_detail.username,
|
218
|
-
authentication_details.jfrog_authentication_detail.token,
|
219
|
-
)
|
220
215
|
|
221
216
|
self.send_request(
|
222
|
-
upload_url, file, all_files_size_to_upload, read_so_far,
|
217
|
+
upload_url, file, all_files_size_to_upload, read_so_far, headers
|
223
218
|
)
|
224
219
|
self.build_logger.debug(
|
225
220
|
f"File {file} uploaded to Qwak storage successfully"
|
@@ -237,8 +232,14 @@ class UploadStep(Step):
|
|
237
232
|
file: Path,
|
238
233
|
all_files_size_to_upload: int,
|
239
234
|
read_so_far: int,
|
240
|
-
|
235
|
+
headers: Optional[dict],
|
241
236
|
):
|
237
|
+
if not headers:
|
238
|
+
headers = {}
|
239
|
+
|
240
|
+
# Adding to the current headers the content-type
|
241
|
+
headers["content-type"] = "text/plain"
|
242
|
+
|
242
243
|
http_response = requests.put( # nosec B113
|
243
244
|
url=upload_url,
|
244
245
|
data=UploadInChunks(
|
@@ -248,8 +249,7 @@ class UploadStep(Step):
|
|
248
249
|
all_files_size_to_upload=all_files_size_to_upload,
|
249
250
|
read_so_far=read_so_far,
|
250
251
|
),
|
251
|
-
|
252
|
-
headers={"content-type": "text/plain"},
|
252
|
+
headers=headers,
|
253
253
|
)
|
254
254
|
|
255
255
|
if http_response.status_code not in [200, 201]:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
frogml_core/__init__.py,sha256=
|
1
|
+
frogml_core/__init__.py,sha256=H1v3NaV6G8_CLt1gzMDEGJYry0urU7ROISKUYX1mw5Q,777
|
2
2
|
frogml_core/automations/__init__.py,sha256=j2gD15MN-xVWhI5rAFsDwhL0CIyICLNT0scXsKvNBkU,1547
|
3
3
|
frogml_core/automations/automation_executions.py,sha256=xpOb9Dq8gPPGNQDJTvBBZbNz4woZDRZY0HqnLSu7pwU,3230
|
4
4
|
frogml_core/automations/automations.py,sha256=GKEQyQMi8sxX5oZn62PaxPi0zD8IaJRjBkhczRJxHNs,13070
|
@@ -52,7 +52,7 @@ frogml_core/clients/feature_store/__init__.py,sha256=mMCPBHDga6Y7dtJfNoHvfOvCyjN
|
|
52
52
|
frogml_core/clients/feature_store/execution_management_client.py,sha256=vLSq2I_Tw6IZAIcf5BeN6OAK3qwj_5WketVAcu4nci0,4114
|
53
53
|
frogml_core/clients/feature_store/job_registry_client.py,sha256=zggguwuvnkSccClLO_4NasmTWIUkoLje4TXzVyZ-GxU,2668
|
54
54
|
frogml_core/clients/feature_store/management_client.py,sha256=cSBFxwXNkL8amIdopLaMkDbKzxiVcX6ED1cST3aYKH4,20768
|
55
|
-
frogml_core/clients/feature_store/offline_serving_client.py,sha256=
|
55
|
+
frogml_core/clients/feature_store/offline_serving_client.py,sha256=OBY4Q7bNLIiqHIMQTAd4kBk3Wx4BfaxTIfRIVD2OnDo,9372
|
56
56
|
frogml_core/clients/feature_store/operator_client.py,sha256=G-i1ild7JEHcwAB9-O2OTHB3-W8n5DQuGtV8JJoXIeA,5837
|
57
57
|
frogml_core/clients/file_versioning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
58
|
frogml_core/clients/file_versioning/client.py,sha256=GQ0drq_6f3lyKFSEg_tLh6wybGgyiiPF7TsiHCIPPZU,2533
|
@@ -68,6 +68,8 @@ frogml_core/clients/jfrog_gateway/__init__.py,sha256=E_BrYKBESU3wGNiR_RQncbAhLWy
|
|
68
68
|
frogml_core/clients/jfrog_gateway/client.py,sha256=H4hF3MNi0QBYwGgD9c9A-4-VQlBB7zlQgH3ImpX8aBQ,1357
|
69
69
|
frogml_core/clients/kube_deployment_captain/__init__.py,sha256=rJUEEy3zNH0aTFyuO_UBexzaUKdjvwU9P2vV1MDj684,41
|
70
70
|
frogml_core/clients/kube_deployment_captain/client.py,sha256=oz7VF37TSO0S07MqXOYu2Xmx_rl9IVrfHOz_8MWnBZ8,9340
|
71
|
+
frogml_core/clients/location_discovery/__init__.py,sha256=sqGQ75YHFE6nvOcir38fykUUmAa6cFEIze8PJYgYWRc,44
|
72
|
+
frogml_core/clients/location_discovery/client.py,sha256=P9Ru2za3FtBCF6PkYFeeHPiPPtvNKLDNH1khmUmN0ng,2892
|
71
73
|
frogml_core/clients/logging_client/__init__.py,sha256=1OCHnigQBYThBwGbxCreYA0BgP0HcuLFzNEWd3Yxh-c,34
|
72
74
|
frogml_core/clients/logging_client/client.py,sha256=A7qQJWW54Ve7O0DuJX9gmSJlUQyRIKC0VmfGS6bUwjo,4950
|
73
75
|
frogml_core/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
|
@@ -112,7 +114,7 @@ frogml_core/feature_store/_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
112
114
|
frogml_core/feature_store/_common/artifact_utils.py,sha256=STiDfiYOOX57zYSm2O8oUKIiRNP07w2NaxNcR0CuqWk,2005
|
113
115
|
frogml_core/feature_store/_common/feature_set_utils.py,sha256=s_GGSHqgMD88c1ij62ptgMo0ar9iEBi4yd6T1wuocwQ,9222
|
114
116
|
frogml_core/feature_store/_common/featureset_asterisk_handler.py,sha256=3kygt0HM6QxDSGIRWcWoDwhOr126wwtv0Xr8W7AUGnk,4721
|
115
|
-
frogml_core/feature_store/_common/functions.py,sha256=
|
117
|
+
frogml_core/feature_store/_common/functions.py,sha256=kSNYJ7dy48NN09HG9asm4ibQh0JaCGcZYsRDjRWlUHE,659
|
116
118
|
frogml_core/feature_store/_common/packaging.py,sha256=5E8v6NO_g-r-qJDD1pv1tqjWEAHjR6pAEWJ0s6VzJEE,8185
|
117
119
|
frogml_core/feature_store/_common/source_code_spec.py,sha256=Ue8N_xdqrooPXJn690ZClct0LvfmxvRgDDiS0ZLHhww,1988
|
118
120
|
frogml_core/feature_store/_common/source_code_spec_factory.py,sha256=pK2k6DDUFwaJje9zMYcOU8fBMj7VrvaUlm6Ez7wg3Xs,1798
|
@@ -174,12 +176,8 @@ frogml_core/feature_store/feature_sets/transformations/functions/frogml_pandas.p
|
|
174
176
|
frogml_core/feature_store/feature_sets/transformations/functions/schema.py,sha256=kuu8MZ3d2Y9DkmgPZCRgDb0ecsc8isFHQG1lFLPBR3Y,1156
|
175
177
|
frogml_core/feature_store/feature_sets/transformations/transformations.py,sha256=MOZFeeMumXP5QODG5h2Hifcry69IDuiZgoiTlKpgVcE,15978
|
176
178
|
frogml_core/feature_store/feature_sets/transformations/validations/validations_util.py,sha256=u5EnrfpMzJjzbhO-odYDyNtgF50GBq6oMrDMivsPwmg,3215
|
177
|
-
frogml_core/feature_store/offline/__init__.py,sha256=
|
179
|
+
frogml_core/feature_store/offline/__init__.py,sha256=NKI5pmLMuRjh_5C5f9jMImOwnG80fxy-n8y3kjU8Jdk,103
|
178
180
|
frogml_core/feature_store/offline/_offline_serving_validations.py,sha256=yfkV8UVLDi719QvZU_UfIiIHqdWfrTzATUDTVAseDu0,1239
|
179
|
-
frogml_core/feature_store/offline/_query_engine.py,sha256=LBVejISK9daYYWUYclXuMifezfsuzF4JgBhp2YlHZf0,738
|
180
|
-
frogml_core/feature_store/offline/athena/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
181
|
-
frogml_core/feature_store/offline/athena/athena_query_engine.py,sha256=7Obo5n5BWtMpV06IwYQ0gm63uq5JrC8L5E9zgw-SWto,5213
|
182
|
-
frogml_core/feature_store/offline/client.py,sha256=psgNKr9MjI1ZnRbpAlpHhx34d7AE71KX1YNKYPOx-kc,28759
|
183
181
|
frogml_core/feature_store/offline/client_v2.py,sha256=kTFyHAYIsKBe3wcuE1S_LyD9CLQ_yCorOLcHVR3Emms,14966
|
184
182
|
frogml_core/feature_store/offline/feature_set_features.py,sha256=MjrQrXNhzk7QBdCojdpLfy1fuGdP3GcpOgcc7n7H0G8,740
|
185
183
|
frogml_core/feature_store/online/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -260,7 +258,7 @@ frogml_core/inner/build_logic/phases/phase_010_fetch_model/set_version_step.py,s
|
|
260
258
|
frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
261
259
|
frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/cleanup_step.py,sha256=HmQ0iQ9pJxLZTDzUvwVwwWO2CG-4fHtxwmye-xL0Q9U,632
|
262
260
|
frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/start_remote_build_step.py,sha256=UQWLfJpj9lm0fJfKj0Kc2N99x6ioUVfKPXrf1u70rJY,1691
|
263
|
-
frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/upload_step.py,sha256=
|
261
|
+
frogml_core/inner/build_logic/phases/phase_020_remote_register_frogml_build/upload_step.py,sha256=bbNSttwy2vEZv9yfE1Ndxf_rv03KP7QuM4Q9rM9BEUI,9350
|
264
262
|
frogml_core/inner/build_logic/phases/phases_pipeline.py,sha256=Ei70zbiiT6Be2aFLV7Z5zcVykm2peOsd-UFLG47AR_c,1258
|
265
263
|
frogml_core/inner/build_logic/run_handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
266
264
|
frogml_core/inner/build_logic/run_handlers/programmatic_phase_run_handler.py,sha256=XE1afXZfA1AQOa9bV2CtmK--gcX0YKRhLwGdkfb3cto,3547
|
@@ -995,6 +993,12 @@ frogml_proto/qwak/self_service/user/v1/user_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7
|
|
995
993
|
frogml_proto/qwak/self_service/user/v1/user_service_pb2.py,sha256=NgUE8b_XEdnLYblT7kAhC1iE8h9lOXwFYCLL6cNJMX8,10404
|
996
994
|
frogml_proto/qwak/self_service/user/v1/user_service_pb2.pyi,sha256=e3OA_PP-BzlZxm05tM9IJ0LDjKd8iW0E9a9I0-R8_Q8,8278
|
997
995
|
frogml_proto/qwak/self_service/user/v1/user_service_pb2_grpc.py,sha256=B8i4v8j4UdQu331789PPN2tWLKi2hwS8mtZU57nutXY,10513
|
996
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_pb2.py,sha256=WY5jhlurURD49b4xNmR6BFIPZOJ4QU6V7k2D_WwDwh4,3342
|
997
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_pb2.pyi,sha256=33gciRiYabLn_gmN5Ksw5reequ4GkfUbGxFW4gionf4,2406
|
998
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
|
999
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2.py,sha256=jWtA0BNqmA7R3jjHW6RnDN4IlfbsoFIzigS7kIM5NWA,3827
|
1000
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2.pyi,sha256=g3ooXHZr8fgpGnIm5NFqD2ZJ9caK6Hkt5484x1ZmpU4,1396
|
1001
|
+
frogml_proto/qwak/service_discovery/service_discovery_location_service_pb2_grpc.py,sha256=3s2fslqiAsckASNky0FzqVVtVA5801fdbI1UvmBHqLA,13685
|
998
1002
|
frogml_proto/qwak/traffic/v1/traffic_api_pb2.py,sha256=yWJe2zJWGKK7sx11-SQNG1Jf9jymyAYUN4alBWcE2is,6923
|
999
1003
|
frogml_proto/qwak/traffic/v1/traffic_api_pb2.pyi,sha256=1InzqfEe36axD60wEF0_S7NjISDTTalrfzBY-7kgeBE,5251
|
1000
1004
|
frogml_proto/qwak/traffic/v1/traffic_api_pb2_grpc.py,sha256=rxTMb-vkj5ZpaKg7uEpgj-CKW7fajw0FX64AFzScQZU,8229
|
@@ -1057,13 +1061,14 @@ frogml_services_mock/mocks/features_operator_v3_service.py,sha256=_RcUeL9LRFbxL7
|
|
1057
1061
|
frogml_services_mock/mocks/features_set_state_service_api.py,sha256=jLtDYRBQUXP9x2DaywRPNFTtAGewP1JF1wv28ZTRbL4,2290
|
1058
1062
|
frogml_services_mock/mocks/feedback_service.py,sha256=NH8IskHnwbHGfDJCunSWMWQd9UfVBL7rPzVrFWrCZC4,1140
|
1059
1063
|
frogml_services_mock/mocks/file_versioning_service.py,sha256=MtxGcWoB_hkJUMBRSso9-G_6_WBbHkrgzG6Rf_37Ysk,2606
|
1060
|
-
frogml_services_mock/mocks/frogml_mocks.py,sha256=
|
1064
|
+
frogml_services_mock/mocks/frogml_mocks.py,sha256=bR8pW3pdz5ogHBiHTA_RrQNf85x1CDSnUnwMvOpt4p0,6546
|
1061
1065
|
frogml_services_mock/mocks/fs_offline_serving_service.py,sha256=O4hd4kQ-sXm9zMPVJYHXO4ARPuc3UN0E9rcOtDkSJRk,2093
|
1062
1066
|
frogml_services_mock/mocks/instance_template_management_service.py,sha256=8J8NlD667kWfjhSXsyH31jjr7qKIaF77K1Fc7FgxtHY,4762
|
1063
1067
|
frogml_services_mock/mocks/integration_management_service.py,sha256=XvWyif8pGuqJsrjTs6m29cneVuYdjVptPpRndwIdqq4,2771
|
1064
1068
|
frogml_services_mock/mocks/internal_build_orchestrator_service.py,sha256=saWQOWbJC5uoAcr053rmd0Jj2TI4TH3Kyr2D5lsL87w,1059
|
1065
1069
|
frogml_services_mock/mocks/job_registry_service_api.py,sha256=Zd5lVM6h4jFfKHxnQAux1FiBEw2tXFA284OJ33a_IH4,2711
|
1066
1070
|
frogml_services_mock/mocks/kube_captain_service_api.py,sha256=WVCaoOHY-kFdS73bd7kuOssr1RAK1F6MUlJ-NO0eLfY,1596
|
1071
|
+
frogml_services_mock/mocks/location_discovery_service_api.py,sha256=TUdku1zdmIZXZYbkGurK-OhScPfMeGUzRVa7FgxZnrQ,3682
|
1067
1072
|
frogml_services_mock/mocks/logging_service.py,sha256=JRTCjJRIKlJQeTHr3Qt5gbkfxMLUPblo0Sp50COspxE,7385
|
1068
1073
|
frogml_services_mock/mocks/model_management_service.py,sha256=YKNgZ65AcKTMFs1zkrfVfGOBjqPBpodTgD6r358iRMg,4167
|
1069
1074
|
frogml_services_mock/mocks/model_version_manager_service.py,sha256=nBSB-bL0X8AR1e_3J8R_bHuRaGQvf9P8aFskjNUvEo8,4814
|
@@ -1079,9 +1084,9 @@ frogml_services_mock/mocks/utils/exception_handlers.py,sha256=k_8mez3cwjNjKE9yGQ
|
|
1079
1084
|
frogml_services_mock/mocks/vector_serving_api.py,sha256=ZljLOw9_ee-nlvEMU0HNzmK2tcsmBY6VzuVzLmInYj4,5838
|
1080
1085
|
frogml_services_mock/mocks/vectors_management_api.py,sha256=-GtKow3JmBj6LRZw625WdD8pt9VKtGZUs2VXTbtEPg0,3602
|
1081
1086
|
frogml_services_mock/mocks/workspace_manager_service_mock.py,sha256=WbOiWgOyr-xTicwJO7jdY-gN_5hF_s9GOU-ZO5P_2_M,7745
|
1082
|
-
frogml_services_mock/services_mock.py,sha256=
|
1087
|
+
frogml_services_mock/services_mock.py,sha256=xfbYvl05gFUq2oT82cT-6K2CEJ6d9kFX_tk77QZHTFI,20787
|
1083
1088
|
frogml_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1084
1089
|
frogml_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
1085
|
-
frogml_core-0.0.
|
1086
|
-
frogml_core-0.0.
|
1087
|
-
frogml_core-0.0.
|
1090
|
+
frogml_core-0.0.73.dist-info/METADATA,sha256=Wj9TaS1GR3LEc-TVI0YUKGKbjTAjLE6wz-6cnvlYriA,2004
|
1091
|
+
frogml_core-0.0.73.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
1092
|
+
frogml_core-0.0.73.dist-info/RECORD,,
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: frogml_proto.qwak.service_discovery/service_discovery_location.proto
|
4
|
+
"""Generated protocol buffer code."""
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
6
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
7
|
+
from google.protobuf import message as _message
|
8
|
+
from google.protobuf import reflection as _reflection
|
9
|
+
from google.protobuf import symbol_database as _symbol_database
|
10
|
+
# @@protoc_insertion_point(imports)
|
11
|
+
|
12
|
+
_sym_db = _symbol_database.Default()
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n7qwak/service_discovery/service_discovery_location.proto\x12\"qwak.service_discovery.location.v0\"w\n\x19ServiceLocationDescriptor\x12\x13\n\x0bservice_url\x18\x01 \x01(\t\x12\x45\n\x08location\x18\x02 \x01(\x0b\x32\x33.qwak.service_discovery.location.v0.ServiceLocation\"\x99\x01\n\x0fServiceLocation\x12\x38\n\x04\x63ore\x18\x01 \x01(\x0b\x32(.qwak.service_discovery.location.v0.CoreH\x00\x12\x38\n\x04\x65\x64ge\x18\x02 \x01(\x0b\x32(.qwak.service_discovery.location.v0.EdgeH\x00\x42\x12\n\x10service_location\"\x06\n\x04\x43ore\"\x06\n\x04\x45\x64geB-\n)com.qwak.ai.service_discovery.location.v0P\x01\x62\x06proto3')
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
_SERVICELOCATIONDESCRIPTOR = DESCRIPTOR.message_types_by_name['ServiceLocationDescriptor']
|
22
|
+
_SERVICELOCATION = DESCRIPTOR.message_types_by_name['ServiceLocation']
|
23
|
+
_CORE = DESCRIPTOR.message_types_by_name['Core']
|
24
|
+
_EDGE = DESCRIPTOR.message_types_by_name['Edge']
|
25
|
+
ServiceLocationDescriptor = _reflection.GeneratedProtocolMessageType('ServiceLocationDescriptor', (_message.Message,), {
|
26
|
+
'DESCRIPTOR' : _SERVICELOCATIONDESCRIPTOR,
|
27
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_pb2'
|
28
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.ServiceLocationDescriptor)
|
29
|
+
})
|
30
|
+
_sym_db.RegisterMessage(ServiceLocationDescriptor)
|
31
|
+
|
32
|
+
ServiceLocation = _reflection.GeneratedProtocolMessageType('ServiceLocation', (_message.Message,), {
|
33
|
+
'DESCRIPTOR' : _SERVICELOCATION,
|
34
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_pb2'
|
35
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.ServiceLocation)
|
36
|
+
})
|
37
|
+
_sym_db.RegisterMessage(ServiceLocation)
|
38
|
+
|
39
|
+
Core = _reflection.GeneratedProtocolMessageType('Core', (_message.Message,), {
|
40
|
+
'DESCRIPTOR' : _CORE,
|
41
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_pb2'
|
42
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.Core)
|
43
|
+
})
|
44
|
+
_sym_db.RegisterMessage(Core)
|
45
|
+
|
46
|
+
Edge = _reflection.GeneratedProtocolMessageType('Edge', (_message.Message,), {
|
47
|
+
'DESCRIPTOR' : _EDGE,
|
48
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_pb2'
|
49
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.Edge)
|
50
|
+
})
|
51
|
+
_sym_db.RegisterMessage(Edge)
|
52
|
+
|
53
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
54
|
+
|
55
|
+
DESCRIPTOR._options = None
|
56
|
+
DESCRIPTOR._serialized_options = b'\n)com.qwak.ai.service_discovery.location.v0P\001'
|
57
|
+
_SERVICELOCATIONDESCRIPTOR._serialized_start=95
|
58
|
+
_SERVICELOCATIONDESCRIPTOR._serialized_end=214
|
59
|
+
_SERVICELOCATION._serialized_start=217
|
60
|
+
_SERVICELOCATION._serialized_end=370
|
61
|
+
_CORE._serialized_start=372
|
62
|
+
_CORE._serialized_end=378
|
63
|
+
_EDGE._serialized_start=380
|
64
|
+
_EDGE._serialized_end=386
|
65
|
+
# @@protoc_insertion_point(module_scope)
|
@@ -0,0 +1,73 @@
|
|
1
|
+
"""
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
3
|
+
isort:skip_file
|
4
|
+
"""
|
5
|
+
import builtins
|
6
|
+
import google.protobuf.descriptor
|
7
|
+
import google.protobuf.message
|
8
|
+
import sys
|
9
|
+
|
10
|
+
if sys.version_info >= (3, 8):
|
11
|
+
import typing as typing_extensions
|
12
|
+
else:
|
13
|
+
import typing_extensions
|
14
|
+
|
15
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
16
|
+
|
17
|
+
class ServiceLocationDescriptor(google.protobuf.message.Message):
|
18
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
19
|
+
|
20
|
+
SERVICE_URL_FIELD_NUMBER: builtins.int
|
21
|
+
LOCATION_FIELD_NUMBER: builtins.int
|
22
|
+
service_url: builtins.str
|
23
|
+
@property
|
24
|
+
def location(self) -> global___ServiceLocation: ...
|
25
|
+
def __init__(
|
26
|
+
self,
|
27
|
+
*,
|
28
|
+
service_url: builtins.str = ...,
|
29
|
+
location: global___ServiceLocation | None = ...,
|
30
|
+
) -> None: ...
|
31
|
+
def HasField(self, field_name: typing_extensions.Literal["location", b"location"]) -> builtins.bool: ...
|
32
|
+
def ClearField(self, field_name: typing_extensions.Literal["location", b"location", "service_url", b"service_url"]) -> None: ...
|
33
|
+
|
34
|
+
global___ServiceLocationDescriptor = ServiceLocationDescriptor
|
35
|
+
|
36
|
+
class ServiceLocation(google.protobuf.message.Message):
|
37
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
38
|
+
|
39
|
+
CORE_FIELD_NUMBER: builtins.int
|
40
|
+
EDGE_FIELD_NUMBER: builtins.int
|
41
|
+
@property
|
42
|
+
def core(self) -> global___Core: ...
|
43
|
+
@property
|
44
|
+
def edge(self) -> global___Edge: ...
|
45
|
+
def __init__(
|
46
|
+
self,
|
47
|
+
*,
|
48
|
+
core: global___Core | None = ...,
|
49
|
+
edge: global___Edge | None = ...,
|
50
|
+
) -> None: ...
|
51
|
+
def HasField(self, field_name: typing_extensions.Literal["core", b"core", "edge", b"edge", "service_location", b"service_location"]) -> builtins.bool: ...
|
52
|
+
def ClearField(self, field_name: typing_extensions.Literal["core", b"core", "edge", b"edge", "service_location", b"service_location"]) -> None: ...
|
53
|
+
def WhichOneof(self, oneof_group: typing_extensions.Literal["service_location", b"service_location"]) -> typing_extensions.Literal["core", "edge"] | None: ...
|
54
|
+
|
55
|
+
global___ServiceLocation = ServiceLocation
|
56
|
+
|
57
|
+
class Core(google.protobuf.message.Message):
|
58
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
59
|
+
|
60
|
+
def __init__(
|
61
|
+
self,
|
62
|
+
) -> None: ...
|
63
|
+
|
64
|
+
global___Core = Core
|
65
|
+
|
66
|
+
class Edge(google.protobuf.message.Message):
|
67
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
68
|
+
|
69
|
+
def __init__(
|
70
|
+
self,
|
71
|
+
) -> None: ...
|
72
|
+
|
73
|
+
global___Edge = Edge
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
3
|
+
# source: frogml_proto.qwak.service_discovery/service_discovery_location_service.proto
|
4
|
+
"""Generated protocol buffer code."""
|
5
|
+
from google.protobuf import descriptor as _descriptor
|
6
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
7
|
+
from google.protobuf import message as _message
|
8
|
+
from google.protobuf import reflection as _reflection
|
9
|
+
from google.protobuf import symbol_database as _symbol_database
|
10
|
+
# @@protoc_insertion_point(imports)
|
11
|
+
|
12
|
+
_sym_db = _symbol_database.Default()
|
13
|
+
|
14
|
+
|
15
|
+
from frogml_proto.qwak.service_discovery import service_discovery_location_pb2 as qwak_dot_service__discovery_dot_service__discovery__location__pb2
|
16
|
+
|
17
|
+
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n?qwak/service_discovery/service_discovery_location_service.proto\x12\"qwak.service_discovery.location.v0\x1a\x37qwak/service_discovery/service_discovery_location.proto\"\x16\n\x14GetServingUrlRequest\"o\n\x1cGetServingUrlRequestResponse\x12O\n\x08location\x18\x01 \x01(\x0b\x32=.qwak.service_discovery.location.v0.ServiceLocationDescriptor2\xa0\x07\n\x18LocationDiscoveryService\x12\x92\x01\n\x14GetOfflineServingUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponse\x12\x97\x01\n\x19GetDistributionManagerUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponse\x12\x93\x01\n\x15GetAnalyticsEngineUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponse\x12\x92\x01\n\x14GetMetricsGatewayUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponse\x12\x94\x01\n\x16GetFeaturesOperatorUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponse\x12\x92\x01\n\x14GetHostingGatewayUrl\x12\x38.qwak.service_discovery.location.v0.GetServingUrlRequest\x1a@.qwak.service_discovery.location.v0.GetServingUrlRequestResponseB-\n)com.qwak.ai.service_discovery.location.v0P\x01\x62\x06proto3')
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
_GETSERVINGURLREQUEST = DESCRIPTOR.message_types_by_name['GetServingUrlRequest']
|
23
|
+
_GETSERVINGURLREQUESTRESPONSE = DESCRIPTOR.message_types_by_name['GetServingUrlRequestResponse']
|
24
|
+
GetServingUrlRequest = _reflection.GeneratedProtocolMessageType('GetServingUrlRequest', (_message.Message,), {
|
25
|
+
'DESCRIPTOR' : _GETSERVINGURLREQUEST,
|
26
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_service_pb2'
|
27
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.GetServingUrlRequest)
|
28
|
+
})
|
29
|
+
_sym_db.RegisterMessage(GetServingUrlRequest)
|
30
|
+
|
31
|
+
GetServingUrlRequestResponse = _reflection.GeneratedProtocolMessageType('GetServingUrlRequestResponse', (_message.Message,), {
|
32
|
+
'DESCRIPTOR' : _GETSERVINGURLREQUESTRESPONSE,
|
33
|
+
'__module__' : 'qwak.service_discovery.service_discovery_location_service_pb2'
|
34
|
+
# @@protoc_insertion_point(class_scope:qwak.service_discovery.location.v0.GetServingUrlRequestResponse)
|
35
|
+
})
|
36
|
+
_sym_db.RegisterMessage(GetServingUrlRequestResponse)
|
37
|
+
|
38
|
+
_LOCATIONDISCOVERYSERVICE = DESCRIPTOR.services_by_name['LocationDiscoveryService']
|
39
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
40
|
+
|
41
|
+
DESCRIPTOR._options = None
|
42
|
+
DESCRIPTOR._serialized_options = b'\n)com.qwak.ai.service_discovery.location.v0P\001'
|
43
|
+
_GETSERVINGURLREQUEST._serialized_start=160
|
44
|
+
_GETSERVINGURLREQUEST._serialized_end=182
|
45
|
+
_GETSERVINGURLREQUESTRESPONSE._serialized_start=184
|
46
|
+
_GETSERVINGURLREQUESTRESPONSE._serialized_end=295
|
47
|
+
_LOCATIONDISCOVERYSERVICE._serialized_start=298
|
48
|
+
_LOCATIONDISCOVERYSERVICE._serialized_end=1226
|
49
|
+
# @@protoc_insertion_point(module_scope)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"""
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
3
|
+
isort:skip_file
|
4
|
+
"""
|
5
|
+
import builtins
|
6
|
+
import google.protobuf.descriptor
|
7
|
+
import google.protobuf.message
|
8
|
+
import frogml_proto.qwak.service_discovery.service_discovery_location_pb2
|
9
|
+
import sys
|
10
|
+
|
11
|
+
if sys.version_info >= (3, 8):
|
12
|
+
import typing as typing_extensions
|
13
|
+
else:
|
14
|
+
import typing_extensions
|
15
|
+
|
16
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
17
|
+
|
18
|
+
class GetServingUrlRequest(google.protobuf.message.Message):
|
19
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
20
|
+
|
21
|
+
def __init__(
|
22
|
+
self,
|
23
|
+
) -> None: ...
|
24
|
+
|
25
|
+
global___GetServingUrlRequest = GetServingUrlRequest
|
26
|
+
|
27
|
+
class GetServingUrlRequestResponse(google.protobuf.message.Message):
|
28
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
29
|
+
|
30
|
+
LOCATION_FIELD_NUMBER: builtins.int
|
31
|
+
@property
|
32
|
+
def location(self) -> frogml_proto.qwak.service_discovery.service_discovery_location_pb2.ServiceLocationDescriptor: ...
|
33
|
+
def __init__(
|
34
|
+
self,
|
35
|
+
*,
|
36
|
+
location: frogml_proto.qwak.service_discovery.service_discovery_location_pb2.ServiceLocationDescriptor | None = ...,
|
37
|
+
) -> None: ...
|
38
|
+
def HasField(self, field_name: typing_extensions.Literal["location", b"location"]) -> builtins.bool: ...
|
39
|
+
def ClearField(self, field_name: typing_extensions.Literal["location", b"location"]) -> None: ...
|
40
|
+
|
41
|
+
global___GetServingUrlRequestResponse = GetServingUrlRequestResponse
|