flyte 0.1.0__py3-none-any.whl → 0.2.0a0__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.
Potentially problematic release.
This version of flyte might be problematic. Click here for more details.
- flyte/__init__.py +78 -2
- flyte/_bin/__init__.py +0 -0
- flyte/_bin/runtime.py +152 -0
- flyte/_build.py +26 -0
- flyte/_cache/__init__.py +12 -0
- flyte/_cache/cache.py +145 -0
- flyte/_cache/defaults.py +9 -0
- flyte/_cache/policy_function_body.py +42 -0
- flyte/_code_bundle/__init__.py +8 -0
- flyte/_code_bundle/_ignore.py +113 -0
- flyte/_code_bundle/_packaging.py +187 -0
- flyte/_code_bundle/_utils.py +323 -0
- flyte/_code_bundle/bundle.py +209 -0
- flyte/_context.py +152 -0
- flyte/_deploy.py +243 -0
- flyte/_doc.py +29 -0
- flyte/_docstring.py +32 -0
- flyte/_environment.py +84 -0
- flyte/_excepthook.py +37 -0
- flyte/_group.py +32 -0
- flyte/_hash.py +23 -0
- flyte/_image.py +762 -0
- flyte/_initialize.py +492 -0
- flyte/_interface.py +84 -0
- flyte/_internal/__init__.py +3 -0
- flyte/_internal/controllers/__init__.py +128 -0
- flyte/_internal/controllers/_local_controller.py +193 -0
- flyte/_internal/controllers/_trace.py +41 -0
- flyte/_internal/controllers/remote/__init__.py +60 -0
- flyte/_internal/controllers/remote/_action.py +146 -0
- flyte/_internal/controllers/remote/_client.py +47 -0
- flyte/_internal/controllers/remote/_controller.py +494 -0
- flyte/_internal/controllers/remote/_core.py +410 -0
- flyte/_internal/controllers/remote/_informer.py +361 -0
- flyte/_internal/controllers/remote/_service_protocol.py +50 -0
- flyte/_internal/imagebuild/__init__.py +11 -0
- flyte/_internal/imagebuild/docker_builder.py +427 -0
- flyte/_internal/imagebuild/image_builder.py +246 -0
- flyte/_internal/imagebuild/remote_builder.py +0 -0
- flyte/_internal/resolvers/__init__.py +0 -0
- flyte/_internal/resolvers/_task_module.py +54 -0
- flyte/_internal/resolvers/common.py +31 -0
- flyte/_internal/resolvers/default.py +28 -0
- flyte/_internal/runtime/__init__.py +0 -0
- flyte/_internal/runtime/convert.py +342 -0
- flyte/_internal/runtime/entrypoints.py +135 -0
- flyte/_internal/runtime/io.py +136 -0
- flyte/_internal/runtime/resources_serde.py +138 -0
- flyte/_internal/runtime/task_serde.py +330 -0
- flyte/_internal/runtime/taskrunner.py +191 -0
- flyte/_internal/runtime/types_serde.py +54 -0
- flyte/_logging.py +135 -0
- flyte/_map.py +215 -0
- flyte/_pod.py +19 -0
- flyte/_protos/__init__.py +0 -0
- flyte/_protos/common/authorization_pb2.py +66 -0
- flyte/_protos/common/authorization_pb2.pyi +108 -0
- flyte/_protos/common/authorization_pb2_grpc.py +4 -0
- flyte/_protos/common/identifier_pb2.py +71 -0
- flyte/_protos/common/identifier_pb2.pyi +82 -0
- flyte/_protos/common/identifier_pb2_grpc.py +4 -0
- flyte/_protos/common/identity_pb2.py +48 -0
- flyte/_protos/common/identity_pb2.pyi +72 -0
- flyte/_protos/common/identity_pb2_grpc.py +4 -0
- flyte/_protos/common/list_pb2.py +36 -0
- flyte/_protos/common/list_pb2.pyi +71 -0
- flyte/_protos/common/list_pb2_grpc.py +4 -0
- flyte/_protos/common/policy_pb2.py +37 -0
- flyte/_protos/common/policy_pb2.pyi +27 -0
- flyte/_protos/common/policy_pb2_grpc.py +4 -0
- flyte/_protos/common/role_pb2.py +37 -0
- flyte/_protos/common/role_pb2.pyi +53 -0
- flyte/_protos/common/role_pb2_grpc.py +4 -0
- flyte/_protos/common/runtime_version_pb2.py +28 -0
- flyte/_protos/common/runtime_version_pb2.pyi +24 -0
- flyte/_protos/common/runtime_version_pb2_grpc.py +4 -0
- flyte/_protos/logs/dataplane/payload_pb2.py +100 -0
- flyte/_protos/logs/dataplane/payload_pb2.pyi +177 -0
- flyte/_protos/logs/dataplane/payload_pb2_grpc.py +4 -0
- flyte/_protos/secret/definition_pb2.py +49 -0
- flyte/_protos/secret/definition_pb2.pyi +93 -0
- flyte/_protos/secret/definition_pb2_grpc.py +4 -0
- flyte/_protos/secret/payload_pb2.py +62 -0
- flyte/_protos/secret/payload_pb2.pyi +94 -0
- flyte/_protos/secret/payload_pb2_grpc.py +4 -0
- flyte/_protos/secret/secret_pb2.py +38 -0
- flyte/_protos/secret/secret_pb2.pyi +6 -0
- flyte/_protos/secret/secret_pb2_grpc.py +198 -0
- flyte/_protos/secret/secret_pb2_grpc_grpc.py +198 -0
- flyte/_protos/validate/validate/validate_pb2.py +76 -0
- flyte/_protos/workflow/common_pb2.py +27 -0
- flyte/_protos/workflow/common_pb2.pyi +14 -0
- flyte/_protos/workflow/common_pb2_grpc.py +4 -0
- flyte/_protos/workflow/environment_pb2.py +29 -0
- flyte/_protos/workflow/environment_pb2.pyi +12 -0
- flyte/_protos/workflow/environment_pb2_grpc.py +4 -0
- flyte/_protos/workflow/node_execution_service_pb2.py +26 -0
- flyte/_protos/workflow/node_execution_service_pb2.pyi +4 -0
- flyte/_protos/workflow/node_execution_service_pb2_grpc.py +32 -0
- flyte/_protos/workflow/queue_service_pb2.py +105 -0
- flyte/_protos/workflow/queue_service_pb2.pyi +146 -0
- flyte/_protos/workflow/queue_service_pb2_grpc.py +172 -0
- flyte/_protos/workflow/run_definition_pb2.py +128 -0
- flyte/_protos/workflow/run_definition_pb2.pyi +314 -0
- flyte/_protos/workflow/run_definition_pb2_grpc.py +4 -0
- flyte/_protos/workflow/run_logs_service_pb2.py +41 -0
- flyte/_protos/workflow/run_logs_service_pb2.pyi +28 -0
- flyte/_protos/workflow/run_logs_service_pb2_grpc.py +69 -0
- flyte/_protos/workflow/run_service_pb2.py +129 -0
- flyte/_protos/workflow/run_service_pb2.pyi +171 -0
- flyte/_protos/workflow/run_service_pb2_grpc.py +412 -0
- flyte/_protos/workflow/state_service_pb2.py +66 -0
- flyte/_protos/workflow/state_service_pb2.pyi +75 -0
- flyte/_protos/workflow/state_service_pb2_grpc.py +138 -0
- flyte/_protos/workflow/task_definition_pb2.py +79 -0
- flyte/_protos/workflow/task_definition_pb2.pyi +81 -0
- flyte/_protos/workflow/task_definition_pb2_grpc.py +4 -0
- flyte/_protos/workflow/task_service_pb2.py +60 -0
- flyte/_protos/workflow/task_service_pb2.pyi +59 -0
- flyte/_protos/workflow/task_service_pb2_grpc.py +138 -0
- flyte/_resources.py +226 -0
- flyte/_retry.py +32 -0
- flyte/_reusable_environment.py +25 -0
- flyte/_run.py +482 -0
- flyte/_secret.py +61 -0
- flyte/_task.py +449 -0
- flyte/_task_environment.py +183 -0
- flyte/_timeout.py +47 -0
- flyte/_tools.py +27 -0
- flyte/_trace.py +120 -0
- flyte/_utils/__init__.py +26 -0
- flyte/_utils/asyn.py +119 -0
- flyte/_utils/async_cache.py +139 -0
- flyte/_utils/coro_management.py +23 -0
- flyte/_utils/file_handling.py +72 -0
- flyte/_utils/helpers.py +134 -0
- flyte/_utils/lazy_module.py +54 -0
- flyte/_utils/org_discovery.py +57 -0
- flyte/_utils/uv_script_parser.py +49 -0
- flyte/_version.py +21 -0
- flyte/cli/__init__.py +3 -0
- flyte/cli/_abort.py +28 -0
- flyte/cli/_common.py +337 -0
- flyte/cli/_create.py +145 -0
- flyte/cli/_delete.py +23 -0
- flyte/cli/_deploy.py +152 -0
- flyte/cli/_gen.py +163 -0
- flyte/cli/_get.py +310 -0
- flyte/cli/_params.py +538 -0
- flyte/cli/_run.py +231 -0
- flyte/cli/main.py +166 -0
- flyte/config/__init__.py +3 -0
- flyte/config/_config.py +216 -0
- flyte/config/_internal.py +64 -0
- flyte/config/_reader.py +207 -0
- flyte/connectors/__init__.py +0 -0
- flyte/errors.py +172 -0
- flyte/extras/__init__.py +5 -0
- flyte/extras/_container.py +263 -0
- flyte/io/__init__.py +27 -0
- flyte/io/_dir.py +448 -0
- flyte/io/_file.py +467 -0
- flyte/io/_structured_dataset/__init__.py +129 -0
- flyte/io/_structured_dataset/basic_dfs.py +219 -0
- flyte/io/_structured_dataset/structured_dataset.py +1061 -0
- flyte/models.py +391 -0
- flyte/remote/__init__.py +26 -0
- flyte/remote/_client/__init__.py +0 -0
- flyte/remote/_client/_protocols.py +133 -0
- flyte/remote/_client/auth/__init__.py +12 -0
- flyte/remote/_client/auth/_auth_utils.py +14 -0
- flyte/remote/_client/auth/_authenticators/__init__.py +0 -0
- flyte/remote/_client/auth/_authenticators/base.py +397 -0
- flyte/remote/_client/auth/_authenticators/client_credentials.py +73 -0
- flyte/remote/_client/auth/_authenticators/device_code.py +118 -0
- flyte/remote/_client/auth/_authenticators/external_command.py +79 -0
- flyte/remote/_client/auth/_authenticators/factory.py +200 -0
- flyte/remote/_client/auth/_authenticators/pkce.py +516 -0
- flyte/remote/_client/auth/_channel.py +215 -0
- flyte/remote/_client/auth/_client_config.py +83 -0
- flyte/remote/_client/auth/_default_html.py +32 -0
- flyte/remote/_client/auth/_grpc_utils/__init__.py +0 -0
- flyte/remote/_client/auth/_grpc_utils/auth_interceptor.py +288 -0
- flyte/remote/_client/auth/_grpc_utils/default_metadata_interceptor.py +151 -0
- flyte/remote/_client/auth/_keyring.py +143 -0
- flyte/remote/_client/auth/_token_client.py +260 -0
- flyte/remote/_client/auth/errors.py +16 -0
- flyte/remote/_client/controlplane.py +95 -0
- flyte/remote/_console.py +18 -0
- flyte/remote/_data.py +159 -0
- flyte/remote/_logs.py +176 -0
- flyte/remote/_project.py +85 -0
- flyte/remote/_run.py +970 -0
- flyte/remote/_secret.py +132 -0
- flyte/remote/_task.py +391 -0
- flyte/report/__init__.py +3 -0
- flyte/report/_report.py +178 -0
- flyte/report/_template.html +124 -0
- flyte/storage/__init__.py +29 -0
- flyte/storage/_config.py +233 -0
- flyte/storage/_remote_fs.py +34 -0
- flyte/storage/_storage.py +271 -0
- flyte/storage/_utils.py +5 -0
- flyte/syncify/__init__.py +56 -0
- flyte/syncify/_api.py +371 -0
- flyte/types/__init__.py +36 -0
- flyte/types/_interface.py +40 -0
- flyte/types/_pickle.py +118 -0
- flyte/types/_renderer.py +162 -0
- flyte/types/_string_literals.py +120 -0
- flyte/types/_type_engine.py +2287 -0
- flyte/types/_utils.py +80 -0
- flyte-0.2.0a0.dist-info/METADATA +249 -0
- flyte-0.2.0a0.dist-info/RECORD +218 -0
- {flyte-0.1.0.dist-info → flyte-0.2.0a0.dist-info}/WHEEL +2 -1
- flyte-0.2.0a0.dist-info/entry_points.txt +3 -0
- flyte-0.2.0a0.dist-info/top_level.txt +1 -0
- flyte-0.1.0.dist-info/METADATA +0 -6
- flyte-0.1.0.dist-info/RECORD +0 -5
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
|
|
3
|
+
import grpc.aio
|
|
4
|
+
|
|
5
|
+
from flyte.remote._client.auth._authenticators.base import Authenticator
|
|
6
|
+
from flyte.remote._client.auth._authenticators.external_command import (
|
|
7
|
+
AsyncCommandAuthenticator,
|
|
8
|
+
)
|
|
9
|
+
from flyte.remote._client.auth._client_config import AuthType, ClientConfigStore, RemoteClientConfigStore
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def create_auth_interceptors(
|
|
13
|
+
endpoint: str, in_channel: grpc.aio.Channel, **kwargs
|
|
14
|
+
) -> typing.List[grpc.aio.ClientInterceptor]:
|
|
15
|
+
"""
|
|
16
|
+
Async version of upgrade_channel_to_authenticated.
|
|
17
|
+
Given a grpc.Channel, preferably a secure channel, it returns a list of interceptors to
|
|
18
|
+
perform an Oauth2.0 Auth flow for all RPC call types.
|
|
19
|
+
|
|
20
|
+
:param endpoint: The endpoint URL for authentication
|
|
21
|
+
:param in_channel: grpc.Channel Precreated channel
|
|
22
|
+
:param kwargs: Additional arguments passed to the authenticator, including:
|
|
23
|
+
- insecure: Whether to use an insecure channel
|
|
24
|
+
- insecure_skip_verify: Whether to skip SSL certificate verification
|
|
25
|
+
- ca_cert_file_path: Path to CA certificate file for SSL verification
|
|
26
|
+
- auth_type: The authentication type to use ("Pkce", "ClientSecret", "ExternalCommand", "DeviceFlow")
|
|
27
|
+
- command: Command to execute for ExternalCommand authentication
|
|
28
|
+
- client_id: Client ID for ClientSecret authentication
|
|
29
|
+
- client_secret: Client secret for ClientSecret authentication
|
|
30
|
+
- scopes: List of scopes to request during authentication
|
|
31
|
+
- audience: Audience for the token
|
|
32
|
+
- http_proxy_url: HTTP proxy URL
|
|
33
|
+
- http_session: httpx.AsyncClient session
|
|
34
|
+
- verify: Whether to verify SSL certificates
|
|
35
|
+
- ca_cert_path: Optional path to CA certificate file
|
|
36
|
+
- header_key: Header key to use for authentication
|
|
37
|
+
- proxy_env: Environment variables for proxy command
|
|
38
|
+
- proxy_timeout: Timeout for proxy command execution
|
|
39
|
+
- redirect_uri: OAuth2 redirect URI for PKCE authentication
|
|
40
|
+
- add_request_auth_code_params_to_request_access_token_params: Whether to add auth code params to token request
|
|
41
|
+
- request_auth_code_params: Parameters to add to login URI opened in browser
|
|
42
|
+
- request_access_token_params: Parameters to add when exchanging auth code for access token
|
|
43
|
+
- refresh_access_token_params: Parameters to add when refreshing access token
|
|
44
|
+
:return: List of gRPC interceptors for different call types
|
|
45
|
+
"""
|
|
46
|
+
from flyte.remote._client.auth._grpc_utils.auth_interceptor import (
|
|
47
|
+
AuthStreamStreamInterceptor,
|
|
48
|
+
AuthStreamUnaryInterceptor,
|
|
49
|
+
AuthUnaryStreamInterceptor,
|
|
50
|
+
AuthUnaryUnaryInterceptor,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
def authenticator_factory() -> Authenticator:
|
|
54
|
+
return get_async_authenticator(endpoint=endpoint, cfg_store=RemoteClientConfigStore(in_channel), **kwargs)
|
|
55
|
+
|
|
56
|
+
return [
|
|
57
|
+
AuthUnaryUnaryInterceptor(authenticator_factory),
|
|
58
|
+
AuthUnaryStreamInterceptor(authenticator_factory),
|
|
59
|
+
AuthStreamUnaryInterceptor(authenticator_factory),
|
|
60
|
+
AuthStreamStreamInterceptor(authenticator_factory),
|
|
61
|
+
]
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def create_proxy_auth_interceptors(
|
|
65
|
+
endpoint: str, proxy_command: typing.Optional[typing.List[str]] = None, **kwargs
|
|
66
|
+
) -> typing.List[grpc.aio.ClientInterceptor]:
|
|
67
|
+
"""
|
|
68
|
+
Async version of upgrade_channel_to_proxy_authenticated.
|
|
69
|
+
If activated in the platform config, given a grpc.Channel, preferably a secure channel, it returns a list of
|
|
70
|
+
interceptors to perform authentication with a proxy in front of Flyte for all RPC call types.
|
|
71
|
+
|
|
72
|
+
:param endpoint: The endpoint URL for authentication
|
|
73
|
+
:param proxy_command: Command to execute to get proxy authentication token
|
|
74
|
+
:param kwargs: Additional arguments passed to the authenticator, including:
|
|
75
|
+
- proxy_env: Environment variables for the proxy command
|
|
76
|
+
- proxy_timeout: Timeout for the proxy command
|
|
77
|
+
- header_key: Header key to use for authentication (defaults to "proxy-authorization")
|
|
78
|
+
- http_session: httpx.AsyncClient session to use for requests
|
|
79
|
+
- verify: Whether to verify SSL certificates
|
|
80
|
+
- ca_cert_path: Optional path to CA certificate file
|
|
81
|
+
:return: List of gRPC interceptors for different call types
|
|
82
|
+
"""
|
|
83
|
+
if proxy_command:
|
|
84
|
+
from flyte.remote._client.auth._grpc_utils.auth_interceptor import (
|
|
85
|
+
AuthStreamStreamInterceptor,
|
|
86
|
+
AuthStreamUnaryInterceptor,
|
|
87
|
+
AuthUnaryStreamInterceptor,
|
|
88
|
+
AuthUnaryUnaryInterceptor,
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
def authenticator_factory() -> Authenticator:
|
|
92
|
+
return get_async_proxy_authenticator(endpoint=endpoint, proxy_command=proxy_command, **kwargs)
|
|
93
|
+
|
|
94
|
+
return [
|
|
95
|
+
AuthUnaryUnaryInterceptor(authenticator_factory),
|
|
96
|
+
AuthUnaryStreamInterceptor(authenticator_factory),
|
|
97
|
+
AuthStreamUnaryInterceptor(authenticator_factory),
|
|
98
|
+
AuthStreamStreamInterceptor(authenticator_factory),
|
|
99
|
+
]
|
|
100
|
+
else:
|
|
101
|
+
return []
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def get_async_authenticator(
|
|
105
|
+
endpoint: str,
|
|
106
|
+
cfg_store: ClientConfigStore,
|
|
107
|
+
*,
|
|
108
|
+
command: typing.Optional[typing.List[str]] = None,
|
|
109
|
+
insecure_skip_verify: bool = False,
|
|
110
|
+
auth_type: AuthType = "Pkce",
|
|
111
|
+
ca_cert_file_path: typing.Optional[str] = None,
|
|
112
|
+
**kwargs,
|
|
113
|
+
) -> Authenticator:
|
|
114
|
+
"""
|
|
115
|
+
Returns a new authenticator based on the platform config.
|
|
116
|
+
This is an async-compatible version of get_authenticator.
|
|
117
|
+
Must be async because it calls get_async_session which may perform IO operations.
|
|
118
|
+
|
|
119
|
+
:param endpoint: The endpoint URL for authentication
|
|
120
|
+
:param cfg_store: The client configuration store
|
|
121
|
+
:param command: Command to execute for ExternalCommand authentication
|
|
122
|
+
:param insecure_skip_verify: Whether to skip SSL certificate verification
|
|
123
|
+
:param auth_type: The authentication type to use
|
|
124
|
+
:param ca_cert_file_path: Path to CA certificate file for SSL verification
|
|
125
|
+
:param kwargs: Additional arguments passed to the authenticator, which may include:
|
|
126
|
+
- http_session: httpx.AsyncClient session to use for requests
|
|
127
|
+
- client_config: Optional client configuration containing authentication settings
|
|
128
|
+
- credentials: Optional credentials to use for authentication
|
|
129
|
+
- http_proxy_url: HTTP proxy URL
|
|
130
|
+
- verify: Whether to verify SSL certificates (bool or path to cert)
|
|
131
|
+
- ca_cert_path: Optional path to CA certificate file
|
|
132
|
+
- client_id: Client ID for ClientSecret authentication
|
|
133
|
+
- client_secret: Client secret for ClientSecret authentication (for ClientSecret auth)
|
|
134
|
+
- client_credentials_secret: Client secret for ClientSecret authentication (alias)
|
|
135
|
+
- scopes: List of scopes to request during authentication
|
|
136
|
+
- audience: Audience for the token
|
|
137
|
+
- header_key: Header key to use for authentication
|
|
138
|
+
- proxy_env: Environment variables for proxy command
|
|
139
|
+
- proxy_timeout: Timeout for proxy command execution
|
|
140
|
+
- redirect_uri: OAuth2 redirect URI for PKCE authentication
|
|
141
|
+
- add_request_auth_code_params_to_request_access_token_params: Whether to add auth code params to token request
|
|
142
|
+
- request_auth_code_params: Parameters to add to login URI opened in browser
|
|
143
|
+
- request_access_token_params: Parameters to add when exchanging auth code for access token
|
|
144
|
+
- refresh_access_token_params: Parameters to add when refreshing access token
|
|
145
|
+
:return: An authenticator instance
|
|
146
|
+
"""
|
|
147
|
+
verify = None
|
|
148
|
+
if insecure_skip_verify:
|
|
149
|
+
verify = False
|
|
150
|
+
elif ca_cert_file_path:
|
|
151
|
+
verify = True if ca_cert_file_path is not None else False
|
|
152
|
+
|
|
153
|
+
# Note: The authenticator classes already have async refresh_credentials methods
|
|
154
|
+
# so we can reuse them with our async session
|
|
155
|
+
match auth_type:
|
|
156
|
+
case "Pkce":
|
|
157
|
+
from flyte.remote._client.auth._authenticators.pkce import PKCEAuthenticator
|
|
158
|
+
|
|
159
|
+
return PKCEAuthenticator(endpoint=endpoint, cfg_store=cfg_store, verify=verify, **kwargs)
|
|
160
|
+
case "ClientSecret":
|
|
161
|
+
from flyte.remote._client.auth._authenticators.client_credentials import ClientCredentialsAuthenticator
|
|
162
|
+
|
|
163
|
+
return ClientCredentialsAuthenticator(endpoint=endpoint, cfg_store=cfg_store, verify=verify, **kwargs)
|
|
164
|
+
case "ExternalCommand":
|
|
165
|
+
from flyte.remote._client.auth._authenticators.external_command import AsyncCommandAuthenticator
|
|
166
|
+
|
|
167
|
+
return AsyncCommandAuthenticator(endpoint=endpoint, command=command, verify=verify, **kwargs)
|
|
168
|
+
case "DeviceFlow":
|
|
169
|
+
from flyte.remote._client.auth._authenticators.device_code import DeviceCodeAuthenticator
|
|
170
|
+
|
|
171
|
+
return DeviceCodeAuthenticator(endpoint=endpoint, cfg_store=cfg_store, verify=verify, **kwargs)
|
|
172
|
+
case _:
|
|
173
|
+
raise ValueError(
|
|
174
|
+
f"Invalid auth mode [{auth_type}] specified. Please update the creds config to use a valid value"
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def get_async_proxy_authenticator(endpoint: str, *, proxy_command: typing.List[str], **kwargs) -> Authenticator:
|
|
179
|
+
"""
|
|
180
|
+
Returns an async authenticator for proxy authentication.
|
|
181
|
+
This function needs to be async because it calls get_async_command_authenticator which performs IO operations.
|
|
182
|
+
|
|
183
|
+
:param endpoint: The endpoint URL for authentication
|
|
184
|
+
:param proxy_command: Command to execute to get proxy authentication token
|
|
185
|
+
:param kwargs: Additional arguments passed to the authenticator, including:
|
|
186
|
+
- header_key: Header key to use for authentication (defaults to "proxy-authorization")
|
|
187
|
+
- proxy_env: Environment variables for the proxy command
|
|
188
|
+
- proxy_timeout: Timeout for the proxy command
|
|
189
|
+
- http_session: httpx.AsyncClient session to use for requests
|
|
190
|
+
- cfg_store: Optional client configuration store for retrieving remote configuration
|
|
191
|
+
- client_config: Optional client configuration containing authentication settings
|
|
192
|
+
- credentials: Optional credentials to use for authentication
|
|
193
|
+
- http_proxy_url: Optional HTTP proxy URL
|
|
194
|
+
- verify: Whether to verify SSL certificates (default: True)
|
|
195
|
+
- ca_cert_path: Optional path to CA certificate file
|
|
196
|
+
:return: An authenticator instance for proxy authentication
|
|
197
|
+
"""
|
|
198
|
+
return AsyncCommandAuthenticator(
|
|
199
|
+
endpoint=endpoint, command=proxy_command, header_key="proxy-authorization", **kwargs
|
|
200
|
+
)
|