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.
@@ -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 = requests.get(os.path.join(v, "ping"), headers=SERVICE_HEADERS.copy())
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 = requests.get(url, headers=SERVICE_HEADERS.copy())
429
+ resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
416
430
  else:
417
- resp = requests.get(url, headers=SERVICE_HEADERS.copy())
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 = requests.post(
435
+ resp = cls._session.post(
422
436
  url, headers=SERVICE_HEADERS.copy(), json=data
423
437
  )
424
438
  else:
425
- resp = requests.post(
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 = requests.patch(
445
+ resp = cls._session.patch(
432
446
  url, headers=SERVICE_HEADERS.copy(), json=data
433
447
  )
434
448
  else:
435
- resp = requests.patch(
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 = requests.get(url, headers=SERVICE_HEADERS.copy())
515
+ resp = cls._session.get(url, headers=SERVICE_HEADERS.copy())
503
516
  else:
504
- resp = requests.get(url, headers=SERVICE_HEADERS.copy())
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"):
@@ -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.13.10"
1
+ metaflow_version = "2.14.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: metaflow
3
- Version: 2.13.10
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.13.10; extra == "stubs"
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=nw_3tTfaWSj3T2BCcw-MVsd8X_gX5HLD1u0d-2sRt50,29
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=NKZfFMamx6upP6aFRJfXlfYIhySgFNzz6kbp1yPD7LA,20222
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=dKTrom8j7yvBQfFNl4JH9WJcyBBHy39ROtVpilUdqkw,23429
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.13.10.dist-info/LICENSE,sha256=nl_Lt5v9VvJ-5lWJDT4ddKAG-VZ-2IaLmbzpgYDz2hU,11343
364
- metaflow-2.13.10.dist-info/METADATA,sha256=NBvnVEYFCuIL6rzf9bUt_1nIy3so_sI_VY-s7h37sK0,6123
365
- metaflow-2.13.10.dist-info/WHEEL,sha256=9Hm2OB-j1QcCUq9Jguht7ayGIIZBRTdOXD1qg9cCgPM,109
366
- metaflow-2.13.10.dist-info/entry_points.txt,sha256=IKwTN1T3I5eJL3uo_vnkyxVffcgnRdFbKwlghZfn27k,57
367
- metaflow-2.13.10.dist-info/top_level.txt,sha256=v1pDHoWaSaKeuc5fKTRSfsXCKSdW1zvNVmvA-i0if3o,9
368
- metaflow-2.13.10.dist-info/RECORD,,
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,,