metaflow 2.13.10__py2.py3-none-any.whl → 2.14.0__py2.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.
- metaflow/plugins/metadata_providers/service.py +31 -18
- metaflow/runner/click_api.py +0 -6
- metaflow/version.py +1 -1
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/METADATA +2 -2
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/RECORD +9 -9
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/LICENSE +0 -0
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/WHEEL +0 -0
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/entry_points.txt +0 -0
- {metaflow-2.13.10.dist-info → metaflow-2.14.0.dist-info}/top_level.txt +0 -0
@@ -1,23 +1,18 @@
|
|
1
1
|
import os
|
2
2
|
import random
|
3
|
+
import time
|
3
4
|
|
4
5
|
import requests
|
5
|
-
import time
|
6
6
|
|
7
7
|
from metaflow.exception import (
|
8
8
|
MetaflowException,
|
9
|
-
MetaflowTaggingError,
|
10
9
|
MetaflowInternalError,
|
11
|
-
|
12
|
-
from metaflow.metaflow_config import (
|
13
|
-
SERVICE_RETRY_COUNT,
|
14
|
-
SERVICE_HEADERS,
|
15
|
-
SERVICE_URL,
|
10
|
+
MetaflowTaggingError,
|
16
11
|
)
|
17
12
|
from metaflow.metadata_provider import MetadataProvider
|
18
13
|
from metaflow.metadata_provider.heartbeat import HB_URL_KEY
|
14
|
+
from metaflow.metaflow_config import SERVICE_HEADERS, SERVICE_RETRY_COUNT, SERVICE_URL
|
19
15
|
from metaflow.sidecar import Message, MessageTypes, Sidecar
|
20
|
-
|
21
16
|
from metaflow.util import version_parse
|
22
17
|
|
23
18
|
|
@@ -39,6 +34,23 @@ class ServiceException(MetaflowException):
|
|
39
34
|
class ServiceMetadataProvider(MetadataProvider):
|
40
35
|
TYPE = "service"
|
41
36
|
|
37
|
+
_session = requests.Session()
|
38
|
+
_session.mount(
|
39
|
+
"http://",
|
40
|
+
requests.adapters.HTTPAdapter(
|
41
|
+
pool_connections=20,
|
42
|
+
pool_maxsize=20,
|
43
|
+
max_retries=0, # Handle retries explicitly
|
44
|
+
pool_block=False,
|
45
|
+
),
|
46
|
+
)
|
47
|
+
_session.mount(
|
48
|
+
"https://",
|
49
|
+
requests.adapters.HTTPAdapter(
|
50
|
+
pool_connections=20, pool_maxsize=20, max_retries=0, pool_block=False
|
51
|
+
),
|
52
|
+
)
|
53
|
+
|
42
54
|
_supports_attempt_gets = None
|
43
55
|
_supports_tag_mutation = None
|
44
56
|
|
@@ -59,7 +71,9 @@ class ServiceMetadataProvider(MetadataProvider):
|
|
59
71
|
def compute_info(cls, val):
|
60
72
|
v = val.rstrip("/")
|
61
73
|
try:
|
62
|
-
resp =
|
74
|
+
resp = cls._session.get(
|
75
|
+
os.path.join(v, "ping"), headers=SERVICE_HEADERS.copy()
|
76
|
+
)
|
63
77
|
resp.raise_for_status()
|
64
78
|
except: # noqa E722
|
65
79
|
raise ValueError("Metaflow service [%s] unreachable." % v)
|
@@ -412,27 +426,27 @@ class ServiceMetadataProvider(MetadataProvider):
|
|
412
426
|
if method == "GET":
|
413
427
|
if monitor:
|
414
428
|
with monitor.measure("metaflow.service_metadata.get"):
|
415
|
-
resp =
|
429
|
+
resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
|
416
430
|
else:
|
417
|
-
resp =
|
431
|
+
resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
|
418
432
|
elif method == "POST":
|
419
433
|
if monitor:
|
420
434
|
with monitor.measure("metaflow.service_metadata.post"):
|
421
|
-
resp =
|
435
|
+
resp = cls._session.post(
|
422
436
|
url, headers=SERVICE_HEADERS.copy(), json=data
|
423
437
|
)
|
424
438
|
else:
|
425
|
-
resp =
|
439
|
+
resp = cls._session.post(
|
426
440
|
url, headers=SERVICE_HEADERS.copy(), json=data
|
427
441
|
)
|
428
442
|
elif method == "PATCH":
|
429
443
|
if monitor:
|
430
444
|
with monitor.measure("metaflow.service_metadata.patch"):
|
431
|
-
resp =
|
445
|
+
resp = cls._session.patch(
|
432
446
|
url, headers=SERVICE_HEADERS.copy(), json=data
|
433
447
|
)
|
434
448
|
else:
|
435
|
-
resp =
|
449
|
+
resp = cls._session.patch(
|
436
450
|
url, headers=SERVICE_HEADERS.copy(), json=data
|
437
451
|
)
|
438
452
|
else:
|
@@ -475,7 +489,6 @@ class ServiceMetadataProvider(MetadataProvider):
|
|
475
489
|
resp.text,
|
476
490
|
)
|
477
491
|
time.sleep(2**i)
|
478
|
-
|
479
492
|
if resp:
|
480
493
|
raise ServiceException(
|
481
494
|
"Metadata request (%s) failed (code %s): %s"
|
@@ -499,9 +512,9 @@ class ServiceMetadataProvider(MetadataProvider):
|
|
499
512
|
try:
|
500
513
|
if monitor:
|
501
514
|
with monitor.measure("metaflow.service_metadata.get"):
|
502
|
-
resp =
|
515
|
+
resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
|
503
516
|
else:
|
504
|
-
resp =
|
517
|
+
resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
|
505
518
|
except:
|
506
519
|
if monitor:
|
507
520
|
with monitor.count("metaflow.service_metadata.failed_request"):
|
metaflow/runner/click_api.py
CHANGED
@@ -527,12 +527,6 @@ def extract_all_params(cmd_obj: Union[click.Command, click.Group]):
|
|
527
527
|
)
|
528
528
|
arg_parameters[each_param.name] = each_param
|
529
529
|
elif isinstance(each_param, click.Option):
|
530
|
-
if each_param.hidden:
|
531
|
-
# Skip hidden options because users should not be setting those.
|
532
|
-
# These are typically internal only options (used by the Runner in part
|
533
|
-
# for example to pass state files or configs to pass local-config-file).
|
534
|
-
continue
|
535
|
-
|
536
530
|
opt_params_sigs[each_param.name], annotations[each_param.name] = (
|
537
531
|
get_inspect_param_obj(each_param, inspect.Parameter.KEYWORD_ONLY)
|
538
532
|
)
|
metaflow/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
metaflow_version = "2.
|
1
|
+
metaflow_version = "2.14.0"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: metaflow
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.14.0
|
4
4
|
Summary: Metaflow: More Data Science, Less Engineering
|
5
5
|
Author: Metaflow Developers
|
6
6
|
Author-email: help@metaflow.org
|
@@ -26,7 +26,7 @@ License-File: LICENSE
|
|
26
26
|
Requires-Dist: requests
|
27
27
|
Requires-Dist: boto3
|
28
28
|
Provides-Extra: stubs
|
29
|
-
Requires-Dist: metaflow-stubs==2.
|
29
|
+
Requires-Dist: metaflow-stubs==2.14.0; extra == "stubs"
|
30
30
|
Dynamic: author
|
31
31
|
Dynamic: author-email
|
32
32
|
Dynamic: classifier
|
@@ -36,7 +36,7 @@ metaflow/tuple_util.py,sha256=_G5YIEhuugwJ_f6rrZoelMFak3DqAR2tt_5CapS1XTY,830
|
|
36
36
|
metaflow/unbounded_foreach.py,sha256=p184WMbrMJ3xKYHwewj27ZhRUsSj_kw1jlye5gA9xJk,387
|
37
37
|
metaflow/util.py,sha256=mJBkV5tShIyCsLDeM1zygQGeciQVMrVPm_qI8Oi33G0,14656
|
38
38
|
metaflow/vendor.py,sha256=FchtA9tH22JM-eEtJ2c9FpUdMn8sSb1VHuQS56EcdZk,5139
|
39
|
-
metaflow/version.py,sha256=
|
39
|
+
metaflow/version.py,sha256=EaSK29SvOJFXVcYk1a_Ie2OHqYgRDs6H9YMj74CUnmU,28
|
40
40
|
metaflow/_vendor/__init__.py,sha256=y_CiwUD3l4eAKvTVDZeqgVujMy31cAM1qjAB-HfI-9s,353
|
41
41
|
metaflow/_vendor/typing_extensions.py,sha256=0nUs5p1A_UrZigrAVBoOEM6TxU37zzPDUtiij1ZwpNc,110417
|
42
42
|
metaflow/_vendor/zipp.py,sha256=ajztOH-9I7KA_4wqDYygtHa6xUBVZgFpmZ8FE74HHHI,8425
|
@@ -298,7 +298,7 @@ metaflow/plugins/kubernetes/spot_metadata_cli.py,sha256=an0nWCxgflmqIPBCBrlb4m3D
|
|
298
298
|
metaflow/plugins/kubernetes/spot_monitor_sidecar.py,sha256=zrWU-smQwPnL6MBHmzTxWyEA00R6iKKQbhhy50xFwQ8,3832
|
299
299
|
metaflow/plugins/metadata_providers/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
300
300
|
metaflow/plugins/metadata_providers/local.py,sha256=9UAxe9caN6kU1lkSlIoJbRGgTqsMa62cBTnyMwhqiaA,22446
|
301
|
-
metaflow/plugins/metadata_providers/service.py,sha256=
|
301
|
+
metaflow/plugins/metadata_providers/service.py,sha256=XhXarANcgkQ4D5q8qhywvd8BjPN274DLGLVx1KtxWF0,20725
|
302
302
|
metaflow/plugins/pypi/__init__.py,sha256=0YFZpXvX7HCkyBFglatual7XGifdA1RwC3U4kcizyak,1037
|
303
303
|
metaflow/plugins/pypi/bootstrap.py,sha256=oRfJkAp99R338nYX2wq4FrV0Ax5h4QqqifNmAXrM3CY,14892
|
304
304
|
metaflow/plugins/pypi/conda_decorator.py,sha256=piFcE4uGmWhhbGlxMK0GHd7BGEyqy6r9BFy8Mjoi80Q,15937
|
@@ -312,7 +312,7 @@ metaflow/plugins/secrets/__init__.py,sha256=mhJaN2eMS_ZZVewAMR2E-JdP5i0t3v9e6Dcw
|
|
312
312
|
metaflow/plugins/secrets/inline_secrets_provider.py,sha256=EChmoBGA1i7qM3jtYwPpLZDBybXLergiDlN63E0u3x8,294
|
313
313
|
metaflow/plugins/secrets/secrets_decorator.py,sha256=s-sFzPWOjahhpr5fMj-ZEaHkDYAPTO0isYXGvaUwlG8,11273
|
314
314
|
metaflow/runner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
315
|
-
metaflow/runner/click_api.py,sha256=
|
315
|
+
metaflow/runner/click_api.py,sha256=truFw2mbtnEKWVhfY5haIxJEyyoB6-cipoY5-ZWXFXo,23111
|
316
316
|
metaflow/runner/deployer.py,sha256=Yas_SZCss3kfJw3hLC8_IyzgiytUFGoEGHz-l-rBBKk,8980
|
317
317
|
metaflow/runner/deployer_impl.py,sha256=Kab9rLoA3EiBJDtTTulhPCeKzqiljW366nx2Tm0LYy0,6143
|
318
318
|
metaflow/runner/metaflow_runner.py,sha256=L302ew_BPBPs-NnW8n92dqqbqmHwrwGL5D6kTZvl5vY,16074
|
@@ -360,9 +360,9 @@ metaflow/user_configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
360
360
|
metaflow/user_configs/config_decorators.py,sha256=qCKVAvd0NKgaCxQ2OThes5-DYHXq6A1HqURubYNeFdw,20481
|
361
361
|
metaflow/user_configs/config_options.py,sha256=m6jccSpzI4qUJ7vyYkYBIf8G3V0Caunxg_k7zg4Zlqg,21067
|
362
362
|
metaflow/user_configs/config_parameters.py,sha256=oeJGVKu1ao_YQX6Lg6P2FEv5k5-_F4sARLlVpTW9ezM,15502
|
363
|
-
metaflow-2.
|
364
|
-
metaflow-2.
|
365
|
-
metaflow-2.
|
366
|
-
metaflow-2.
|
367
|
-
metaflow-2.
|
368
|
-
metaflow-2.
|
363
|
+
metaflow-2.14.0.dist-info/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
|
364
|
+
metaflow-2.14.0.dist-info/METADATA,sha256=qxM8LtLppUZz43NgvqAQ8H2D0pRnlYoTwkGfwEdYXow,6121
|
365
|
+
metaflow-2.14.0.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
|
366
|
+
metaflow-2.14.0.dist-info/entry_points.txt,sha256=IKwTN1T3I5eJL3uo_vnkyxVffcgnRdFbKwlghZfn27k,57
|
367
|
+
metaflow-2.14.0.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
|
368
|
+
metaflow-2.14.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|