§
    +" hI  ã                  óŒ   — d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZ  G d„ d	e¦  «        Zd
„ Zdd„Zdd„ZdS )zJira utils used internally.é    )ÚannotationsN)ÚAnyÚcast)ÚResponse)ÚCaseInsensitiveDict)Úraise_on_errorc                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )r   a  A case-insensitive ``dict``-like object.

    DEPRECATED: use requests.structures.CaseInsensitiveDict directly.

    Implements all methods and operations of
    ``collections.MutableMapping`` as well as dict's ``copy``. Also
    provides ``lower_items``.

    All keys are expected to be strings. The structure remembers the
    case of the last key to be set, and ``iter(instance)``,
    ``keys()``, ``items()``, ``iterkeys()``
    will contain case-sensitive keys. However, querying and contains
    testing is case insensitive::

        cid = CaseInsensitiveDict()
        cid['Accept'] = 'application/json'
        cid['accept'] == 'application/json'  # True
        list(cid) == ['Accept']  # True

    For example, ``headers['content-encoding']`` will return the
    value of a ``'Content-Encoding'`` response header, regardless
    of how the header name was originally stored.

    If the constructor, ``.update``, or equality comparison
    operations are given keys that have equal ``.lower()`` s, the
    behavior is undefined.

    ÚreturnÚNonec                ón   •— t          j        dt          ¦  «          t          ¦   «         j        |i |¤Ž d S )Nz4Use requests.structures.CaseInsensitiveDict directly)ÚwarningsÚwarnÚDeprecationWarningÚsuperÚ__init__)ÚselfÚargsÚkwargsÚ	__class__s      €úMc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\jira/utils/__init__.pyr   zCaseInsensitiveDict.__init__-   sA   ø€ ÝŒØBÕDVñ	
ô 	
ð 	
ð 	�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)ó    )r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__classcell__)r   s   @r   r   r      sG   ø€ € € € € ðð ð:*ð *ð *ð *ð *ð *ð *ð *ð *ð *r   r   c                óú   — | D ]3\  }}}t          j        ||f||¬¦  «        }|                     ¦   «          Œ4t          j        ¦   «         D ]0}|j                             d¦  «        r|                     ¦   «          Œ1d S )N)Útargetr   r   ÚnameÚhttp)Ú	threadingÚThreadÚstartÚ	enumerater   Ú
startswithÚjoin)ÚrequestsÚfnÚurlÚrequest_argsÚths        r   Úthreaded_requestsr,   4   s‹   € Ø!)ð ð ÑˆˆC�ÝÔ R¨s¨f¸\ÐPSÐTÑTÔTˆØ
�Š‰
Œ
ˆ
ˆ
åÔ!Ñ#Ô#ð ð ˆØŒ7×Ò˜fÑ%Ô%ð 	Ø�GŠG‰IŒIˆIøðð r   ÚrespúResponse | Noner
   r   c                ó¨   — t          | ¦  «         t          t          | ¦  «        } 	 |                      ¦   «         S # t          $ r | j        si cY S ‚ w xY w)a  Attempts to load json the result of a response.

    Args:
        resp (Optional[Response]): The Response object

    Raises:
        JIRAError: via :py:func:`jira.resilientsession.raise_on_error`

    Returns:
        Union[List[Dict[str, Any]], Dict[str, Any]]: the json
    )r   r   r   ÚjsonÚ
ValueErrorÚtext)r-   s    r   Ú
json_loadsr3   >   se   € õ �4ÑÔÐÝ•˜$ÑÔ€DðØ�yŠy‰{Œ{ÐøÝð ð ð àŒyð 	ØˆIˆIˆIØð	øøøs   ¦: ºAÁAÚdataúdict[str, Any]c                ó>   — d„ |                       ¦   «         D ¦   «         S )zÄA convenience function to remove key/value pairs with `None` for a value.

    Args:
      data: A dictionary.

    Returns:
      Dict[str, Any]: A dictionary with no `None` key/value pairs.
    c                ó   — i | ]
\  }}|®||“ŒS )N© )Ú.0ÚkeyÚvals      r   ú
<dictcomp>z+remove_empty_attributes.<locals>.<dictcomp>^   s   € ÐEÐEÐE™˜˜c°S°_ˆC�°_°_°_r   )Úitems)r4   s    r   Úremove_empty_attributesr>   U   s!   € ð FÐE T§Z¢Z¡\¤\ÐEÑEÔEÐEr   )r-   r.   r
   r   )r4   r5   r
   r5   )r   Ú
__future__r   r!   r   Útypingr   r   r'   r   Úrequests.structuresr   Ú_CaseInsensitiveDictÚjira.resilientsessionr   r,   r3   r>   r8   r   r   ú<module>rD      só   ðØ !Ð !à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø KÐ KÐ KÐ KÐ KÐ Kà 0Ð 0Ð 0Ð 0Ð 0Ð 0ð"*ð "*ð "*ð "*ð "*Ð.ñ "*ô "*ð "*ðJð ð ðð ð ð ð.	Fð 	Fð 	Fð 	Fð 	Fð 	Fr   