
    OJni                     h    d dl mZmZ d dlZd dlmZ  ej                  e       G d de             Z	y)    )ABCMetaabstractmethodNc                   J    e Zd ZdZddZddZddZed        Zedd       Z	y)	AbstractRuntimez0
    Abstract base class for runtime class.
    Nc                 F    | j                  d|      j                  |      S )zExecute source by JavaScript runtime and return all output to stdout as a string.

        source -- JavaScript code to execute.
        cwd -- Directory where call JavaScript runtime. It may be ignored in some derived class.
         cwd)compileexec_selfsourcer
   s      I/home/uftp/myenv/lib/python3.12/site-packages/execjs/_abstract_runtime.pyr   zAbstractRuntime.exec_   s"     ||BC|(..v66    c                 F    | j                  d|      j                  |      S )zEvaluate source in JavaScript runtime.

        source -- JavaScript code to evaluate.
        cwd -- Directory where call JavaScript runtime. It may be ignored in some derived class.
        r   r	   )r   evalr   s      r   r   zAbstractRuntime.eval   s"     ||BC|(--f55r   c                 h    | j                         st        j                  | j                  ||      S )zBulk source as a context object. The source can be used to execute another code.

        source -- JavaScript code to bulk.
        cwd -- Directory where call JavaScript runtime. It may be ignored in some derived class.
        r	   )is_available
exceptionsRuntimeUnavailableError_compiler   s      r   r   zAbstractRuntime.compile   s/       "444}}V}--r   c                     t         NNotImplementedError)r   s    r   r   zAbstractRuntime.is_available%       !!r   c                     t         r   r   r   s      r   r   zAbstractRuntime._compile)   r   r   r   )
__name__
__module____qualname____doc__r   r   r   r   r   r    r   r   r   r      s>    76. " " " "r   r   )
abcr   r   sixexecjs._exceptions_exceptionsr   add_metaclassobjectr   r#   r   r   <module>r*      s6    ' 
 ' 7$"f $" $"r   