
    +#h                          G d  d      Z y)c                        e Zd ZddZd Z fdZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd ZddZddZddZddZd Zd Zd Zd Zd Zd Zd Z xZS )Examplec                     i | _         g | _        d | _        |r5t        |t	        |             r |j                   j                         | _         n'|r%t        |t              r|j                         | _         | j                   j                  |       y N)_store_demos_input_keys
isinstancetypecopydictupdate)selfbasekwargss      T/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dspy/primitives/example.py__init__zExample.__init__   sm     JtT$Z0++**,DK jt,))+DK 	6"    c                     |j                  d      r|j                  d      rt        || j                  v r| j                  |   S t        dt	        |       j
                   d| d      )N__'z' object has no attribute ')
startswithendswithAttributeErrorr   r
   __name__r   keys     r   __getattr__zExample.__getattr__   sc    >>$CLL$6  $++;;s##qd!4!4 55PQTPUUVWXXr   c                     |j                  d      s|t        | j                        v rt        |   ||       y || j
                  |<   y )N_)r   dir	__class__super__setattr__r   )r   r   valuer!   s      r   r#   zExample.__setattr__   s<    >>##T^^)<"<GU+$DKKr   c                      | j                   |   S r   r   r   s     r   __getitem__zExample.__getitem__!   s    {{3r   c                 "    || j                   |<   y r   r&   )r   r   r$   s      r   __setitem__zExample.__setitem__$   s     Cr   c                     | j                   |= y r   r&   r   s     r   __delitem__zExample.__delitem__'   s    KKr   c                     || j                   v S r   r&   r   s     r   __contains__zExample.__contains__*   s    dkk!!r   c                 v    t        | j                  D cg c]  }|j                  d      r| c}      S c c}w Ndspy_)lenr   r   )r   ks     r   __len__zExample.__len__-   s*    t{{H!!,,w2GAHIIHs   66c                     | j                   j                         D ci c]  \  }}|j                  d      r|| }}}d| dd| j                   dz   S c c}}w )Nr0   zExample()z (input_keys=)r   itemsr   r   )r   r2   vds       r   __repr__zExample.__repr__0   s^    "kk//1Odag9NQTOO!A=1A1A0B!!DDD Ps
   AAc                 "    | j                         S r   )r9   r   s    r   __str__zExample.__str__5   s    }}r   c                 X    t        |t              xr | j                  |j                  k(  S r   )r	   r   r   )r   others     r   __eq__zExample.__eq__8   s!    %)IdkkU\\.IIr   c                 Z    t        t        | j                  j                                     S r   )hashtupler   r6   r;   s    r   __hash__zExample.__hash__;   s    E$++++-.//r   c                     | j                   j                         D cg c]  }|j                  d      r|s| c}S c c}w r/   )r   keysr   )r   include_dspyr2   s      r   rE   zExample.keys>   s0    ;;++-[aQ\\'5Jl[[[s   ==c                     | j                   j                         D cg c]  \  }}|j                  d      r|s| c}}S c c}}w r/   r   r6   r   r   rF   r2   r7   s       r   valueszExample.valuesA   s5    "kk//1_dag9NR^___s
   AAc                     | j                   j                         D cg c]  \  }}|j                  d      r|s||f c}}S c c}}w r/   rH   rI   s       r   r6   zExample.itemsD   s9    #';;#4#4#6d41aall7>SWcAddds
   AAc                 :    | j                   j                  ||      S r   )r   get)r   r   defaults      r   rM   zExample.getG   s    {{sG,,r   c                 F    | j                         }t        |      |_        |S r   )r   setr   )r   rE   copieds      r   with_inputszExample.with_inputsJ   s     Yr   c                     | j                   t        d      | j                  D ci c]!  }|| j                   v s|| j                  |   # }} t        |       |      S c c}w )NzSInputs have not been set for this example. Use `example.with_inputs()` to set them.)r   
ValueErrorr   r
   )r   r   r8   s      r   inputszExample.inputsO   sd    #rss /3kkUsSDDTDT=TS$++c""UUtDz!} Vs
   AAc                     | j                         j                         }| j                  D ci c]  }||vs|| j                  |    }} t        |       |      S c c}w r   )rU   rE   r   r
   )r   
input_keysr   r8   s       r   labelszExample.labelsW   sX    [[]'')
.2kkSsS
=RS$++c""SStDz!} Ts
   	AAc                 >    t        t        | j                              S r   )iterr   r   r;   s    r   __iter__zExample.__iter__]   s    D%&&r   c                 (     t        |       dd| i|S )Nr    )r
   )r   r   s     r   r   zExample.copy`   s    tDz.t.v..r   c                 :    | j                         }|D ]  }||=  |S r   )r   )r   rE   rQ   r   s       r   withoutzExample.withoutc   s(     	Cs	r   c                 6    | j                   j                         S r   )r   r   r;   s    r   toDictzExample.toDicti   s    {{!!r   r   )F)r   
__module____qualname__r   r   r#   r'   r)   r+   r-   r3   r9   r<   r?   rC   rE   rJ   r6   rM   rR   rU   rX   r[   r   r_   ra   __classcell__)r!   s   @r   r   r      s}    #"Y% !"JE
J0\`e-
'/"r   r   N)r   r]   r   r   <module>re      s   h" h"r   