§
    òŽ’já  ã                   ó,   — d dl mZ  G d„ d¦  «        ZdS )é    )ÚAnyc                   óZ   — e Zd Zd	d„Zedededefd„¦   «         Zededefd„¦   «         ZdS )
ÚObjectComparerÚreturnNc                 ó   — d S ©N© )Úselfs    úOC:\Projects\DSCons\.venv\Lib\site-packages\json_repair\utils\object_comparer.pyÚ__init__zObjectComparer.__init__   s   € Øˆó    Úobj1Úobj2c                 óV  ‡ ‡— t          ‰ ¦  «        t          ‰¦  «        urdS t          ‰ t          ¦  «        rot          ‰t          ¦  «        r t          ‰ ¦  «        t          ‰¦  «        k    rdS ‰ D ]3}|‰vr dS t                               ‰ |         ‰|         ¦  «        s dS Œ4dS t          ‰ t          ¦  «        rmt          ‰t          ¦  «        r t          ‰ ¦  «        t          ‰¦  «        k    rdS t          ˆ ˆfd„t          t          ‰ ¦  «        ¦  «        D ¦   «         ¦  «        S dS )z…
        Recursively compares two objects and ensures that:
        - Their types match
        - Their keys/structure match
        FTc              3   óf   •K  — | ]+}t                                ‰|         ‰|         ¦  «        V — Œ,d S r   )r   Úis_same_object)Ú.0Úir   r   s     €€r   ú	<genexpr>z0ObjectComparer.is_same_object.<locals>.<genexpr>$   s;   øè è € ÐaÐaÈ1•~×4Ò4°T¸!´W¸dÀ1¼gÑFÔFÐaÐaÐaÐaÐaÐar   )	ÚtypeÚ
isinstanceÚdictÚlenr   r   ÚlistÚallÚrange)r   r   Úkeys   `` r   r   zObjectComparer.is_same_object   s1  øø€ õ �‰:Œ:�T $™ZœZÐ'Ð'à�5å�d�DÑ!Ô!ð 
	å˜d¥DÑ)Ô)ð ­S°©Y¬Y½#¸d¹)¼)Ò-CÐ-CØ�uØð !ð !�Ø˜d�?�?Ø ˜5˜5å%×4Ò4°T¸#´YÀÀSÄ	ÑJÔJð !Ø ˜5˜5ð!à�4å�d�DÑ!Ô!ð 	bå˜d¥DÑ)Ô)ð ­S°©Y¬Y½#¸d¹)¼)Ò-CÐ-CØ�uåÐaÐaÐaÐaÐaÕPUÕVYÐZ^ÑV_ÔV_ÑP`ÔP`ÐaÑaÔaÑaÔaÐað ˆtr   Úvaluec                 ó’   — t          | t          t          z  t          z  t          z  t
          z  ¦  «        ot          | ¦  «        dk    S )zŸ
        Returns True if value is an empty container (str, list, dict, set, tuple).
        Returns False for non-containers like None, 0, False, etc.
        r   )r   Ústrr   r   ÚsetÚtupler   )r   s    r   Úis_strictly_emptyz ObjectComparer.is_strictly_empty)   s7   € õ ˜%¥¥t¡­dÑ!2µSÑ!8½5Ñ!@ÑAÔAÐUÅcÈ%ÁjÄjÐTUÂoÐUr   )r   N)	Ú__name__Ú
__module__Ú__qualname__r   Ústaticmethodr   Úboolr   r#   r	   r   r   r   r      s”   € € € € € ðð ð ð ð ð˜Sð ¨ð °ð ð ð ñ „\ðð@ ðV ð V¨ð Vð Vð Vñ „\ðVð Vð Vr   r   N)Útypingr   r   r	   r   r   ú<module>r*      sS   ðØ Ð Ð Ð Ð Ð ð+Vð +Vð +Vð +Vð +Vñ +Vô +Vð +Vð +Vð +Vr   