§
    Ài  ã                   ó:   — d Z ddlZddlmZ  G d„ de¦  «        ZdS )zlinebot.models.base module.é    Né   )Úutilsc                   ó„   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
edd
„¦   «         Zed„ ¦   «         Ze	 dd„¦   «         ZdS )ÚBasez;Base class of model.

    Suitable for JSON base data.
    c                 ó   — dS )z1__init__ method.

        :param kwargs:
        N© )ÚselfÚkwargss     úX/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/linebot/models/base.pyÚ__init__zBase.__init__   s	   € ð
 	ˆó    c                 ó*   — |                       ¦   «         S )z__str__ method.)Úas_json_string©r	   s    r   Ú__str__zBase.__str__$   s   € à×"Ò"Ñ$Ô$Ð$r   c                 ó    — t          | ¦  «        S )z__repr__ method.)Ústrr   s    r   Ú__repr__zBase.__repr__(   s   € å�4‰yŒyÐr   c                 óZ   — |o)|                       ¦   «         |                      ¦   «         k    S )z.__eq__ method.

        :param other:
        )Úas_json_dict©r	   Úothers     r   Ú__eq__zBase.__eq__,   s,   € ð
 ÐD˜×*Ò*Ñ,Ô,°×0BÒ0BÑ0DÔ0DÒDÐDr   c                 ó.   — |                       |¦  «         S )z.__ne__ method.

        :param other:
        )r   r   s     r   Ú__ne__zBase.__ne__3   s   € ð
 —;’;˜uÑ%Ô%Ð%Ð%r   c                 óR   — t          j        |                      ¦   «         d¬¦  «        S )zBReturn JSON string from this object.

        :rtype: str
        T)Ú	sort_keys)ÚjsonÚdumpsr   r   s    r   r   zBase.as_json_string:   s%   € õ
 Œz˜$×+Ò+Ñ-Ô-¸Ð>Ñ>Ô>Ð>r   c                 óò  — i }| j                              ¦   «         D ]Ú\  }}t          j        |¦  «        }t	          |t
          t          t          f¦  «        rpt          ¦   «         ||<   |D ][}t          |d¦  «        r.||          	                    | 
                    ¦   «         ¦  «         Œ@||          	                    |¦  «         Œ\Œ«t          |d¦  «        r| 
                    ¦   «         ||<   ŒÓ|�|||<   ŒÛ|S )zCReturn dictionary from this object.

        :return: dict
        r   )Ú__dict__Úitemsr   Úto_camel_caseÚ
isinstanceÚlistÚtupleÚsetÚhasattrÚappendr   )r	   ÚdataÚkeyÚvalueÚ	camel_keyÚitems         r   r   zBase.as_json_dictA   s  € ð
 ˆØœ-×-Ò-Ñ/Ô/ð 	(ð 	(‰JˆC�ÝÔ+¨CÑ0Ô0ˆIÝ˜%¥$­­sÐ!3Ñ4Ô4ð (Ý"&¡&¤&��Y‘Ø!ð 5ð 5�DÝ˜t ^Ñ4Ô4ð 5Ø˜Yœ×.Ò.¨t×/@Ò/@Ñ/BÔ/BÑCÔCÐCÐCà˜Yœ×.Ò.¨tÑ4Ô4Ð4Ð4ð	5õ ˜ Ñ/Ô/ð (Ø"'×"4Ò"4Ñ"6Ô"6��Y‘�ØÐ"Ø"'��Y‘øàˆr   Fc                 óf   — |r
 | dd|i|¤ŽS d„ |                      ¦   «         D ¦   «         } | di |¤ŽS )z˜Create a new instance from a dict.

        :param data: JSON dict
        :param bool use_raw_message: Using original Message key as attribute
        Úuse_raw_messagec                 ó>   — i | ]\  }}t          j        |¦  «        |“ŒS r   )r   Úto_snake_case)Ú.0r+   r,   s      r   ú
<dictcomp>z+Base.new_from_json_dict.<locals>.<dictcomp>b   s9   € ð 4ð 4ð 4Ù"˜˜Uõ Ô'¨Ñ,Ô,¨eð 4ð 4ð 4r   r   )r"   )Úclsr*   r0   Únew_datas       r   Únew_from_json_dictzBase.new_from_json_dictX   sb   € ð ð 	@Ø�3Ð?Ð? Ð?¸$Ð?Ð?Ð?ð4ð 4Ø&*§j¢j¡l¤lð4ñ 4ô 4ˆð ˆsˆˆ�XˆˆÐr   c                 ó~   — t          | |¦  «        r| S t          | t          ¦  «        r|                     | ¦  «        S dS )a  Get `cls` object w/ deserialization from json if needed.

        If data is instance of cls, return data.
        Else if data is instance of dict, create instance from dict.
        Else, return None.

        :param data:
        :param cls:
        :rtype: object
        N)r$   Údictr7   )r*   r5   s     r   Úget_or_new_from_json_dictzBase.get_or_new_from_json_dictg   sF   € õ �d˜CÑ Ô ð 	0ØˆKÝ˜�dÑ#Ô#ð 	0Ø×)Ò)¨$Ñ/Ô/Ð/àˆtr   Útypec                 óä   — t          | t          |                     ¦   «         ¦  «        ¦  «        r| S t          | t          ¦  «        r)| |         }||v r||                              | |¬¦  «        S dS )aœ  Get `cls` object w/ deserialization from json by using type key hint if needed.

        If data is instance of one of cls, return data.
        Else if data is instance of dict, create instance from dict.
        Else, return None.

        :param data:
        :param cls_map:
        :param type_key:
        :rtype: object
        :param bool use_raw_message: Using original Message key as attribute
        )r0   N)r$   r&   Úvaluesr9   r7   )r*   Úcls_mapÚtype_keyr0   Útype_vals        r   Ú$get_or_new_from_json_dict_with_typesz)Base.get_or_new_from_json_dict_with_typesz   sy   € õ  �d�E '§.¢.Ñ"2Ô"2Ñ3Ô3Ñ4Ô4ð 	cØˆKÝ˜�dÑ#Ô#ð 	cØ˜H”~ˆHØ˜7Ð"Ð"Ø˜xÔ(×;Ò;¸DÐRaÐ;ÑbÔbÐbàˆtr   N)F)r;   F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   Úclassmethodr7   Ústaticmethodr:   rA   r   r   r   r   r      sè   € € € € € ðð ð
ð ð ð%ð %ð %ðð ð ðEð Eð Eð&ð &ð &ð?ð ?ð ?ðð ð ð. ðð ð ñ „[ðð ðð ñ „\ðð$ à<Aðð ð ñ „\ðð ð r   r   )rE   r   Ú r   Úobjectr   r   r   r   ú<module>rJ      sh   ðð "Ð !ð €€€à Ð Ð Ð Ð Ð ðzð zð zð zð zˆ6ñ zô zð zð zð zr   