o
    vi
                     @   sL   d dl Z d dlmZmZ d dlmZ d dlZd dlmZ G dd deZ	dS )    N)ABCabstractmethod)Optional)	CRED_ENVSc                   @   s
  e Zd Zd$dee fddZedd Zedej	dej	fd	d
Z
edej	dej	fddZededefddZededefddZeedd Zeedd Zeedd Zeedd Zeedd ZeedefddZed d! Zed"d# ZdS )%VideoTokenizerInterfaceNs3_credential_pathc                 C   s`   |d u st |tsJ |d u rd | _d S tj|stjdv r(dd |d| _d S td| d)N)proddevstgs3)backendpath_mappingr   zInvalid s3_credential_path: z  and APP_ENV is not prod/dev/stg)	
isinstancestrbackend_argsospathexistsr   APP_ENVFileNotFoundError)selfr    r   V/data/cameron/vidgen/cosmos-policy/cosmos_policy/_src/predict2/tokenizers/interface.py__init__   s   
z VideoTokenizerInterface.__init__c                 C      dS )zj
        Reset the dtype of the model to the dtype its weights were trained with or quantized to.
        Nr   r   r   r   r   reset_dtype'   s   z#VideoTokenizerInterface.reset_dtypestatereturnc                 C      d S Nr   )r   r   r   r   r   encode.      zVideoTokenizerInterface.encodelatentc                 C   r   r    r   )r   r#   r   r   r   decode2   r"   zVideoTokenizerInterface.decodenum_pixel_framesc                 C   r   r    r   )r   r%   r   r   r   get_latent_num_frames6   r"   z-VideoTokenizerInterface.get_latent_num_framesnum_latent_framesc                 C   r   r    r   )r   r'   r   r   r   get_pixel_num_frames:   r"   z,VideoTokenizerInterface.get_pixel_num_framesc                 C   r   r    r   r   r   r   r   spatial_compression_factor>      z2VideoTokenizerInterface.spatial_compression_factorc                 C   r   r    r   r   r   r   r   temporal_compression_factorC   r*   z3VideoTokenizerInterface.temporal_compression_factorc                 C   r   r    r   r   r   r   r   spatial_resolutionH   r*   z*VideoTokenizerInterface.spatial_resolutionc                 C   r   r    r   r   r   r   r   pixel_chunk_durationM   r*   z,VideoTokenizerInterface.pixel_chunk_durationc                 C   r   r    r   r   r   r   r   latent_chunk_durationR   r*   z-VideoTokenizerInterface.latent_chunk_durationc                 C   r   r    r   r   r   r   r   	latent_chW   r*   z!VideoTokenizerInterface.latent_chc                 C   r   )NFr   r   r   r   r   is_chunk_overlap\   r"   z(VideoTokenizerInterface.is_chunk_overlapc                 C   r   )NTr   r   r   r   r   	is_causal`   r"   z!VideoTokenizerInterface.is_causalr    )__name__
__module____qualname__r   r   r   r   r   torchTensorr!   r$   intr&   r(   propertyr)   r+   r,   r-   r.   r/   r0   r1   r   r   r   r   r      sD    

r   )
r   abcr   r   typingr   r5   ?cosmos_policy._src.imaginaire.utils.env_parsers.cred_env_parserr   r   r   r   r   r   <module>   s   