
    9i8                         S SK JrJrJrJr  S SKrS SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJr  \" 5       r\R2                  " \R4                  \R6                  S9 " S S\5      5       rg)    )AnyDictOptionalUnionN)	Pipelines)OfaForAllTasks)ModelPipeline)	PIPELINES)batch_process)OfaPreprocessorPreprocessor)Tasks)
get_logger)module_namec                      ^  \ rS rSrSr SS\\\4   S\\	   4U 4S jjjr
U 4S jrS\\\4   S\\\4   4U 4S	 jjrS\\\4   S\\\4   4S
 jrSrU =r$ )SudokuPipeline   z
pipeline for sudoku solving
modelpreprocessorc                    > [         TU ]  " SXS.UD6  U R                  R                  5         UcF  [	        U R                  [
        5      (       a%  [        U R                  R                  5      U l        gSeg)zu
use `model` and `preprocessor` to create a pipeline for solving sudoku
Args:
    model: model id on modelscope hub.
)r   r   Nzno preprocessor is provided )	super__init__r   eval
isinstancer   r   	model_dirr   )selfr   r   kwargs	__class__s       p/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/pipelines/multi_modal/sudoku_pipeline.pyr   SudokuPipeline.__init__   sa     	JuJ6J

$**n55$3DJJ4H4H$I!33	      c                    > [        U R                  [        5      (       a  [        U R                  U5      $ [        [
        U ]  U5      $ N)r   r   r   r   r   r   _batch)r   datar    s     r!   r&   SudokuPipeline._batch)   s7    djj.11 T225d;;r#   inputsreturnc                    > [         R                  " 5          [        TU ]  " U40 UD6sS S S 5        $ ! , (       d  f       g = fr%   )torchno_gradr   forward)r   r)   forward_paramsr    s      r!   r.   SudokuPipeline.forward/   s'    ]]_7?6<^< __s	   2
A c                     U$ r%   r   )r   r)   s     r!   postprocessSudokuPipeline.postprocess4   s    r#   )r   r%   )__name__
__module____qualname____firstlineno____doc__r   r	   strr   r   r   r&   r   r   r.   r2   __static_attributes____classcell__)r    s   @r!   r   r      s     9=4eSj)4'54 4"<=d38n =%)#s(^=
$sCx. T#s(^  r#   r   )typingr   r   r   r   r,   modelscope.metainfor   modelscope.models.multi_modalr   modelscope.pipelines.baser	   r
   modelscope.pipelines.builderr   modelscope.pipelines.utilr   modelscope.preprocessorsr   r   modelscope.utils.constantr   modelscope.utils.loggerr   loggerregister_modulesudoku
ofa_sudokur   r   r#   r!   <module>rI      s`    - -  ) 8 5 2 3 B + .	 5<<Y5I5IJ"X " K"r#   