
    X-Ph+)              
      F   d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZ ddlmZmZmZmZmZmZ dD ]\  ZZ eeeegedeeefgd           d	D ]\  ZZ eeeegeeed
            edeegeded
           dD ]\  ZZ eeeegeeed
           dD ]\  ZZ eeeegeeed           dD ]\  ZZ edegez  eeed            edeegedeeddgd           dD ]\  ZZ eeeeeed            edeedeed            edegeded
            edeegeded
          Z edeeeged ed
            ed!eeged"ed
            ed#eged$e%            ed&eeged'e%          Z ed&eeeged(e%            ed)eeeged*e%          Z ed+eeged,e%          Z ed-eeged.e%          Z eg ed/eedefg0          Z  eeee
eged1e2          Z! eeee
eged3e2          Z" eeeeged4e2          Z# eg ed5eedefg0          Z$ eeged6e2          Z% eege	d7e2          Z& ed8eged9e%          Z' eeged:e2          Z( eeged;e2          Z) eeged<e2          Z* eeged=e2          Z+d>S )?a  Fallback primitive operations that operate on 'object' operands.

These just call the relevant Python C API function or a thin wrapper
around an API function. Most of these also have faster, specialized
ops that operate on some more specific types.

Many of these ops are given a low priority (0) so that specialized ops
will take precedence. If your specialized op doesn't seem to be used,
check that the priorities are configured properly.
    )annotations)	ERR_MAGIC	ERR_NEVER)bool_rprimitivec_int_rprimitivec_pyssize_t_rprimitivec_size_t_rprimitiveint_rprimitiveobject_pointer_rprimitiveobject_rprimitivepointer_rprimitive)ERR_NEG_INT	binary_op	custom_opfunction_op	method_opunary_op))z==   )z!=   )<r   )z<=   )>   )z>=   PyObject_RichCompare)name	arg_typesreturn_typec_function_name
error_kindextra_int_constantspriority))+PyNumber_Add)-PyNumber_Subtract)*PyNumber_Multiply)z//PyNumber_FloorDivide)/PyNumber_TrueDivide)%PyNumber_Remainder)z<<PyNumber_Lshift)z>>PyNumber_Rshift)&PyNumber_And)^PyNumber_Xor)|PyNumber_Or)@PyNumber_MatrixMultiply)r   r   r   r   r    r"   zbuiltins.divmodPyNumber_Divmod))z+=PyNumber_InPlaceAdd)z-=PyNumber_InPlaceSubtract)z*=PyNumber_InPlaceMultiply)z@=PyNumber_InPlaceMatrixMultiply)z//=PyNumber_InPlaceFloorDivide)z/=PyNumber_InPlaceTrueDivide)z%=PyNumber_InPlaceRemainder)z<<=PyNumber_InPlaceLshift)z>>=PyNumber_InPlaceRshift)z&=PyNumber_InPlaceAnd)z^=PyNumber_InPlaceXor)z|=PyNumber_InPlaceOr))z**CPyNumber_Power)z**=CPyNumber_InPlacePower)r   r   r   r    r   r"   ))r   rE   )r   PyNumber_Powerzbuiltins.powinPySequence_Containsr   )r   r   r   r   r    truncated_typeorderingr"   ))r%   PyNumber_Negative)r#   PyNumber_Positive)~PyNumber_Invert)r   arg_typer   r   r    r"   notPyObject_Not)r   rP   r   r   r    rJ   r"   zbuiltins.absPyNumber_Absolute__getitem__PyObject_GetItem__setitem__PyObject_SetItem__delitem__PyObject_DelItemzbuiltins.hashCPyObject_Hash)r   r   r   r   r    zbuiltins.getattrCPyObject_GetAttrCPyObject_GetAttr3zbuiltins.setattrPyObject_SetAttrzbuiltins.hasattrPyObject_HasAttrzbuiltins.delattrPyObject_DelAttrPyObject_CallFunctionObjArgs)r   r   r   r    var_arg_typer!   PyObject_Vectorcall)r   r   r   r    PyObject_VectorcallMethodPyObject_CallCPyObject_CallMethodObjArgsCPyObject_SizePyObject_Sizezbuiltins.iterPyObject_GetIterPyIter_NextCPyIter_NextCPy_GetAIterCPy_GetANextN),__doc__
__future__r   mypyc.ir.opsr   r   mypyc.ir.rtypesr   r   r   r	   r
   r   r   r   mypyc.primitives.registryr   r   r   r   r   r   opopidfuncname
c_function	arg_countpy_get_item_oppy_getattr_oppy_setattr_oppy_hasattr_oppy_delattr_op
py_call_oppy_vectorcall_oppy_vectorcall_method_oppy_call_with_kwargs_oppy_method_call_opgeneric_len_opgeneric_ssize_t_len_opiter_opnext_opnext_raw_opaiter_opanext_op     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypyc/primitives/generic_ops.py<module>r      s\  	 	 # " " " " " - - - - - - - -	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	                 HB I$&78%."$456      LB I$&78%      	 "34!%     LB I$&78%      U  NB
I$&78%"     M  IzK$%	1%"     
		 "34 )"V	 	 	 	  LB
 H"%      		 ""    	 !!'    	 "34!&   
		 "35FG &    
		 "34 &    	 !$    	 "34!'   	 "35FG!(    	 "35FG &   	 "34&   	 "34 &   Y!2"/01  
 9!	 ")
 
 
  $)!	 "/
 
 
  # "35FG!#	    I!1"/01     !$	   # !&#	    +	 !!&   ) !!!	   i !!"	   9 !!"	   9 !!"	  r   