prefect-client 3.0.0rc1__py3-none-any.whl → 3.0.0rc2__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.
@@ -456,7 +456,14 @@ def _generate_signature_from_source(
456
456
  (
457
457
  node
458
458
  for node in ast.walk(parsed_code)
459
- if isinstance(node, ast.FunctionDef) and node.name == func_name
459
+ if isinstance(
460
+ node,
461
+ (
462
+ ast.FunctionDef,
463
+ ast.AsyncFunctionDef,
464
+ ),
465
+ )
466
+ and node.name == func_name
460
467
  ),
461
468
  None,
462
469
  )
@@ -464,6 +471,26 @@ def _generate_signature_from_source(
464
471
  raise ValueError(f"Function {func_name} not found in source code")
465
472
  parameters = []
466
473
 
474
+ # Handle annotations for positional only args e.g. def func(a, /, b, c)
475
+ for arg in func_def.args.posonlyargs:
476
+ name = arg.arg
477
+ annotation = arg.annotation
478
+ if annotation is not None:
479
+ try:
480
+ ann_code = compile(ast.Expression(annotation), "<string>", "eval")
481
+ annotation = eval(ann_code, namespace)
482
+ except Exception as e:
483
+ logger.debug("Failed to evaluate annotation for %s: %s", name, e)
484
+ annotation = inspect.Parameter.empty
485
+ else:
486
+ annotation = inspect.Parameter.empty
487
+
488
+ param = inspect.Parameter(
489
+ name, inspect.Parameter.POSITIONAL_ONLY, annotation=annotation
490
+ )
491
+ parameters.append(param)
492
+
493
+ # Determine the annotations for args e.g. def func(a: int, b: str, c: float)
467
494
  for arg in func_def.args.args:
468
495
  name = arg.arg
469
496
  annotation = arg.annotation
@@ -486,6 +513,7 @@ def _generate_signature_from_source(
486
513
  )
487
514
  parameters.append(param)
488
515
 
516
+ # Handle default values for args e.g. def func(a=1, b="hello", c=3.14)
489
517
  defaults = [None] * (
490
518
  len(func_def.args.args) - len(func_def.args.defaults)
491
519
  ) + func_def.args.defaults
@@ -501,6 +529,42 @@ def _generate_signature_from_source(
501
529
  default = None # Set to None if evaluation fails
502
530
  parameters[parameters.index(param)] = param.replace(default=default)
503
531
 
532
+ # Handle annotations for keyword only args e.g. def func(*, a: int, b: str)
533
+ for kwarg in func_def.args.kwonlyargs:
534
+ name = kwarg.arg
535
+ annotation = kwarg.annotation
536
+ if annotation is not None:
537
+ try:
538
+ ann_code = compile(ast.Expression(annotation), "<string>", "eval")
539
+ annotation = eval(ann_code, namespace)
540
+ except Exception as e:
541
+ logger.debug("Failed to evaluate annotation for %s: %s", name, e)
542
+ annotation = inspect.Parameter.empty
543
+ else:
544
+ annotation = inspect.Parameter.empty
545
+
546
+ param = inspect.Parameter(
547
+ name, inspect.Parameter.KEYWORD_ONLY, annotation=annotation
548
+ )
549
+ parameters.append(param)
550
+
551
+ # Handle default values for keyword only args e.g. def func(*, a=1, b="hello")
552
+ defaults = [None] * (
553
+ len(func_def.args.kwonlyargs) - len(func_def.args.kw_defaults)
554
+ ) + func_def.args.kw_defaults
555
+ for param, default in zip(parameters[-len(func_def.args.kwonlyargs) :], defaults):
556
+ if default is not None:
557
+ try:
558
+ def_code = compile(ast.Expression(default), "<string>", "eval")
559
+ default = eval(def_code, namespace)
560
+ except Exception as e:
561
+ logger.debug(
562
+ "Failed to evaluate default value for %s: %s", param.name, e
563
+ )
564
+ default = None
565
+ parameters[parameters.index(param)] = param.replace(default=default)
566
+
567
+ # Handle annotations for varargs and kwargs e.g. def func(*args: int, **kwargs: str)
504
568
  if func_def.args.vararg:
505
569
  parameters.append(
506
570
  inspect.Parameter(
@@ -512,7 +576,7 @@ def _generate_signature_from_source(
512
576
  inspect.Parameter(func_def.args.kwarg.arg, inspect.Parameter.VAR_KEYWORD)
513
577
  )
514
578
 
515
- # Handle return annotation
579
+ # Handle return annotation e.g. def func() -> int
516
580
  return_annotation = func_def.returns
517
581
  if return_annotation is not None:
518
582
  try:
@@ -544,7 +608,14 @@ def _get_docstring_from_source(source_code: str, func_name: str) -> Optional[str
544
608
  (
545
609
  node
546
610
  for node in ast.walk(parsed_code)
547
- if isinstance(node, ast.FunctionDef) and node.name == func_name
611
+ if isinstance(
612
+ node,
613
+ (
614
+ ast.FunctionDef,
615
+ ast.AsyncFunctionDef,
616
+ ),
617
+ )
618
+ and node.name == func_name
548
619
  ),
549
620
  None,
550
621
  )
@@ -378,7 +378,7 @@ def safe_load_namespace(source_code: str):
378
378
  """
379
379
  parsed_code = ast.parse(source_code)
380
380
 
381
- namespace = {}
381
+ namespace = {"__name__": "prefect_safe_namespace_loader"}
382
382
 
383
383
  # Walk through the AST and find all import statements
384
384
  for node in ast.walk(parsed_code):
@@ -412,11 +412,11 @@ def safe_load_namespace(source_code: str):
412
412
  except ImportError as e:
413
413
  logger.debug("Failed to import from %s: %s", node.module, e)
414
414
 
415
- # Handle local class definitions
415
+ # Handle local definitions
416
416
  for node in ast.walk(parsed_code):
417
- if isinstance(node, (ast.ClassDef, ast.FunctionDef)):
417
+ if isinstance(node, (ast.ClassDef, ast.FunctionDef, ast.Assign)):
418
418
  try:
419
- # Compile and execute each class and function definition locally
419
+ # Compile and execute each class and function definition and assignment
420
420
  code = compile(
421
421
  ast.Module(body=[node], type_ignores=[]),
422
422
  filename="<ast>",
@@ -424,5 +424,5 @@ def safe_load_namespace(source_code: str):
424
424
  )
425
425
  exec(code, namespace)
426
426
  except Exception as e:
427
- logger.debug("Failed to compile class definition: %s", e)
427
+ logger.debug("Failed to compile: %s", e)
428
428
  return namespace
prefect/variables.py CHANGED
@@ -28,17 +28,19 @@ class Variable(VariableRequest):
28
28
  value: StrictVariableValue,
29
29
  tags: Optional[List[str]] = None,
30
30
  overwrite: bool = False,
31
+ as_object: bool = False,
31
32
  ):
32
33
  """
33
- Sets a new variable. If one exists with the same name, user must pass `overwrite=True`
34
+ Sets a new variable. If one exists with the same name, must pass `overwrite=True`
34
35
 
35
- Returns `True` if the variable was created or updated
36
+ Returns the newly set value. If `as_object=True`, return the full Variable object
36
37
 
37
38
  Args:
38
39
  - name: The name of the variable to set.
39
40
  - value: The value of the variable to set.
40
41
  - tags: An optional list of strings to associate with the variable.
41
42
  - overwrite: Whether to overwrite the variable if it already exists.
43
+ - as_object: Whether to return the full Variable object.
42
44
 
43
45
  Example:
44
46
  Set a new variable and overwrite it if it already exists.
@@ -51,17 +53,22 @@ class Variable(VariableRequest):
51
53
  ```
52
54
  """
53
55
  client, _ = get_or_create_client()
54
- variable = await client.read_variable_by_name(name)
56
+ variable_exists = await client.read_variable_by_name(name)
55
57
  var_dict = {"name": name, "value": value, "tags": tags or []}
56
- if variable:
58
+
59
+ if variable_exists:
57
60
  if not overwrite:
58
61
  raise ValueError(
59
- "You are attempting to set a variable with a name that is already in use. "
60
- "If you would like to overwrite it, pass `overwrite=True`."
62
+ f"Variable {name!r} already exists. Use `overwrite=True` to update it."
61
63
  )
62
64
  await client.update_variable(variable=VariableUpdateRequest(**var_dict))
65
+ variable = await client.read_variable_by_name(name)
63
66
  else:
64
- await client.create_variable(variable=VariableRequest(**var_dict))
67
+ variable = await client.create_variable(
68
+ variable=VariableRequest(**var_dict)
69
+ )
70
+
71
+ return variable if as_object else variable.value
65
72
 
66
73
  @classmethod
67
74
  @sync_compatible
@@ -96,10 +103,8 @@ class Variable(VariableRequest):
96
103
  """
97
104
  client, _ = get_or_create_client()
98
105
  variable = await client.read_variable_by_name(name)
99
- if as_object:
100
- return variable
101
106
 
102
- return variable.value if variable else default
107
+ return variable if as_object else (variable.value if variable else default)
103
108
 
104
109
  @classmethod
105
110
  @sync_compatible
prefect/workers/base.py CHANGED
@@ -106,12 +106,22 @@ class BaseJobConfiguration(BaseModel):
106
106
  def _coerce_command(cls, v):
107
107
  return return_v_or_none(v)
108
108
 
109
+ @field_validator("env", mode="before")
110
+ @classmethod
111
+ def _coerce_env(cls, v):
112
+ return {k: str(v) if v is not None else None for k, v in v.items()}
113
+
109
114
  @staticmethod
110
115
  def _get_base_config_defaults(variables: dict) -> dict:
111
116
  """Get default values from base config for all variables that have them."""
112
117
  defaults = dict()
113
118
  for variable_name, attrs in variables.items():
114
- if "default" in attrs:
119
+ # We remote `None` values because we don't want to use them in templating.
120
+ # The currently logic depends on keys not existing to populate the correct value
121
+ # in some cases.
122
+ # Pydantic will provide default values if the keys are missing when creating
123
+ # a configuration class.
124
+ if "default" in attrs and attrs.get("default") is not None:
115
125
  defaults[variable_name] = attrs["default"]
116
126
 
117
127
  return defaults
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.0.0rc1
3
+ Version: 3.0.0rc2
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -30,6 +30,7 @@ Requires-Dist: cachetools <6.0,>=5.3
30
30
  Requires-Dist: cloudpickle <4.0,>=2.0
31
31
  Requires-Dist: coolname <3.0.0,>=1.0.4
32
32
  Requires-Dist: croniter <3.0.0,>=1.0.12
33
+ Requires-Dist: exceptiongroup >=1.0.0
33
34
  Requires-Dist: fastapi <1.0.0,>=0.111.0
34
35
  Requires-Dist: fsspec >=2022.5.0
35
36
  Requires-Dist: graphviz >=0.20.1
@@ -7,24 +7,25 @@ prefect/context.py,sha256=9pw-HE0ytP7xzwE2P-O5mylQurs5srcgIwmxeSFDy-Q,24500
7
7
  prefect/engine.py,sha256=8IUQZXPLW623zkCdAmErO7_qDksnmKdOZqLpqli_krk,1904
8
8
  prefect/exceptions.py,sha256=Fyl-GXvF9OuKHtsyn5EhWg81pkU1UG3DFHsI1JzhOQE,10851
9
9
  prefect/filesystems.py,sha256=HsflgeOfFGAni9KrdQDbwpb23joSKGtTWDAQOr4GqBY,16819
10
- prefect/flow_engine.py,sha256=PspyfqHVaDNiZet6HtU10D1zcHyEXjz6wjrcCGCCeh4,25264
11
- prefect/flow_runs.py,sha256=8OPmh1hGnf1on6LTJGf3vw--CVIUUiHzBkayJzAq7wo,16029
12
- prefect/flows.py,sha256=aLMJ-cwX0qyq0rQt0eC-cFxj9k090cAB1IsdWYeuSdo,78548
13
- prefect/futures.py,sha256=Lqkdmt7d1gA4a9YSlnPSIDJ42tPA4CfL40reXiVlPTw,8994
10
+ prefect/flow_engine.py,sha256=f5yQRAN3abUr-LdmSB3AfdRHbzbTCL-MaNteWNCrkvw,25264
11
+ prefect/flow_runs.py,sha256=7mHGjb3-6MfR4XKQjy9sJPS9dS0yTxVO6MYQ8YlGjGw,16071
12
+ prefect/flows.py,sha256=wRK8Zb_i1LGdCnvKqZz-ia0ewjCFwNoz97oYU65QrhM,78690
13
+ prefect/futures.py,sha256=-ElpB4lcjJxMS1Jl-iHnUEofpgoSs2xCtMgR3_F4bTE,9139
14
14
  prefect/manifests.py,sha256=477XcmfdC_yE81wT6zIAKnEUEJ0lH9ZLfOVSgX2FohE,676
15
15
  prefect/plugins.py,sha256=0C-D3-dKi06JZ44XEGmLjCiAkefbE_lKX-g3urzdbQ4,4163
16
16
  prefect/profiles.toml,sha256=Fs8hD_BdWHZgAijgk8pK_Zx-Pm-YFixqDIfEP6fM-qU,38
17
17
  prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  prefect/results.py,sha256=BeIOWNTzEgdOOkMZA4R3KcFpaknjbWQm-WEDTqbzBuU,25972
19
19
  prefect/serializers.py,sha256=8ON--RmaLX3Td3Rpd1lshGcqWyjlCFkmO3sblxsdT_c,8699
20
- prefect/settings.py,sha256=Vf9Y8IAM8fmUUNrwWsGsIr6iCQ8wk4x9t8VaQed8lIs,73990
21
- prefect/states.py,sha256=BMm0PEbXeTyk9oLVVQ5MvWXMZR4nJGG-wQMXBm7-7d8,20093
22
- prefect/task_engine.py,sha256=yj6GyllBzKaNEVgQFUG5H8OhKsn46UyIcXWDKJtFosA,27115
23
- prefect/task_runners.py,sha256=hQKO5EYFJ74uCChbUID8kbL5saLfqdgbVTuG1DhyFfs,11418
24
- prefect/task_server.py,sha256=wdVmayiYbg4pnEIMUwUkxq9jgLNsJ8xflD-3vzr_JSw,11842
25
- prefect/tasks.py,sha256=pvqFVnb4FQLfNd_poo6VAsm_6cWR6_sF34R7Gc8MnRA,55689
26
- prefect/transactions.py,sha256=iux22yzUqtJh-PU57LfdYGVg4mrZVd0kPgSPf8JPCJ8,6383
27
- prefect/variables.py,sha256=LvQbeTnd2-BjcGSQkdKTWv6-bqbQiUj2jhLPD56ZVOs,4507
20
+ prefect/settings.py,sha256=v5QaD8x7jxSieksapkEOF70U7_i_nC-lFDMSu7htQ6s,74123
21
+ prefect/states.py,sha256=iMghF9qstBxfWV7MIZEmR3wijGo9hjnMAsWt37Kxue4,20143
22
+ prefect/task_engine.py,sha256=nPc5zyhYiYUjZMBpUP5aLqXFNBuWMXQMAvL1zyxIOZo,25536
23
+ prefect/task_runners.py,sha256=H9QRog6ox3gFg__w3GJbXIPj19uMQxhk1_2yqEw14KM,11554
24
+ prefect/task_runs.py,sha256=3FEz95KSkGiL8rf3aqxY4sIJGEKY4GfxKvDlGdXU4Pk,7170
25
+ prefect/task_worker.py,sha256=5Xb1FpYotmxEMMoeQtvfuseBNxCjKJVXXTXl9viT844,12291
26
+ prefect/tasks.py,sha256=lasNeqKfNFeQWSwgmsqWDNojS2hVEOaJSo80Fh_XD_Q,56854
27
+ prefect/transactions.py,sha256=1XkoxwX6JOzMGSxidvBD-KDAb7edk_cAQ8t1XlBZ3P4,6498
28
+ prefect/variables.py,sha256=Qd3rn-lbDDEXENp2Ej1-RcbepkV2hlQp6TWoS4-xTOQ,4705
28
29
  prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
30
  prefect/_internal/_logging.py,sha256=HvNHY-8P469o5u4LYEDBTem69XZEt1QUeUaLToijpak,810
30
31
  prefect/_internal/pytz.py,sha256=47Y28jKxUvgw7vaEvN-Xl0laiVdMLXC8IRUEk7oHz1Q,13749
@@ -59,6 +60,7 @@ prefect/blocks/core.py,sha256=AavpIpQx6znhomFYS751hY8HjjrAM0Ug3SwNRELpjGA,46657
59
60
  prefect/blocks/fields.py,sha256=1m507VVmkpOnMF_7N-qboRjtw4_ceIuDneX3jZ3Jm54,63
60
61
  prefect/blocks/kubernetes.py,sha256=1AHzcI2hPeu5zOEKLC4FBjjv8VdZ8ianuv6oVEh4ou8,4016
61
62
  prefect/blocks/notifications.py,sha256=QV2ndeiERBbL9vNW2zR1LzH86llDY1sJVh2DN0sh1eo,28198
63
+ prefect/blocks/redis.py,sha256=GUKYyx2QLtyNvgf5FT_dJxbgQcOzWCja3I23J1-AXhM,5629
62
64
  prefect/blocks/system.py,sha256=tkONKzDlaQgR6NtWXON0ZQm7nGuFKt0_Du3sj8ubs-M,3605
63
65
  prefect/blocks/webhook.py,sha256=mnAfGF64WyjH55BKkTbC1AP9FETNcrm_PEjiqJNpigA,1867
64
66
  prefect/client/__init__.py,sha256=yJ5FRF9RxNUio2V_HmyKCKw5G6CZO0h8cv6xA_Hkpcc,477
@@ -66,23 +68,23 @@ prefect/client/base.py,sha256=laxz64IEhbetMIcRh67_YDYd5ThCmUK9fgUgco8WyXQ,24647
66
68
  prefect/client/cloud.py,sha256=5T84QP9IRa_cqL7rmY3lR1wxFW6C41PajFZgelurhK0,4124
67
69
  prefect/client/collections.py,sha256=I9EgbTg4Fn57gn8vwP_WdDmgnATbx9gfkm2jjhCORjw,1037
68
70
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
69
- prefect/client/orchestration.py,sha256=66JtcsgDRo4N8NmZ14pYQjMDudHq6JZdg_VbBw5Huk4,139516
71
+ prefect/client/orchestration.py,sha256=tGQfaBpghPIzNe_CKDcwDgq67YFRfjLaEOdvHlgI4sM,139792
70
72
  prefect/client/subscriptions.py,sha256=1jalWVk8Ho-dHHuDePr43vw_SYm2BcOA5MX2Dp7REng,3366
71
73
  prefect/client/utilities.py,sha256=Ni1DsFDhnvxpXWerlvZpK8tCg-uZ8UyZwOmDTKEb1DI,3269
72
74
  prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
73
75
  prefect/client/schemas/actions.py,sha256=OOHVSeCMGW3hXK65M4Jr3fQM9fq95c_vvnPBi2bHcUM,28127
74
76
  prefect/client/schemas/filters.py,sha256=KqRPjSzb-Tt3gVfVGNiLPaYKtD_W9npsPLGxpaVPm5U,35045
75
- prefect/client/schemas/objects.py,sha256=0oEVlZVoUOv-jEP0Fzjn4WF1dEyDF6ZJcI6xnSwiYy4,53121
77
+ prefect/client/schemas/objects.py,sha256=1HusFAS5rx7T4VleWc6UGJVwZhUUl9uVX8CUIf2Xnjw,53126
76
78
  prefect/client/schemas/responses.py,sha256=YnofjvPxaDE0kPw7SLfK5TuZSJ0IlqP2G17rQgz_buk,15135
77
79
  prefect/client/schemas/schedules.py,sha256=EIvVQN01ZnLf6Yu-3_Ar1iHybDwJ6C767AAnqMhVxWo,12846
78
80
  prefect/client/schemas/sorting.py,sha256=EIQ6FUjUWMwk6fn6ckVLQLXOP-GI5kce7ftjUkDFWV0,2490
79
81
  prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- prefect/concurrency/asyncio.py,sha256=xwDPp3qBuFmXCUkboOx1-JPGYV0pdpR-Ot2Qk41sVE0,4283
82
+ prefect/concurrency/asyncio.py,sha256=P9e69XYik9QBSlUYyq1OcyqyUJaFjvW8jm6nfMkZ7uA,4304
81
83
  prefect/concurrency/events.py,sha256=rQLSBwcYCzvdKTXr7bLjgMIklllObxB33MAL6dylXAM,1802
82
- prefect/concurrency/services.py,sha256=nmJcs9hWfqU7l3OmkNOpAqgK-_YOcqJ7Y5p_LbDSffU,2577
84
+ prefect/concurrency/services.py,sha256=JP74IUjdoDoljy-BdZQTa1IOEuSZZxMgsMyr7KJAYS0,2598
83
85
  prefect/concurrency/sync.py,sha256=gXyiiA0bul7jjpHWPm6su8pFdBiMOekhu9FHnjiPWBQ,3339
84
86
  prefect/deployments/__init__.py,sha256=UoP8mn3Drz65sK2FVZJxyGJR5zhsYQD5BRX3LlaAxdI,317
85
- prefect/deployments/base.py,sha256=dtXZm9FeqHFQmLAQSW_w18sMylgVIqS9QASyEIjfqgs,16455
87
+ prefect/deployments/base.py,sha256=DJJJCDjrXLnhtMDrz1ZpH9R1rNhhW-qxDc1Q7MVGIkA,16561
86
88
  prefect/deployments/flow_runs.py,sha256=eatcBD7pg-aaEqs9JxQQcKN_flf614O4gAvedAlRyNo,6803
87
89
  prefect/deployments/runner.py,sha256=5f3pFGxw_DOA9k169KFIzILTZ_TkKIWI9DLhl1iK1Ck,44716
88
90
  prefect/deployments/schedules.py,sha256=c8ONC9t_buAWVxfcWAQEGhuIkU5rAjetuvU87PLJx48,2031
@@ -102,7 +104,7 @@ prefect/events/cli/automations.py,sha256=XK0Uad87-3iECnIcQphrUG0wSwtqQVZsEyEkKRk
102
104
  prefect/events/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
105
  prefect/events/schemas/automations.py,sha256=hZ7lbkJEhpHmyd118k_O7kl_i_lEnDifwsn2ZHyn8Po,14380
104
106
  prefect/events/schemas/deployment_triggers.py,sha256=i_BtKscXU9kOHAeqmxrYQr8itEYfuPIxAnCW3fo1YeE,3114
105
- prefect/events/schemas/events.py,sha256=bATcg3zjtZYMbbLdquzuyg_KsXhWlpW5e3ftB-056sM,8602
107
+ prefect/events/schemas/events.py,sha256=RqosMukGfHvLPnYDcyxkm6VuifCeH5-aQ4POdMPmaUA,8649
106
108
  prefect/events/schemas/labelling.py,sha256=bU-XYaHXhI2MEBIHngth96R9D02m8HHb85KNcHZ_1Gc,3073
107
109
  prefect/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
110
  prefect/infrastructure/provisioners/__init__.py,sha256=wn240gHrQbien2g_g2A8Ujb2iFyjmDgMHLQ7tgQngf4,1706
@@ -112,7 +114,7 @@ prefect/infrastructure/provisioners/ecs.py,sha256=gAkJ5R0gVSUZpEAGVr6YZC00PfNZeg
112
114
  prefect/infrastructure/provisioners/modal.py,sha256=4-VanBPqWlAj_5ckpXT7NonbqP0YwznTXFa4P8cthIs,9080
113
115
  prefect/input/__init__.py,sha256=TPJ9UfG9_SiBze23sQwU1MnWI8AgyEMNihotgTebFQ0,627
114
116
  prefect/input/actions.py,sha256=IGdWjVcesnRjLmPCzB4ZM7FkRWXDKCku6yhE-7p0vKk,3777
115
- prefect/input/run_input.py,sha256=DaCXNUYwoG-8yqsebrLuzHw0TPtE1wfwiqB92kdhaF4,18674
117
+ prefect/input/run_input.py,sha256=2wG-0L3N0spwh61Z3xI0PM8AAjHEIQZcDN703Er_gLo,18728
116
118
  prefect/logging/__init__.py,sha256=zx9f5_dWrR4DbcTOFBpNGOPoCZ1QcPFudr7zxb2XRpA,148
117
119
  prefect/logging/configuration.py,sha256=bYqFJm0QgLz92Dub1Lbl3JONjjm0lTK149pNAGbxPdM,3467
118
120
  prefect/logging/filters.py,sha256=9keHLN4-cpnsWcii1qU0RITNi9-m7pOhkJ_t0MtCM4k,1117
@@ -122,6 +124,7 @@ prefect/logging/highlighters.py,sha256=BpSXOy0n3lFVvlKWa7jC-HetAiClFi9jnQtEq5-rg
122
124
  prefect/logging/loggers.py,sha256=pWxp2SLiyYTD4Dpxqi7tsdlThhdpmdorPAL8wKM2MBM,11517
123
125
  prefect/logging/logging.yml,sha256=UkEewf0c3_dURI2uCU4RrxkhI5Devoa1s93fl7hilcg,3160
124
126
  prefect/records/__init__.py,sha256=7q-lwyevfVgb5S7K9frzawmiJmpZ5ET0m5yXIHBYcVA,31
127
+ prefect/records/cache_policies.py,sha256=Tznezrm_sVR1npwirrUNv5t8b7XFkJ8xDrNW84KUlyg,4735
125
128
  prefect/records/result_store.py,sha256=Xa5PdalG9yyPIGxTvdgDSAp2LP4UFnJ9vF2Vv-rnoGA,1352
126
129
  prefect/records/store.py,sha256=eQM1p2vZDshXZYg6SkJwL-DP3kUehL_Zgs8xa2-0DZs,224
127
130
  prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
@@ -140,7 +143,7 @@ prefect/types/__init__.py,sha256=FmTJx5Uh89Pv6ssgcyUiA4p1zxPMHrUdQ7gfXqmypqw,216
140
143
  prefect/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
144
  prefect/utilities/annotations.py,sha256=bXB43j5Zsq5gaBcJe9qnszBlnNwCTwqSTgcu2OkkRLo,2776
142
145
  prefect/utilities/asyncutils.py,sha256=YCkMNOGB1DCLR6pgr6hgXFOjfyv9fXhY8ISiv4tHX0w,19174
143
- prefect/utilities/callables.py,sha256=OGypmNncbp4KvBlE_-gfNxBs0sUmmBmoLcYu9eX0Vi0,21493
146
+ prefect/utilities/callables.py,sha256=Y4P4dvsOlPovT5BuL8kjrmt0RmyV4tvtXNOwJ5ADNEc,24320
144
147
  prefect/utilities/collections.py,sha256=9vUZA8j_NAOcsRZ45UWGYpO1EuUErcpcPTyZap5q28I,14883
145
148
  prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,906
146
149
  prefect/utilities/context.py,sha256=BThuUW94-IYgFYTeMIM9KMo8ShT3oiI7w5ajZHzU1j0,1377
@@ -149,7 +152,7 @@ prefect/utilities/dockerutils.py,sha256=BXXW5RinfPxNa02k2XDqPwbKhAvrey3IvVZwLV3C
149
152
  prefect/utilities/engine.py,sha256=t5Gi96TY2Uv_cTi-WnYPtPoI-MEWeN11VxraDulyyJI,29707
150
153
  prefect/utilities/filesystem.py,sha256=M_TeZ1MftjBf7hDLWk-Iphir369TpJ1binMsBKiO9YE,4449
151
154
  prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
152
- prefect/utilities/importtools.py,sha256=t34M3M_CwRTZMrpBdw6-P42VQoOkG_AhIL1aM7Bytgg,14432
155
+ prefect/utilities/importtools.py,sha256=u-b5Hpuh7YBnLEjWfVPoppxpKEBmYszEQ6oMkrr-Ff8,14471
153
156
  prefect/utilities/math.py,sha256=wLwcKVidpNeWQi1TUIWWLHGjlz9UgboX9FUGhx_CQzo,2821
154
157
  prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,1657
155
158
  prefect/utilities/processutils.py,sha256=yo_GO48pZzgn4A0IK5irTAoqyUCYvWKDSqHXCrtP8c4,14547
@@ -165,12 +168,12 @@ prefect/utilities/schema_tools/__init__.py,sha256=KsFsTEHQqgp89TkDpjggkgBBywoHQP
165
168
  prefect/utilities/schema_tools/hydration.py,sha256=Nitnmr35Mcn5z9NXIvh9DuZW5nCZxpjyMc9RFawMsgs,8376
166
169
  prefect/utilities/schema_tools/validation.py,sha256=zZHL_UFxAlgaUzi-qsEOrhWtZ7EkFQvPkX_YN1EJNTo,8414
167
170
  prefect/workers/__init__.py,sha256=8dP8SLZbWYyC_l9DRTQSE3dEbDgns5DZDhxkp_NfsbQ,35
168
- prefect/workers/base.py,sha256=zsQm4CRIRwkk6swO4Q--zYf5ThUvqr-5Nm1exoLO5Qc,45084
171
+ prefect/workers/base.py,sha256=e5KUgepv9MtPk_9L-Ipg35AOumuGErQhfNHFi5OiBEM,45622
169
172
  prefect/workers/process.py,sha256=vylkSSswaSCew-V65YW0HcxIxyKI-uqWkbSKpkkLamQ,9372
170
173
  prefect/workers/server.py,sha256=EfPiMxI7TVgkqpHkdPwSaYG-ydi99sG7jwXhkAcACbI,1519
171
174
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
172
- prefect_client-3.0.0rc1.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
173
- prefect_client-3.0.0rc1.dist-info/METADATA,sha256=Wrpd4NnquPpQFP5gme88mwI7Bb06izlCCvH1_t3sgio,7339
174
- prefect_client-3.0.0rc1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
175
- prefect_client-3.0.0rc1.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
176
- prefect_client-3.0.0rc1.dist-info/RECORD,,
175
+ prefect_client-3.0.0rc2.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
176
+ prefect_client-3.0.0rc2.dist-info/METADATA,sha256=l2B0IqOCU0nqp8txhuStu0oXYO9umh5-wTP3M7x5py0,7377
177
+ prefect_client-3.0.0rc2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
178
+ prefect_client-3.0.0rc2.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
179
+ prefect_client-3.0.0rc2.dist-info/RECORD,,