prefect-client 2.19.3__tar.gz → 2.19.5__tar.gz

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.
Files changed (302) hide show
  1. {prefect-client-2.19.3/src/prefect_client.egg-info → prefect-client-2.19.5}/PKG-INFO +1 -1
  2. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/actions.py +1 -1
  3. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/base.py +7 -1
  4. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/flows.py +34 -5
  5. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/container.py +6 -0
  6. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/callables.py +74 -3
  7. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/importtools.py +34 -5
  8. {prefect-client-2.19.3 → prefect-client-2.19.5/src/prefect_client.egg-info}/PKG-INFO +1 -1
  9. {prefect-client-2.19.3 → prefect-client-2.19.5}/LICENSE +0 -0
  10. {prefect-client-2.19.3 → prefect-client-2.19.5}/MANIFEST.in +0 -0
  11. {prefect-client-2.19.3 → prefect-client-2.19.5}/README.md +0 -0
  12. {prefect-client-2.19.3 → prefect-client-2.19.5}/requirements-client.txt +0 -0
  13. {prefect-client-2.19.3 → prefect-client-2.19.5}/requirements-dev.txt +0 -0
  14. {prefect-client-2.19.3 → prefect-client-2.19.5}/requirements.txt +0 -0
  15. {prefect-client-2.19.3 → prefect-client-2.19.5}/setup.cfg +0 -0
  16. {prefect-client-2.19.3 → prefect-client-2.19.5}/setup.py +0 -0
  17. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/.prefectignore +0 -0
  18. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/__init__.py +0 -0
  19. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/__init__.py +0 -0
  20. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/_logging.py +0 -0
  21. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/compatibility/__init__.py +0 -0
  22. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
  23. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/compatibility/experimental.py +0 -0
  24. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/__init__.py +0 -0
  25. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/api.py +0 -0
  26. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/calls.py +0 -0
  27. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
  28. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
  29. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/inspection.py +0 -0
  30. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/primitives.py +0 -0
  31. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/services.py +0 -0
  32. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/threads.py +0 -0
  33. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/concurrency/waiters.py +0 -0
  34. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/__init__.py +0 -0
  35. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/_base_model.py +0 -0
  36. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/_compat.py +0 -0
  37. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/_flags.py +0 -0
  38. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/_types.py +0 -0
  39. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
  40. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
  41. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/schemas.py +0 -0
  42. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
  43. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
  44. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
  45. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
  46. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
  47. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
  48. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
  49. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
  50. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
  51. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
  52. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
  53. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
  54. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
  55. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
  56. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
  57. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
  58. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
  59. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
  60. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/pytz.py +0 -0
  61. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/schemas/__init__.py +0 -0
  62. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/schemas/bases.py +0 -0
  63. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/schemas/fields.py +0 -0
  64. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/schemas/serializers.py +0 -0
  65. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_internal/schemas/validators.py +0 -0
  66. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/__init__.py +0 -0
  67. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/__init__.py +0 -0
  68. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/applications.py +0 -0
  69. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/background.py +0 -0
  70. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
  71. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
  72. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
  73. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
  74. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
  75. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/encoders.py +0 -0
  76. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
  77. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
  78. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/logger.py +0 -0
  79. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
  80. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
  81. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
  82. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
  83. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
  84. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
  85. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
  86. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
  87. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
  88. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
  89. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
  90. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
  91. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
  92. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/params.py +0 -0
  93. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/requests.py +0 -0
  94. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/responses.py +0 -0
  95. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/routing.py +0 -0
  96. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
  97. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
  98. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/base.py +0 -0
  99. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/http.py +0 -0
  100. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
  101. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
  102. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
  103. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
  104. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/templating.py +0 -0
  105. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/testclient.py +0 -0
  106. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/types.py +0 -0
  107. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/utils.py +0 -0
  108. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/fastapi/websockets.py +0 -0
  109. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/__init__.py +0 -0
  110. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/_compat.py +0 -0
  111. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
  112. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/_utils.py +0 -0
  113. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/applications.py +0 -0
  114. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/authentication.py +0 -0
  115. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/background.py +0 -0
  116. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/concurrency.py +0 -0
  117. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/config.py +0 -0
  118. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/convertors.py +0 -0
  119. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/datastructures.py +0 -0
  120. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/endpoints.py +0 -0
  121. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/exceptions.py +0 -0
  122. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/formparsers.py +0 -0
  123. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
  124. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
  125. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
  126. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
  127. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
  128. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
  129. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
  130. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
  131. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
  132. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
  133. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
  134. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/requests.py +0 -0
  135. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/responses.py +0 -0
  136. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/routing.py +0 -0
  137. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/schemas.py +0 -0
  138. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
  139. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/status.py +0 -0
  140. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/templating.py +0 -0
  141. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/testclient.py +0 -0
  142. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/types.py +0 -0
  143. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_vendor/starlette/websockets.py +0 -0
  144. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/_version.py +0 -0
  145. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/agent.py +0 -0
  146. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/artifacts.py +0 -0
  147. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/automations.py +0 -0
  148. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/__init__.py +0 -0
  149. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/abstract.py +0 -0
  150. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/core.py +0 -0
  151. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/fields.py +0 -0
  152. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/kubernetes.py +0 -0
  153. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/notifications.py +0 -0
  154. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/system.py +0 -0
  155. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/blocks/webhook.py +0 -0
  156. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/__init__.py +0 -0
  157. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/base.py +0 -0
  158. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/cloud.py +0 -0
  159. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/collections.py +0 -0
  160. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/constants.py +0 -0
  161. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/orchestration.py +0 -0
  162. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/__init__.py +0 -0
  163. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/filters.py +0 -0
  164. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/objects.py +0 -0
  165. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/responses.py +0 -0
  166. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/schedules.py +0 -0
  167. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/schemas/sorting.py +0 -0
  168. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/subscriptions.py +0 -0
  169. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/client/utilities.py +0 -0
  170. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/concurrency/__init__.py +0 -0
  171. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/concurrency/asyncio.py +0 -0
  172. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/concurrency/events.py +0 -0
  173. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/concurrency/services.py +0 -0
  174. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/concurrency/sync.py +0 -0
  175. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/context.py +0 -0
  176. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/__init__.py +0 -0
  177. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/deployments.py +0 -0
  178. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/runner.py +0 -0
  179. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/schedules.py +0 -0
  180. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/steps/__init__.py +0 -0
  181. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/steps/core.py +0 -0
  182. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/steps/pull.py +0 -0
  183. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deployments/steps/utility.py +0 -0
  184. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/__init__.py +0 -0
  185. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/data_documents.py +0 -0
  186. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/__init__.py +0 -0
  187. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/base.py +0 -0
  188. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/docker.py +0 -0
  189. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/file.py +0 -0
  190. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/orion.py +0 -0
  191. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/deprecated/packaging/serializers.py +0 -0
  192. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/engine.py +0 -0
  193. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/__init__.py +0 -0
  194. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/actions.py +0 -0
  195. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/cli/__init__.py +0 -0
  196. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/cli/automations.py +0 -0
  197. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/clients.py +0 -0
  198. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/filters.py +0 -0
  199. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/instrument.py +0 -0
  200. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/related.py +0 -0
  201. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/schemas/__init__.py +0 -0
  202. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/schemas/automations.py +0 -0
  203. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
  204. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/schemas/events.py +0 -0
  205. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/schemas/labelling.py +0 -0
  206. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/utilities.py +0 -0
  207. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/events/worker.py +0 -0
  208. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/exceptions.py +0 -0
  209. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/filesystems.py +0 -0
  210. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/flow_runs.py +0 -0
  211. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/futures.py +0 -0
  212. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/__init__.py +0 -0
  213. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/base.py +0 -0
  214. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/kubernetes.py +0 -0
  215. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/process.py +0 -0
  216. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
  217. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
  218. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
  219. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
  220. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
  221. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/input/__init__.py +0 -0
  222. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/input/actions.py +0 -0
  223. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/input/run_input.py +0 -0
  224. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/__init__.py +0 -0
  225. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/configuration.py +0 -0
  226. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/filters.py +0 -0
  227. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/formatters.py +0 -0
  228. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/handlers.py +0 -0
  229. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/highlighters.py +0 -0
  230. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/loggers.py +0 -0
  231. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/logging/logging.yml +0 -0
  232. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/manifests.py +0 -0
  233. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/new_flow_engine.py +0 -0
  234. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/new_task_engine.py +0 -0
  235. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/plugins.py +0 -0
  236. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/profiles.toml +0 -0
  237. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/py.typed +0 -0
  238. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/pydantic/__init__.py +0 -0
  239. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/pydantic/main.py +0 -0
  240. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/results.py +0 -0
  241. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/__init__.py +0 -0
  242. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/runner.py +0 -0
  243. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/server.py +0 -0
  244. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/storage.py +0 -0
  245. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/submit.py +0 -0
  246. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runner/utils.py +0 -0
  247. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runtime/__init__.py +0 -0
  248. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runtime/deployment.py +0 -0
  249. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runtime/flow_run.py +0 -0
  250. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/runtime/task_run.py +0 -0
  251. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/serializers.py +0 -0
  252. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
  253. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
  254. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/settings.py +0 -0
  255. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/software/__init__.py +0 -0
  256. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/software/base.py +0 -0
  257. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/software/conda.py +0 -0
  258. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/software/pip.py +0 -0
  259. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/software/python.py +0 -0
  260. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/states.py +0 -0
  261. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/task_engine.py +0 -0
  262. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/task_runners.py +0 -0
  263. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/task_server.py +0 -0
  264. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/tasks.py +0 -0
  265. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/types/__init__.py +0 -0
  266. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/__init__.py +0 -0
  267. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/annotations.py +0 -0
  268. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/asyncutils.py +0 -0
  269. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/collections.py +0 -0
  270. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/compat.py +0 -0
  271. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/context.py +0 -0
  272. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/dispatch.py +0 -0
  273. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/dockerutils.py +0 -0
  274. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/engine.py +0 -0
  275. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/filesystem.py +0 -0
  276. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/hashing.py +0 -0
  277. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/math.py +0 -0
  278. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/names.py +0 -0
  279. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/processutils.py +0 -0
  280. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/pydantic.py +0 -0
  281. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/render_swagger.py +0 -0
  282. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
  283. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
  284. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/schema_tools/validation.py +0 -0
  285. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/services.py +0 -0
  286. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/slugify.py +0 -0
  287. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/templating.py +0 -0
  288. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/text.py +0 -0
  289. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/timeout.py +0 -0
  290. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/utilities/visualization.py +0 -0
  291. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/variables.py +0 -0
  292. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/__init__.py +0 -0
  293. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/base.py +0 -0
  294. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/block.py +0 -0
  295. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/process.py +0 -0
  296. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/server.py +0 -0
  297. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect/workers/utilities.py +0 -0
  298. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect_client.egg-info/SOURCES.txt +0 -0
  299. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect_client.egg-info/dependency_links.txt +0 -0
  300. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect_client.egg-info/requires.txt +0 -0
  301. {prefect-client-2.19.3 → prefect-client-2.19.5}/src/prefect_client.egg-info/top_level.txt +0 -0
  302. {prefect-client-2.19.3 → prefect-client-2.19.5}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.19.3
3
+ Version: 2.19.5
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -778,7 +778,7 @@ class GlobalConcurrencyLimitUpdate(ActionBaseModel):
778
778
 
779
779
  name: Optional[str] = Field(None)
780
780
  limit: Optional[NonNegativeInteger] = Field(None)
781
- active: Optional[NonNegativeInteger] = Field(None)
781
+ active: Optional[bool] = Field(None)
782
782
  active_slots: Optional[NonNegativeInteger] = Field(None)
783
783
  slot_decay_per_second: Optional[NonNegativeFloat] = Field(None)
784
784
 
@@ -396,7 +396,13 @@ async def _find_flow_functions_in_file(filename: str) -> List[Dict]:
396
396
  return decorated_functions
397
397
 
398
398
  for node in ast.walk(tree):
399
- if isinstance(node, ast.FunctionDef):
399
+ if isinstance(
400
+ node,
401
+ (
402
+ ast.FunctionDef,
403
+ ast.AsyncFunctionDef,
404
+ ),
405
+ ):
400
406
  for decorator in node.decorator_list:
401
407
  # handles @flow
402
408
  is_name_match = (
@@ -106,7 +106,7 @@ from prefect.utilities.callables import (
106
106
  )
107
107
  from prefect.utilities.collections import listrepr
108
108
  from prefect.utilities.hashing import file_hash
109
- from prefect.utilities.importtools import import_object
109
+ from prefect.utilities.importtools import import_object, safe_load_namespace
110
110
  from prefect.utilities.visualization import (
111
111
  FlowVisualizationError,
112
112
  GraphvizExecutableNotFoundError,
@@ -1830,7 +1830,14 @@ def load_flow_argument_from_entrypoint(
1830
1830
  (
1831
1831
  node
1832
1832
  for node in ast.walk(parsed_code)
1833
- if isinstance(node, ast.FunctionDef) and node.name == func_name
1833
+ if isinstance(
1834
+ node,
1835
+ (
1836
+ ast.FunctionDef,
1837
+ ast.AsyncFunctionDef,
1838
+ ),
1839
+ )
1840
+ and node.name == func_name
1834
1841
  ),
1835
1842
  None,
1836
1843
  )
@@ -1843,11 +1850,33 @@ def load_flow_argument_from_entrypoint(
1843
1850
  ):
1844
1851
  for keyword in decorator.keywords:
1845
1852
  if keyword.arg == arg:
1846
- return (
1847
- keyword.value.value
1848
- ) # Return the string value of the argument
1853
+ if isinstance(keyword.value, ast.Constant):
1854
+ return (
1855
+ keyword.value.value
1856
+ ) # Return the string value of the argument
1857
+
1858
+ # if the arg value is not a raw str (i.e. a variable or expression),
1859
+ # then attempt to evaluate it
1860
+ namespace = safe_load_namespace(source_code)
1861
+ literal_arg_value = ast.get_source_segment(
1862
+ source_code, keyword.value
1863
+ )
1864
+ try:
1865
+ evaluated_value = eval(literal_arg_value, namespace) # type: ignore
1866
+ except Exception as e:
1867
+ logger.info(
1868
+ "Failed to parse @flow argument: `%s=%s` due to the following error. Ignoring and falling back to default behavior.",
1869
+ arg,
1870
+ literal_arg_value,
1871
+ exc_info=e,
1872
+ )
1873
+ # ignore the decorator arg and fallback to default behavior
1874
+ break
1875
+ return str(evaluated_value)
1849
1876
 
1850
1877
  if arg == "name":
1851
1878
  return func_name.replace(
1852
1879
  "_", "-"
1853
1880
  ) # If no matching decorator or keyword argument is found
1881
+
1882
+ return None
@@ -124,6 +124,12 @@ class BaseDockerLogin(Block, ABC):
124
124
  )
125
125
  class DockerRegistry(BaseDockerLogin):
126
126
  """
127
+ DEPRECATION WARNING:
128
+
129
+ This class is deprecated as of March 2024 and will not be available after September 2024.
130
+ It has been replaced by `DockerRegistryCredentials` from the `prefect-docker` package, which
131
+ offers enhanced functionality and better a better user experience.
132
+
127
133
  Connects to a Docker registry.
128
134
 
129
135
  Requires a Docker Engine to be connectable.
@@ -448,7 +448,14 @@ def _generate_signature_from_source(
448
448
  (
449
449
  node
450
450
  for node in ast.walk(parsed_code)
451
- if isinstance(node, ast.FunctionDef) and node.name == func_name
451
+ if isinstance(
452
+ node,
453
+ (
454
+ ast.FunctionDef,
455
+ ast.AsyncFunctionDef,
456
+ ),
457
+ )
458
+ and node.name == func_name
452
459
  ),
453
460
  None,
454
461
  )
@@ -456,6 +463,26 @@ def _generate_signature_from_source(
456
463
  raise ValueError(f"Function {func_name} not found in source code")
457
464
  parameters = []
458
465
 
466
+ # Handle annotations for positional only args e.g. def func(a, /, b, c)
467
+ for arg in func_def.args.posonlyargs:
468
+ name = arg.arg
469
+ annotation = arg.annotation
470
+ if annotation is not None:
471
+ try:
472
+ ann_code = compile(ast.Expression(annotation), "<string>", "eval")
473
+ annotation = eval(ann_code, namespace)
474
+ except Exception as e:
475
+ logger.debug("Failed to evaluate annotation for %s: %s", name, e)
476
+ annotation = inspect.Parameter.empty
477
+ else:
478
+ annotation = inspect.Parameter.empty
479
+
480
+ param = inspect.Parameter(
481
+ name, inspect.Parameter.POSITIONAL_ONLY, annotation=annotation
482
+ )
483
+ parameters.append(param)
484
+
485
+ # Determine the annotations for args e.g. def func(a: int, b: str, c: float)
459
486
  for arg in func_def.args.args:
460
487
  name = arg.arg
461
488
  annotation = arg.annotation
@@ -478,6 +505,7 @@ def _generate_signature_from_source(
478
505
  )
479
506
  parameters.append(param)
480
507
 
508
+ # Handle default values for args e.g. def func(a=1, b="hello", c=3.14)
481
509
  defaults = [None] * (
482
510
  len(func_def.args.args) - len(func_def.args.defaults)
483
511
  ) + func_def.args.defaults
@@ -493,6 +521,42 @@ def _generate_signature_from_source(
493
521
  default = None # Set to None if evaluation fails
494
522
  parameters[parameters.index(param)] = param.replace(default=default)
495
523
 
524
+ # Handle annotations for keyword only args e.g. def func(*, a: int, b: str)
525
+ for kwarg in func_def.args.kwonlyargs:
526
+ name = kwarg.arg
527
+ annotation = kwarg.annotation
528
+ if annotation is not None:
529
+ try:
530
+ ann_code = compile(ast.Expression(annotation), "<string>", "eval")
531
+ annotation = eval(ann_code, namespace)
532
+ except Exception as e:
533
+ logger.debug("Failed to evaluate annotation for %s: %s", name, e)
534
+ annotation = inspect.Parameter.empty
535
+ else:
536
+ annotation = inspect.Parameter.empty
537
+
538
+ param = inspect.Parameter(
539
+ name, inspect.Parameter.KEYWORD_ONLY, annotation=annotation
540
+ )
541
+ parameters.append(param)
542
+
543
+ # Handle default values for keyword only args e.g. def func(*, a=1, b="hello")
544
+ defaults = [None] * (
545
+ len(func_def.args.kwonlyargs) - len(func_def.args.kw_defaults)
546
+ ) + func_def.args.kw_defaults
547
+ for param, default in zip(parameters[-len(func_def.args.kwonlyargs) :], defaults):
548
+ if default is not None:
549
+ try:
550
+ def_code = compile(ast.Expression(default), "<string>", "eval")
551
+ default = eval(def_code, namespace)
552
+ except Exception as e:
553
+ logger.debug(
554
+ "Failed to evaluate default value for %s: %s", param.name, e
555
+ )
556
+ default = None
557
+ parameters[parameters.index(param)] = param.replace(default=default)
558
+
559
+ # Handle annotations for varargs and kwargs e.g. def func(*args: int, **kwargs: str)
496
560
  if func_def.args.vararg:
497
561
  parameters.append(
498
562
  inspect.Parameter(
@@ -504,7 +568,7 @@ def _generate_signature_from_source(
504
568
  inspect.Parameter(func_def.args.kwarg.arg, inspect.Parameter.VAR_KEYWORD)
505
569
  )
506
570
 
507
- # Handle return annotation
571
+ # Handle return annotation e.g. def func() -> int
508
572
  return_annotation = func_def.returns
509
573
  if return_annotation is not None:
510
574
  try:
@@ -536,7 +600,14 @@ def _get_docstring_from_source(source_code: str, func_name: str) -> Optional[str
536
600
  (
537
601
  node
538
602
  for node in ast.walk(parsed_code)
539
- if isinstance(node, ast.FunctionDef) and node.name == func_name
603
+ if isinstance(
604
+ node,
605
+ (
606
+ ast.FunctionDef,
607
+ ast.AsyncFunctionDef,
608
+ ),
609
+ )
610
+ and node.name == func_name
540
611
  ),
541
612
  None,
542
613
  )
@@ -379,7 +379,16 @@ def safe_load_namespace(source_code: str):
379
379
  """
380
380
  parsed_code = ast.parse(source_code)
381
381
 
382
- namespace = {}
382
+ namespace = {"__name__": "prefect_safe_namespace_loader"}
383
+
384
+ # Remove the body of the if __name__ == "__main__": block from the AST to prevent
385
+ # execution of guarded code
386
+ new_body = []
387
+ for node in parsed_code.body:
388
+ if _is_main_block(node):
389
+ continue
390
+ new_body.append(node)
391
+ parsed_code.body = new_body
383
392
 
384
393
  # Walk through the AST and find all import statements
385
394
  for node in ast.walk(parsed_code):
@@ -413,11 +422,11 @@ def safe_load_namespace(source_code: str):
413
422
  except ImportError as e:
414
423
  logger.debug("Failed to import from %s: %s", node.module, e)
415
424
 
416
- # Handle local class definitions
425
+ # Handle local definitions
417
426
  for node in ast.walk(parsed_code):
418
- if isinstance(node, (ast.ClassDef, ast.FunctionDef)):
427
+ if isinstance(node, (ast.ClassDef, ast.FunctionDef, ast.Assign)):
419
428
  try:
420
- # Compile and execute each class and function definition locally
429
+ # Compile and execute each class and function definition and assignment
421
430
  code = compile(
422
431
  ast.Module(body=[node], type_ignores=[]),
423
432
  filename="<ast>",
@@ -425,5 +434,25 @@ def safe_load_namespace(source_code: str):
425
434
  )
426
435
  exec(code, namespace)
427
436
  except Exception as e:
428
- logger.debug("Failed to compile class definition: %s", e)
437
+ logger.debug("Failed to compile: %s", e)
429
438
  return namespace
439
+
440
+
441
+ def _is_main_block(node: ast.AST):
442
+ """
443
+ Check if the node is an `if __name__ == "__main__":` block.
444
+ """
445
+ if isinstance(node, ast.If):
446
+ try:
447
+ # Check if the condition is `if __name__ == "__main__":`
448
+ if (
449
+ isinstance(node.test, ast.Compare)
450
+ and isinstance(node.test.left, ast.Name)
451
+ and node.test.left.id == "__name__"
452
+ and isinstance(node.test.comparators[0], ast.Constant)
453
+ and node.test.comparators[0].value == "__main__"
454
+ ):
455
+ return True
456
+ except AttributeError:
457
+ pass
458
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 2.19.3
3
+ Version: 2.19.5
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
File without changes