
    Գf                        d dl mZ d dlmZ ed   j                  Zd dlmZ g Z G d d      Z	 G d dej                        Z
 G d	 d
ej                        Z ee
      Z
ej                  d        ee      Zej                  d
       y)    )override)modulesDee)GLibc                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)
RowWrapperc                 .    || _         || _        d| _        y )NT)modelitr_RowWrapper__initialized)selfr
   r   s      2/usr/lib/python3/dist-packages/gi/overrides/Dee.py__init__zRowWrapper.__init__
   s    
!    c                 N    | j                   j                  | j                  |      S N)r
   	get_valuer   r   columns     r   __getitem__zRowWrapper.__getitem__   s    zz##DHHf55r   c                 R    | j                   j                  | j                  ||       y r   )r
   	set_valuer   )r   r   vals      r   __setitem__zRowWrapper.__setitem__   s    

dhh4r   c                     | j                   j                  |      }|dk  rt        d|z        | j                   j                  | j                  |      S )Nr   object has no attribute '%s')r
   get_column_indexAttributeErrorr   r   )r   name	col_indexs      r   __getattr__zRowWrapper.__getattr__   sI    JJ//6	q= !?$!FGGzz##TXXy99r   c                     d| j                   vr|| j                   |<   y | j                  j                  |      }|dk  rt        d|z        | j                  j	                  | j
                  ||       y )Nr   r   r   )__dict__r
   r   r   r   r   )r   r   valuer    s       r   __setattr__zRowWrapper.__setattr__   se    )T]]:"'DMM$JJ//6	q= !?$!FGG

dhh	59r   c              #      K   t        | j                  j                               D ]*  }| j                  j                  | j                  |       , y wr   )ranger
   get_n_columnsr   r   r   s     r   __iter__zRowWrapper.__iter__$   sB     DJJ4467 	:F**&&&99	:s   AAc                 6    | j                   j                         S r   )r
   r(   r   s    r   __len__zRowWrapper.__len__(   s    zz''))r   c                 F    ddj                  t        t        |             z  S )Nz(%s)z, )joinmapstrr+   s    r   __str__zRowWrapper.__str__+   s    		#c$-000r   c                     t        |t              sy| j                  |j                  k7  ry| j                  |j                  k(  S NF)
isinstancer   r
   r   r   others     r   __eq__zRowWrapper.__eq__.   s5    5*-::$xx599$$r   N)__name__
__module____qualname__r   r   r   r!   r%   r)   r,   r1   r7    r   r   r   r   	   s/    "
65:::*1%r   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)Modelc                 B    t         j                  j                  |        y r   )r   r=   r   r+   s    r   r   zModel.__init__7   s    		4 r   c                 8    | j                  t        |             y r   )set_schema_fulltupler   argss     r   
set_schemazModel.set_schema:   s    eDk*r   c                 8    | j                  t        |             y r   )set_column_names_fullrA   rB   s     r   set_column_nameszModel.set_column_names=   s    ""E$K0r   c                    | j                         }d gt        |      z  }t        |      dkD  rpt        |      D ]A  \  }}t        |t        j
                        r|||<   &t	        j
                  ||   |      ||<   C |j                  d       dkD  rt        d      |S | j                         }d gt        |      z  }t        |      dk(  rt        d      |j                         D ]  \  }	}|j                  |	      dkD  rL|j                  |	      }
t        |t        j
                        r|nt	        j
                  ||
   |      }|||
<   f| j                  |	      \  }}
|ret        |t        j
                        r|nt	        j
                  ||      }|	j                  d      }|dk  r|	n|	|dz   d  }||
   i ||
<   |||
   |<   t        d|	z         t        |      D ]$  \  }}|s	t	        j
                  ||   |      ||<   & t        t        |            D ]-  }||   	||   dk(  st	        j
                  ||   i       ||<   / |j                  d       }|dkD  r"||j                  d          }	t        d|	z        |S )	Nr   zNot all columns were setzColumn names were not setz::   zUnknown column name: %sza{sv}zColumn '%s' was not set)
get_schemalen	enumerater4   r   VariantcountRuntimeErrorget_column_namesitemsindexget_field_schemafindr'   )r   rC   kwargsschemaresultiargnamesdictscol_namer    variant
col_schemacolon_index
field_namerR   d	num_unsets                     r   
_build_rowzModel._build_row@   s   "#f+%t9q=#D/ =3c4<<0 #F1I $VAY <F1I	= ||D!A%"#=>>J G ))+EFS[(E5zQ"#>??!' Q#;;x(1, %H 5I%/T\\%BcU[\eUfhkHlG(/F9%,0,A,A(,K)J	!)3C)F#DLLYcehLi&.mmD&91<qXh{[\}~F^
 +3U95E7>i(4*+Dx+OPPQ" &e, Eqdll6%=!&DfUmE 3v;' <!9$g)= $VAY ;F1I<
 T*I1} d!34"#<x#GHHr   c                 D    | j                  | j                  ||            S r   )prepend_rowrc   r   rC   rU   s      r   prependzModel.prepends   s    v!>??r   c                 D    | j                  | j                  ||            S r   )
append_rowrc   rf   s      r   appendzModel.appendv   s    f =>>r   c                 F    | j                  || j                  ||            S r   )
insert_rowrc   )r   posrC   rU   s       r   insertzModel.inserty   s    T__T6%BCCr   c                 F    | j                  || j                  ||            S r   )insert_row_beforerc   )r   iterrC   rU   s       r   insert_beforezModel.insert_before|   s     %%tT__T6-JKKr   c                 (    | j                  |||      S r   )insert_row_sorted_with_sizesr   row_spec	sort_funcdatas       r   insert_row_sortedzModel.insert_row_sorted   s    --xDIIr   c                 H    | j                  | j                  ||      |d       S r   )ry   rc   r   rw   rC   rU   s       r   insert_sortedzModel.insert_sorted   s"    ""DOOD&$A9dSSr   c                 (    | j                  |||      S r   )find_row_sorted_with_sizesru   s       r   find_row_sortedzModel.find_row_sorted   s    ++Xy$GGr   c                 H    | j                  | j                  ||      |d       S r   )r   rc   r{   s       r   find_sortedzModel.find_sorted   s"      $//$"?DQQr   c                 @    t         j                  j                  |       S r   )r   r=   rJ   r+   s    r   rJ   zModel.get_schema   s    yy##D))r   c                 `    t         j                  j                  | ||      j                         S r   )r   r=   r   unpack)r   r   r   s      r   r   zModel.get_value   s$    yy""D#v6==??r   c                     t        j                  | j                  |      |      }t        |t              r| j                  |      }t        j                  j                  | |||       y r   )	r   rM   get_column_schemar4   intget_iter_at_rowr   r=   r   )r   r   r   r$   vars        r   r   zModel.set_value   sO    llD226:EBsC &&s+C		T34r   c                 \    t        |t              r| j                  |      }t        | |      S r   )r4   r   r   r   r   r   s     r   r   zModel.__getitem__   s)    sC &&s+C$$$r   c                     | j                         }t        |      D ]+  \  }}||k\  rt        d|z        | j                  |||       - y )Nz&Too many columns in row assignment: %s)r(   rL   
IndexErrorr   )r   r   rowmax_colr   r$   s         r   r   zModel.__setitem__   sP    $$'&_ 	0MFE  !IF!RSSNNC/	0r   c                     | |   S r   r;   r   s     r   get_rowzModel.get_row   s    Cyr   c              #      K   | j                         }| j                         }||k7  r*| j                  |       | j                  |      }||k7  r*t        wr   )get_first_iterget_last_iterr   nextStopIteration)r   r   lasts      r   r)   zModel.__iter__   sV     !!$!!$Tk,,s##))C.C Tk s   AAAc                 "    | j                         S r   )
get_n_rowsr+   s    r   r,   zModel.__len__   s      r   N)r8   r9   r:   r   rD   rG   rc   rg   rj   rn   rr   ry   r|   r   r   rJ   r   r   r   r   r   r)   r,   r;   r   r   r=   r=   5   so    !+11f@?DLJTHR*@5%
0!r   r=   c                       e Zd Zd Zd Zy)	ModelIterc                 B    t         j                  j                  |        y r   )r   r   r   r+   s    r   r   zModelIter.__init__   s    t$r   c                 R    t        |t              syt        |       t        |      k(  S r3   )r4   r   reprr5   s     r   r7   zModelIter.__eq__   s"    5),DzT%[((r   N)r8   r9   r:   r   r7   r;   r   r   r   r      s    %)r   r   N)gi.overridesr   gi.importerr   _introspection_moduler   gi.repositoryr   __all__r   r=   r   rj   r;   r   r   <module>r      s}    ! en** 
*% *%Xz!CII z!z) ) 	 w Y	 { r   