+
    Spj                        ^ RI Ht ^ RIt^ RIHt ^ RIt^ RIHt R R ltR R lt	R	 R
 lt
R R ltR R lt]P                  tR R ltR R ltR R ltR# )    )annotationsN)Mapping)	TypeGuardc                    V ^8  d   QhRRRR/# )   xobjectreturnz+TypeGuard[collections.abc.Sequence[object]] )formats   "@/tmp/pip-target-d46v3snk/lib/python/_pytest/assertion/_guards.py__annotate__r   	   s     N N& NH N    c                    \        V \        P                  P                  4      ;'       d    \        V \        4      '       * # N)
isinstancecollectionsabcSequencestrr   s   &r   
issequencer   	   s+    a112MM:a;M7MMr   c                    V ^8  d   QhRRRR/# )r   r   r	   r
   zTypeGuard[str]r   )r   s   "r   r   r      s      f  r   c                "    \        V \        4      # r   )r   r   r   s   &r   istextr      s    ar   c                    V ^8  d   QhRRRR/# )r   r   r	   r
   z"TypeGuard[Mapping[object, object]]r   )r   s   "r   r   r      s     " " "> "r   c                "    \        V \        4      # r   )r   r   r   s   &r   	ismappingr      s    a!!r   c                    V ^8  d   QhRRRR/# )r   r   r	   r
   z*TypeGuard[set[object] | frozenset[object]]r   )r   s   "r   r   r      s     * *V *B *r   c                8    \        V \        \        ,          4      # r   )r   set	frozensetr   s   &r   issetr#      s    ay))r   c                    V ^8  d   QhRRRR/# r   objr	   r
   boolr   )r   s   "r   r   r      s     P Pf P Pr   c                P    \        V \        4      ;'       d    \        V R R4      RJ# )_fieldsN)r   tuplegetattrr&   s   &r   isnamedtupler-      s%    c5!OOgc9d&C4&OOr   c                    V ^8  d   QhRRRR/# r%   r   )r   s   "r   r   r       s     = = =D =r   c                     \        V R R4      RJ# )__attrs_attrs__N)r+   r,   s   &r   isattrsr1       s    3)40<<r   c                    V ^8  d   QhRRRR/# )r   r&   r	   r
   z+TypeGuard[collections.abc.Iterable[object]]r   )r   s   "r   r   r   $   s      F J r   c                ^     \        V 4       \        V 4      '       * #   \         d     R # i ; i)F)iterr   	Exceptionr,   s   &r   
isiterabler6   $   s,    S	#; s    ,,c                    V ^8  d   QhRRRR/# r%   r   )r   s   "r   r   r   ,   s       4 r   c                    \        V P                  R4      '       db   \        V P                  P                  R4      '       d<   V P                  P                  P                  p\	        V 4      '       d   RV9   # VR8H  # R# )a|  Check if an instance of an object contains the default eq

First, we check if the object's __eq__ attribute has __code__,
if so, we check the equally of the method code filename (__code__.co_filename)
to the default one generated by the dataclass and attr module
for dataclasses the default co_filename is <string>, for attrs class, the __eq__ should contain "attrs eq generated"
__code__co_filenamezattrs generated z<string>T)hasattr__eq__r9   r:   r1   )r&   code_filenames   & r   has_default_eqr>   ,   sb     szz:&&73::3F3F+V+V

++773<<%66
**r   )
__future__r   collections.abcr   r   dataclassestypingr   r   r   r   r#   r-   is_dataclass	isdataclsr1   r6   r>   r   r   r   <module>rE      sK    "  #  N"*P $$	=r   