PrefectHQ / prefect

Prefect is a workflow orchestration tool empowering developers to build, observe, and react to data pipelines
https://prefect.io
Apache License 2.0
15.29k stars 1.5k forks source link

prefect_kubernetes not compatible with tenacity==8.4.0 #14069

Closed ibabeo closed 1 week ago

ibabeo commented 1 week ago

First check

Bug summary

Env: prefect_kubernetes==0.3.7 tenacity==8.4.0

Description: tenacity has just released a new version 8.4.0 which breaks prefect_kubernetes

Reproduction

import prefect_kubernets

Error

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Cell In[3], line 1
----> 1 import prefect_kubernetes

File ~\Lib\site-packages\prefect_kubernetes\__init__.py:5
      3 from prefect_kubernetes.flows import run_namespaced_job  # noqa F401
      4 from prefect_kubernetes.jobs import KubernetesJob  # noqa F401
----> 5 from prefect_kubernetes.worker import KubernetesWorker  # noqa F401
      8 __version__ = _version.get_versions()["version"]

File ~\Lib\site-packages\prefect_kubernetes\worker.py:144
    141 else:
    142     from pydantic import Field, validator
--> 144 from tenacity import retry, stop_after_attempt, wait_fixed, wait_random
    145 from typing_extensions import Literal
    147 from prefect_kubernetes.events import KubernetesEventsReplicator

File ~\Lib\site-packages\tenacity\__init__.py:653
    648             return r.wraps(f)
    650         return wrap
--> 653 from tenacity.asyncio import AsyncRetrying  # noqa:E402,I100
    655 if tornado:
    656     from tenacity.tornadoweb import TornadoRetrying

ModuleNotFoundError: No module named 'tenacity.asyncio'

Versions

Version:             2.16.9
API version:         0.8.4
Python version:      3.11.9
Git commit:          xxxxxxx
Built:               Thu, Apr 4, 2024 3:11 PM
OS/Arch:             win32/AMD64
Profile:             default
Server type:         cloud

Additional context

Works with tenacity==8.3.0

jakekaplan commented 1 week ago

Hi, thanks for filing this issue. This seems to be an issue with tenacity. It looks they've patched this in the 8.4.1 release, which came out about an hour ago: https://github.com/jd/tenacity/releases/tag/8.4.1.