
    +#h:
                     D    d dl Z d dlZd dlmZ  G d d      ZddZddZy)	    N)load_datasetc                         e Zd Zd fdZ xZS )GSM8Kc           	         t         |           d| _        t        dd      }|d   }|d   }g }g }t	        j                  |      D ]  }|d   }|d   j                         j                         }|d   d	k(  sJ d
j                  |d d       }	t        t        |d   j                  dd                  }|j                  t        ||	|              t	        j                  |      D ]  }|d   }|d   j                         j                         }|d   d	k(  sJ d
j                  |d d       }	t        t        |d   j                  dd                  }|j                  t        ||	|              t        j                  d      }
|
j                  |       t        j                  d      }
|
j                  |       |d d }|dd }|d d  }dd l}|D cg c]#  } |j"                  di |j%                  d      % }}|D cg c]#  } |j"                  di |j%                  d      % }}|D cg c]#  } |j"                  di |j%                  d      % }}|| _        || _        || _        y c c}w c c}w c c}w )NFgsm8kmaintraintestquestionanswerz#### , )r   gold_reasoningr   r      i   )super__init__
do_shuffler   tqdmstripsplitjoinstrintreplaceappenddictrandomRandomshuffledspyExamplewith_inputsr	   devr
   )selfdatasethf_official_trainhf_official_testofficial_trainofficial_testexampler   r   r   rngtrainsetdevsettestsetr$   x	__class__s                   P/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dspy/datasets/gsm8k.pyr   zGSM8K.__init__   s   w/#G,"6?yy!23 		iGz*HX&,,.446F":''' XXfSbk2NVBZ//R89:F!!$`f"gh		i yy!12 		hGz*HX&,,.446F":''' XXfSbk2NVBZ//R89:F  x_e!fg		h mmAN#mmAM"!$3'C("GOP!LDLL%1%11*=PPEKL,$,,##//
;LLFMN<4<<$!$00<NN 
	 QLNs   (I4(I94(I>)returnN)__name__
__module____qualname__r   __classcell__)r4   s   @r5   r   r      s    7 7    r   c                    	 |r"| j                         j                  d      d   } | j                         D cg c]  }t        d |D              s| c}d   } | j                  d      d   } dj                  | D cg c]  }|j	                         s| c}      } t        |       } | S c c}w c c}w # t        t        f$ r d} Y | S w xY w)N
r   c              3   <   K   | ]  }|j                           y wN)isdigit).0cs     r5   	<genexpr>z'parse_integer_answer.<locals>.<genexpr>I   s     :V1199;:Vs   r   .r   )r   r   anyr   r@   r   
ValueError
IndexError)r   only_first_linetokenrB   s       r5   parse_integer_answerrJ   C   s    \\^))$/2F &,\\^WEs:VPU:V7V%WXZ[c"1%V;qyy{!;<V M X; 
# M	s:   6B5 B+B+)B5 =B0B0B5 +
B5 5C
	C
c                     t        t        t        | j                                    t        t        t        |j                                    k(  S r?   )r   rJ   r   r   )goldpredtraces      r5   gsm8k_metricrO   U   s9    #C$456#>RSVW[WbWbSc>d:eeer;   )Tr?   )r!   r   datasetsr   r   rJ   rO   r   r;   r5   <module>rQ      s$      !8 8x$fr;   