o
    ۷i                     @   s^   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 de
dB ded	edB fd
dZdS )    )Any)CacheBackend)CacheDiTBackend)TeaCacheBackend)DiffusionCacheConfigcache_backendNcache_configreturnc                 C   sX   | du s| dkr
dS t |trt|}| dkrt|S | dkr$t|S td|  d)a  Get cache backend instance based on cache_backend string.

    This is a selector function that routes to the appropriate backend implementation.
    - cache_dit: Uses CacheDiTBackend with enable()/refresh() interface
    - tea_cache: Uses TeaCacheBackend with enable()/refresh() interface

    Args:
        cache_backend: Cache backend name ("cache_dit", "tea_cache", or None).
        cache_config: Cache configuration (dict or DiffusionCacheConfig instance).

    Returns:
        Cache backend instance (CacheDiTBackend or TeaCacheBackend) if cache_backend is set,
        None otherwise.

    Raises:
        ValueError: If cache_backend is unsupported.
    Nnone	cache_dit	tea_cachezUnsupported cache backend: z%. Supported: 'cache_dit', 'tea_cache')
isinstancedictr   	from_dictr   r   
ValueError)r   r    r   X/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm_omni/diffusion/cache/selector.pyget_cache_backend	   s   

r   )typingr   vllm_omni.diffusion.cache.baser   +vllm_omni.diffusion.cache.cache_dit_backendr   *vllm_omni.diffusion.cache.teacache.backendr   vllm_omni.diffusion.datar   strr   r   r   r   r   <module>   s    "