Skip to main content
Glama

ClickUp Operator

by noah-vh
datastructures.cpython-312.pyc39.3 kB
� �MMg>W� ��ddlmZddlZddlmZddlmZmZmZmZddl m Z ddl m Z Gd�dej�Zejd �Zejd d � �ZGd �d�ZGd�de�ZGd�d�ZGd�dej,e�ZGd�dej0eef�ZGd�deej4ej4f�ZGd�deeef�ZGd�d�ZGd�deeej<eeff�ZGd�d ej0eef�Z Gd!�d"e �Z!Gd#�d$�Z"y)%�)� annotationsN)�shlex)� SplitResult� parse_qsl� urlencode�urlsplit)�run_in_threadpool)�Scopec�"�eZdZUded<ded<y)�Address�str�host�int�portN)�__name__� __module__� __qualname__�__annotations__���dC:\Users\noahv\Documents\GitHub\clickup-operator\.venv\Lib\site-packages\starlette/datastructures.pyr r s �� �I� �Irr �_KeyType�_CovariantValueTypeT)� covariantc�&�eZdZ d dd�Zedd��Zedd��Zedd��Zedd��Zedd��Z edd��Z edd ��Z edd ��Z edd ��Z edd ��Zedd ��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zy)�URLNc �0�|��|rJd��|rJd��|jdd�}|jdd�}|d}|jdd�}d}|d D]\} } | d k(s� | jd �}n|� |�d |�|��}n/|�|}n*|\} } d dd dd�|} | | k(r |�d | �|��}n |�d | �d| �|��}|r\|d|j�zz }||_y|r<|rJd��td�jdi|��jj �}||_y)Nz"Cannot set both "url" and "scope".z+Cannot set both "scope" and "**components".�scheme�http�server�path� query_stringr�headersshost�latin-1z://�Pi�)r�https�ws�wss�:�?z)Cannot set both "url" and "**components".�r)�get�decoder�replace� components�geturl�_url)�self�url�scoper/rr r!r"� host_header�key�valuerr� default_ports r�__init__z URL.__init__sl�� � �� @�@� @�7�!� P�#P� P�>��Y�Y�x��0�F��Y�Y�x��.�F���=�D� �9�9�^�S�9�L��K�#�I�.� ��U��'�>�"'�,�,�y�"9�K��/� �&����K�=���7������#� ��d�(*�S��3�O�PV�W� ��<�'�#�H�C��v�d�V�4�C�#�H�C��v�Q�t�f�T�F�;�C���s�\�0�0�2�2�2�� �� � �� G�G� G�7�!�#�b�'�/�/�/�J�/�:�:�A�A�C�C��� rc�f�t|d�st|j�|_|jS)N� _components)�hasattrrr1r;�r2s rr/zURL.components@s)���t�]�+�'�� � �2�D� ����rc�.�|jjS�N)r/rr=s rrz URL.schemeF������%�%�%rc�.�|jjSr?)r/�netlocr=s rrBz URL.netlocJr@rc�.�|jjSr?)r/r!r=s rr!zURL.pathN������#�#�#rc�.�|jjSr?)r/�queryr=s rrFz URL.queryRs�����$�$�$rc�.�|jjSr?)r/�fragmentr=s rrHz URL.fragmentV������'�'�'rc�.�|jjSr?)r/�usernamer=s rrKz URL.usernameZrIrc�.�|jjSr?)r/�passwordr=s rrMz URL.password^rIrc�.�|jjSr?)r/�hostnamer=s rrOz URL.hostnamebrIrc�.�|jjSr?)r/rr=s rrzURL.portfrDrc��|jdvS)N)r&r()rr=s r� is_securez URL.is_securejs���{�{�.�.�.rc �0�d|vs d|vsd|vsd|vr�|jdd�}|jd|j�}|jd|j�}|jd|j�}|�>|j}|j d�\}}}|ddk7r|j dd �d }|}|�|d|��z }|�|}|�|d|��z }|�d|��}||d <|jjd i|��} |j| j��S) NrKrMrOr�@������]r)�rrBr) �poprrKrMrB� rpartition�rsplitr/�_replace� __class__r0) r2�kwargsrOrrKrMrB�_�userpassr/s rr.z URL.replacens:�� �� �:��#7�:��;O�SY�]c�Sc��z�z�*�d�3�H��:�:�f�d�i�i�0�D��z�z�*�d�m�m�<�H��z�z�*�d�m�m�<�H�������!'�!2�!2�3�!7���1�h��B�<�3�&�'���s�A�6�q�9�H��F����A�d�V�*�$���#�#���'��!�H�:��.�H�$�:�Q�v�h�/��%�F�8� �-�T�_�_�-�-�7��7� ��~�~�j�/�/�1�2�2rc �.�tt|jd���}|j|j �D��cic]\}}t |�t |���c}}�t |j��}|j|��Scc}}w�NT��keep_blank_values�rF) � MultiDictrrF�update�itemsr r� multi_itemsr.)r2r]�paramsr6r7rFs r�include_query_paramszURL.include_query_params�ss���9�T�Z�Z�4�H�I��� � �f�l�l�n�M�n� ��U�s�3�x��U��+�n�M�N��&�,�,�.�/���|�|�%�|�(�(��Ns�B c ��t|j�D��cgc]\}}t|�t|�f��c}}�}|j|��Scc}}w)Nrd)rrgr r.)r2r]r6r7rFs r�replace_query_paramszURL.replace_query_params�sI���F�L�L�N�S�N�j�c�5�C��H�c�%�j�1�N�S�T���|�|�%�|�(�(��Ts� A c���t|t�r|g}tt|jd���}|D]}|j |d��t |j��}|j|��Sra) � isinstancer rerrFrXrrhr.)r2�keysrir6rFs r�remove_query_paramszURL.remove_query_params�sd�� �d�C� ��6�D��9�T�Z�Z�4�H�I���C� �J�J�s�D� !���&�,�,�.�/���|�|�%�|�(�(rc�0�t|�t|�k(Sr?)r �r2�others r�__eq__z URL.__eq__�s���4�y�C��J�&�&rc��|jSr?)r1r=s r�__str__z URL.__str__�s ���y�y�rc��t|�}|jrt|jd���}|jj�dt |��d�S)Nz********)rM�(�))r rMr.r\r�repr)r2r3s r�__repr__z URL.__repr__�sI���$�i�� �=�=��d�l�l�J�l�7�8�C��.�.�)�)�*�!�D��I�;�a�8�8r)r+N)r3r r4z Scope | Noner/� typing.Any�return�None)r}r�r}r )r}z None | str)r}� int | None�r}�bool)r]r|r}r)ro�str | typing.Sequence[str]r}r�rsr|r}r�)rrrr9�propertyr/rrBr!rFrHrKrMrOrrRr.rjrlrprtrvr{rrrrrs5���"�&� �&��&�!� &� � &�P� �� � �&��&��&��&��$��$��%��%��(��(��(��(��(��(��(��(��$��$��/��/�3�8)� )�)�'��9rrc�,�eZdZdZddd�Zddd�Zd d�Zy) �URLPathz� A URL path string that may also hold an associated protocol and/or host. Used by the routing to return `url_path_for` matches. c�:�|dvsJ�tj||�S)N)r� websocketr+)r �__new__)�clsr!�protocolrs rr�zURLPath.__new__�s"���4�4�4�4��{�{�3��%�%rc� �||_||_yr?)r�r)r2r!r�rs rr9zURLPath.__init__�s�� �� ��� rc�R�t|t�r t|�}|jr&ddd�ddd�d�|j|j}n |j }|j xs |j}|jjd�t|�z}t|||��S) Nr&r)TFr(r')rr��/)rrBr!) rnr rr�rRrrrBr!�rstrip)r2�base_urlrrBr!s r�make_absolute_urlzURLPath.make_absolute_url�s��� �h�� $��8�}�H� �=�=�&�v�6�$)�$�7���m�m��&�/�/�1�F� �_�_�F����-�h�o�o���}�}�#�#�C�(�3�t�9�4���&��d�;�;rN)r+r+)r!r r�r rr r}r�)r!r r�r rr r}r~)r�z str | URLr}r)rrr�__doc__r�r9r�rrrr�r��s��� &�� <rr�c�0�eZdZdZdd�Zdd�Zdd�Zd d�Zy) �Secretz� Holds a string value that should not be revealed in tracebacks etc. You should cast the value to `str` at the point it is required. c��||_yr?��_value)r2r7s rr9zSecret.__init__�s ���� rc�8�|jj}|�d�S)Nz('**********')�r\r)r2� class_names rr{zSecret.__repr__�s���^�^�,�,� ���^�,�,rc��|jSr?r�r=s rrvzSecret.__str__�s ���{�{�rc�,�t|j�Sr?)r�r�r=s r�__bool__zSecret.__bool__�����D�K�K� � rN)r7r rr�)rrrr�r9r{rvr�rrrr�r��s��� �-��!rr�c�<�eZdZdd�Zd d�Zd d�Zd d�Zd d�Zd d�Zy) �CommaSeparatedStringsc���t|t�r?t|d��}d|_d|_|D�cgc]}|j ���c}|_yt|�|_ycc}w)NT)�posix�,)rnr r� whitespace�whitespace_split�strip�_items�list)r2r7�splitter�items rr9zCommaSeparatedStrings.__init__�sT�� �e�S� !��U�$�/�H�"%�H� �(,�H� %�4<�=�H�D�4�:�:�<�H�=�D�K��u�+�D�K��>s�A!c�,�t|j�Sr?)�lenr�r=s r�__len__zCommaSeparatedStrings.__len__�s���4�;�;��rc� �|j|Sr?)r�)r2�indexs r� __getitem__z!CommaSeparatedStrings.__getitem__�s���{�{�5�!�!rc�,�t|j�Sr?)�iterr�r=s r�__iter__zCommaSeparatedStrings.__iter__�r�rc�f�|jj}|D�cgc]}|��}}|�d|�d�Scc}w�Nrxryr�)r2r�r�rgs rr{zCommaSeparatedStrings.__repr__�s=���^�^�,�,� �"&�'�$�$��$��'���Q�u�i�q�)�)��(s� .c�2�djd�|D��S)N�, c3�2K�|]}t|����y�wr?)rz)�.0r�s r� <genexpr>z0CommaSeparatedStrings.__str__.<locals>.<genexpr>�s����5����d���s�)�joinr=s rrvzCommaSeparatedStrings.__str__�s���y�y�5��5�5�5rN)r7r��r}r)r�z int | slicer}r|)r}ztyping.Iterator[str]r) rrrr9r�r�r�r{rvrrrr�r��s ��&� �"�!�*� 6rr�c��eZdZUded< dd�Zdd�Zdd�Zdd�Zdd�Zdd�Z dd �Z dd �Z dd �Z dd �Z dd �Zdd�Zy)�ImmutableMultiDictz#dict[_KeyType, _CovariantValueType]�_dictc��t|�dksJd��|r|dng}|r3t|�j�t|�j�z}|sg}n�t|d�rAt j tt tf|�}t|j��}nxt|d�rKt j tjt tf|�}t|j��}n!t j d|�}t|�}|D��cic]\}}||�� c}}|_ ||_ ycc}}w)N��Too many arguments.rrhrgz#list[tuple[typing.Any, typing.Any]]) r�r�rhr<�typing�castrrr��Mappingrgr��_list)r2�argsr]r7r��k�vs rr9zImmutableMultiDict.__init__�s���4�y�1�}�3�3�3�}�'+�D��G��� �&�u�-�9�9�;�>P�QW�>X�>d�>d�>f�f�E��:<�F� �U�M� *��K�K� 2�8�=P�3P� Q�SX�Y�E��%�+�+�-�.�F� �U�G� $��K�K����x�9L�/L� M�u�U�E��%�+�+�-�(�F��K�K� E�u�M�E��%�[�F�'-�.�v�t�q�!�a��d�v�.�� ��� ��/s�# Ec�X�|jD��cgc] \}}||k(s� |��c}}Scc}}wr?�r�)r2r6�item_key� item_values r�getlistzImmutableMultiDict.getlists*��7;�z�z�U�z�3�x��X�QT�_� �z�U�U��Us� &�&c�6�|jj�Sr?)r�ror=s rrozImmutableMultiDict.keyss���z�z��� � rc�6�|jj�Sr?)r��valuesr=s rr�zImmutableMultiDict.valuess���z�z� � �"�"rc�6�|jj�Sr?)r�rgr=s rrgzImmutableMultiDict.items s���z�z���!�!rc�,�t|j�Sr?�r�r�r=s rrhzImmutableMultiDict.multi_items#s���D�J�J��rc� �|j|Sr?�r��r2r6s rr�zImmutableMultiDict.__getitem__&s���z�z�#��rc��||jvSr?r�r�s r� __contains__zImmutableMultiDict.__contains__)s���d�j�j� � rc�4�t|j��Sr?�r�ror=s rr�zImmutableMultiDict.__iter__,����D�I�I�K� � rc�,�t|j�Sr?)r�r�r=s rr�zImmutableMultiDict.__len__/����4�:�:��rc��t||j�syt|j�t|j�k(S�NF)rnr\�sortedr�rrs rrtzImmutableMultiDict.__eq__2s0���%����0���d�j�j�!�V�E�K�K�%8�8�8rc�^�|jj}|j�}|�d|�d�Sr�)r\rrh)r2r�rgs rr{zImmutableMultiDict.__repr__7s2���^�^�,�,� �� � �"����Q�u�i�q�)�)rN)r�z�ImmutableMultiDict[_KeyType, _CovariantValueType] | typing.Mapping[_KeyType, _CovariantValueType] | typing.Iterable[tuple[_KeyType, _CovariantValueType]]r]r|r}r~)r6r|r}zlist[_CovariantValueType])r}ztyping.KeysView[_KeyType])r}z&typing.ValuesView[_CovariantValueType])r}z/typing.ItemsView[_KeyType, _CovariantValueType])r}z*list[tuple[_KeyType, _CovariantValueType]])r6rr}r�r6r|r}r�)r}ztyping.Iterator[_KeyType]r�r�r)rrrrr9r�ror�rgrhr�r�r�r�rtr{rrrr�r��sd�� .�.��@�� � � � �8V�!�#�"� ��!�!��9� *rr�c�l�eZdZd d�Zd d�Zddd�Zdd�Zdd�Zdd�Zddd�Z dd �Z d d �Z dd �Z y)rec�*�|j||g�yr?)�setlist�r2r6r7s r� __setitem__zMultiDict.__setitem__>s�� � � �S�5�'�"rc��|jD��cgc]\}}||k7s� ||f��c}}|_|j|=ycc}}wr?)r�r�)r2r6r�r�s r� __delitem__zMultiDict.__delitem__As;��)-���@����A�q�C�x�q�!�f��@�� � �J�J�s�O��As� ;�;Nc��|jD��cgc]\}}||k7s� ||f��c}}|_|jj||�Scc}}wr?)r�r�rX)r2r6�defaultr�r�s rrXz MultiDict.popEsE��)-���@����A�q�C�x�q�!�f��@�� ��z�z�~�~�c�7�+�+��As � A �A c��|jj�\}}|jD��cgc]\}}||k7s� ||f��c}}|_||fScc}}wr?)r��popitemr�)r2r6r7r�r�s rr�zMultiDict.popitemIsP���Z�Z�'�'�)� ��U�)-���@����A�q�C�x�q�!�f��@�� ��E�z���As � A�Ac�|�|jD��cgc] \}}||k(s� |��}}}|j|�|Scc}}wr?)r�rX)r2r6r�r�r�s r�poplistzMultiDict.poplistNs9�� $� � �7� ���1�a�3�h�!� ��7� ���� �� ��8s� 8�8c�l�|jj�|jj�yr?)r��clearr�r=s rr�zMultiDict.clearSs"�� � � ���� � � ���rc�l�||vr,||j|<|jj||f�||Sr?)r�r��append)r2r6r�s r� setdefaultzMultiDict.setdefaultWs6�� �d�?�%�D�J�J�s�O� �J�J� � �s�G�n� -��C�y�rc���|s|j|d�y|jD��cgc]\}}||k7s� ||f��}}}||D�cgc]}||f��c}z|_|d|j|<ycc}}wcc}w)NrU)rXr�r�)r2r6r�r�r��existing_itemsr7s rr�zMultiDict.setlist^sr��� �H�H�S�$� �37�:�:�J�:��!�Q��c��q�!�f�:�N�J�'�V�*L�V�E�C��<�V�*L�L�D�J�$�R�j�D�J�J�s�O��K��*Ls� A)�A)� A/c�\�|jj||f�||j|<yr?)r�r�r�r�s rr�zMultiDict.appendfs%�� � � ���3��,�'��� � �3�rc���t|i|��}|jD��cgc]\}}||j�vs�||f��}}}||j�z|_|jj |�ycc}}wr?)rer�rorhr�rf)r2r�r]r7r�r�r�s rrfzMultiDict.updatejsm�� �4�*�6�*��/3�z�z�S�z�V�a��Q�e�j�j�l�=R�1�a�&�z��S�#�e�&7�&7�&9�9�� � � � ���%� ��Ts �A3�A3�r6r|r7r|r}r~�r6r|r}r~r?)r6r|r�r|r}r|)r}ztuple[typing.Any, typing.Any])r6r|r}�list[typing.Any]�r}r~)r6r|r�r�r}r~)r�zXMultiDict | typing.Mapping[typing.Any, typing.Any] | list[tuple[typing.Any, typing.Any]]r]r|r}r~) rrrr�r�rXr�r�r�r�r�r�rfrrrrere=sP��#��,�� � ��)� �!�g�!��!� � !rrec�@��eZdZdZ d�fd� Zdd�Zdd�Z�xZS)� QueryParamsz! An immutable multidict. c�@��t|�dksJd��|r|dng}t|t�rt�|�t |d��fi|��nJt|t �r+t�|�t |jd�d��fi|��nt�|�|i|��|jD��cgc]\}}t|�t|�f��c}}|_|jj�D��cic]\}}t|�t|���c}}|_ ycc}}wcc}}w)Nr�r�rTrbr$) r�rnr �superr9r�bytesr-r�r�rg)r2r�r]r7r�r�r\s �rr9zQueryParams.__init__zs�����4�y�1�}�3�3�3�}���Q��R�� �e�S� !� �G� �Y�u��E� P�� P� ��u� %� �G� �Y�u�|�|�I�'>�RV�W� b�[a� b� �G� �d� -�f� -�37�:�:�>�:�4�1�a�s�1�v�s�1�v�&�:�>�� �15���1A�1A�1C�D�1C���A�c�!�f�c�!�f�n�1C�D�� ��?��Ds �% D�+Dc�,�t|j�Sr?)rr�r=s rrvzQueryParams.__str__�s������$�$rc�T�|jj}t|�}|�d|�d�Sr�)r\rr )r2r�r"s rr{zQueryParams.__repr__�s.���^�^�,�,� ��4�y� ���Q�|�.�a�0�0r)r�z�ImmutableMultiDict[typing.Any, typing.Any] | typing.Mapping[typing.Any, typing.Any] | list[tuple[typing.Any, typing.Any]] | str | bytesr]r|r}r~r)rrrr�r9rvr{� __classcell__�r\s@rrrus9����E��E��E� �E�,%�1rrc��eZdZdZdddd� d d�Zed d��Zedd��Zdd�Zddd�Z dd �Z dd �Z dd �Z y)� UploadFilez@ An uploaded file included as part of the request data. N)�size�filenamer#c�T�||_||_||_|xs t�|_yr?)r �filer �Headersr#)r2r r r r#s rr9zUploadFile.__init__�s'��!�� ��� ��� ��+�'�)�� rc�:�|jjdd�S)Nz content-type)r#r,r=s r� content_typezUploadFile.content_type�s���|�|�����5�5rc�6�t|jdd�}| S)N�_rolledT)�getattrr )r2�rolled_to_disks r� _in_memoryzUploadFile._in_memory�s��!����I�t�<��!�!�!rc��K�|j�|xjt|�z c_|jr|jj |�yt |jj|��d{���y7��wr?)r r�rr �writer )r2�datas rrzUploadFile.write�sQ���� �9�9� � �I�I��T�� "�I� �?�?� �I�I�O�O�D� !�#�D�I�I�O�O�T�:� :� :�s�A6B�8A>�9Bc��K�|jr|jj|�St|jj|��d{���S7��wr?)rr �readr )r2r s rrzUploadFile.read�s;���� �?�?��9�9�>�>�$�'� '�&�t�y�y�~�~�t�<�<�<�<�s�A A� A�Ac��K�|jr|jj|�yt|jj|��d{���y7��wr?)rr �seekr )r2�offsets rrzUploadFile.seek�s5���� �?�?� �I�I�N�N�6� "�#�D�I�I�N�N�F�;� ;� ;�s�A A�A�Ac��K�|jr|jj�yt|jj��d{���y7��wr?)rr �closer r=s rrzUploadFile.close�s1���� �?�?� �I�I�O�O� �#�D�I�I�O�O�4� 4� 4�s�A A� A� Ac��|jj�d|j�d|j�d|j�d�S)Nz (filename=z, size=z , headers=ry)r\rr r r#r=s rr{zUploadFile.__repr__�sJ���~�~�&�&�'�(�� � �(�)��I�I�=�!��|�|�&�a� )� r) r ztyping.BinaryIOr r�r � str | Noner#zHeaders | Noner}r~)r}r!r�)rrr}r~)rU)r rr}r)rrr}r~r�r) rrrr�r9r�rrrrrrr{rrrr r �s���� �#�"&� ,�� ,�� ,� � ,�  � ,� � ,��6��6��"��"� ;�=� <� 5�  rr c�8��eZdZdZ d�fd� Zdd�Z�xZS)�FormDatazN An immutable multidict, containing both file uploads and text input. c�$��t�|�|i|��yr?)rr9)r2r�r]r\s �rr9zFormData.__init__�s��� ���$�)�&�)rc��K�|j�D].\}}t|t�s�|j��d{����0y7��wr?)rhrnr rr�s rrzFormData.close�s9�����*�*�,�J�C���%��,��k�k�m�#�#�-�#�s�'A�A�A�A)r�zUFormData | typing.Mapping[str, str | UploadFile] | list[tuple[str, str | UploadFile]]r]zstr | UploadFiler}r~r�)rrrr�r9rrrs@rr#r#�s.����*�d�*�#�*� � *�$rr#c��eZdZdZ d dd�Zedd��Zdd�Zdd�Zdd�Z dd�Z dd �Z dd �Z dd �Z dd �Zdd �Zdd�Zdd�Zy)rz3 An immutable, case-insensitive multidict. Nc�P�g|_|�i|�Jd��|�Jd��|j�D��cgc]5\}}|j�jd�|jd�f��7c}}|_y|�|�Jd��||_y|�t |d�x|_|d<yycc}}w)Nz$Cannot set both "headers" and "raw".z&Cannot set both "headers" and "scope".r$z"Cannot set both "raw" and "scope".r#)r�rg�lower�encoder�)r2r#�rawr4r6r7s rr9zHeaders.__init__�s��� 13�� � � ��;� F� F� F�;��=� J�"J� J�=�el�er�er�et�u�et�Wa�WZ�\a�3�9�9�;�-�-�i�8�%�,�,�y�:Q�R�et�u�D�J� �_��=� F�"F� F�=��D�J� � �-1��y�1A�,B� B�D�J��y�)��� vs�:B"c�,�t|j�Sr?r�r=s rr*z Headers.raws���D�J�J��rc�j�|jD��cgc]\}}|jd���c}}Scc}}w�Nr$�r�r-r�s rroz Headers.keyss+��8<� � �C� �*�#�u�� � �9�%� �C�C��C��/c�j�|jD��cgc]\}}|jd���c}}Scc}}wr-r.r�s rr�zHeaders.values s+��:>�*�*�E�*�J�C��� � �Y�'�*�E�E��Er/c��|jD��cgc]'\}}|jd�|jd�f��)c}}Scc}}wr-r.r�s rrgz Headers.items s=��SW�S]�S]�^�S]�Z�S�%����I�&�� � �Y�(?�@�S]�^�^��^s�,Ac��|j�jd�}|jD��cgc]\}}||k(s� |jd���c}}Scc}}wr-)r(r)r�r-)r2r6�get_header_keyr�r�s rr�zHeaders.getlistsM������+�+�I�6��IM���r��1E��:�W_�cq�Wq� �!�!�)�,��r�r��rs � A�Ac�4�t|jdd��S)N)r*)�MutableHeadersr�r=s r� mutablecopyzHeaders.mutablecopys���$�*�*�Q�-�0�0rc��|j�jd�}|jD]\}}||k(s� |jd�cSt |��r-)r(r)r�r-�KeyError�r2r6r3� header_key� header_values rr�zHeaders.__getitem__sP������+�+�I�6��(,� � � $�J� ��^�+�#�*�*�9�5�5�)3��s�m�rc�x�|j�jd�}|jD] \}}||k(s� yy)Nr$TF)r(r)r�r9s rr�zHeaders.__contains__s;������+�+�I�6��(,� � � $�J� ��^�+��)3�rc�4�t|j��Sr?r�r=s rr�zHeaders.__iter__$r�rc�,�t|j�Sr?)r�r�r=s rr�zHeaders.__len__'r�rc�z�t|t�syt|j�t|j�k(Sr�)rnrr�r�rrs rrtzHeaders.__eq__*s,���%��)���d�j�j�!�V�E�K�K�%8�8�8rc���|jj}t|j��}t |�t |�k(r|�d|�d�S|�d|j �d�S)Nrxryz(raw=)r\r�dictrgr�r*)r2r��as_dicts rr{zHeaders.__repr__/s[���^�^�,�,� ��t�z�z�|�$�� �w�<�3�t�9� $� �\��7�+�Q�/� /���U�4�8�8�,�a�0�0r)NNN)r#ztyping.Mapping[str, str] | Noner*z list[tuple[bytes, bytes]] | Noner4z-typing.MutableMapping[str, typing.Any] | Noner}r~�r}zlist[tuple[bytes, bytes]])r}� list[str])r}zlist[tuple[str, str]])r6r r}rD)r}r5)r6r r}r r�)r}ztyping.Iterator[typing.Any]r�r�r)rrrr�r9r�r*ror�rgr�r6r�r�r�r�rtr{rrrrr�s���� 48�04�?C� C�0�C�.�C�=� C� � C�&� �� �D�F�_�s�1���!��9� 1rrc�^�eZdZd d�Zd d�Zd d�Zd d�Zedd��Zdd�Z dd�Z d d�Z dd �Z y )r5c��|j�jd�}|jd�}g}t|j�D]\}\}}||k(s�|j |��!t |dd�D]}|j|=�|r|d}||f|j|<y|jj ||f�y)zs Set the header `key` to `value`, removing any duplicate entries. Retains insertion order. r$rWNr�r(r)� enumerater�r��reversed) r2r6r7�set_key� set_value� found_indexes�idxr�r�s rr�zMutableHeaders.__setitem__8s��� �)�)�+�$�$�Y�/���L�L��+� �#%� �+4�T�Z�Z�+@� '�C�'�(�J��7�"��$�$�S�)�,A��M�!�"�-�.�C�� � �3��/� ���"�C�&� �2�D�J�J�s�O� �J�J� � �w� �2� 3rc���|j�jd�}g}t|j�D]\}\}}||k(s�|j |��!t |�D]}|j|=�y)z* Remove the header `key`. r$NrG)r2r6�del_key� pop_indexesrMr�r�s rr�zMutableHeaders.__delitem__Nso���)�)�+�$�$�Y�/��!#� �+4�T�Z�Z�+@� '�C�'�(�J��7�"��"�"�3�'�,A��K�(�C�� � �3��)rc��t|tj�s"td|jj ����|j |�|S�NzExpected a mapping but got )rnr�r�� TypeErrorr\rrfrrs r�__ior__zMutableHeaders.__ior__\s?���%����0��9�%�/�/�:R�:R�9S�T�U� U� � � �E��� rc���t|tj�s"td|jj ����|j �}|j|�|SrR)rnr�r�rSr\rr6rf)r2rs�news r�__or__zMutableHeaders.__or__bsM���%����0��9�%�/�/�:R�:R�9S�T�U� U���� �� � � �5��� rc��|jSr?r�r=s rr*zMutableHeaders.rawis ���z�z�rc��|j�jd�}|jd�}t|j�D] \}\}}||k(s�|j d�cS|jj ||f�|S)zo If the header `key` does not exist, then set it to `value`. Returns the header value. r$)r(r)rHr�r-r�)r2r6r7rJrKrMr�r�s rr�zMutableHeaders.setdefaultms}�� �)�)�+�$�$�Y�/���L�L��+� �+4�T�Z�Z�+@� '�C�'�(�J��7�"�!�(�(��3�3�,A� � � ���7�I�.�/�� rc�>�|j�D] \}}|||<� yr?)rg)r2rsr6�vals rrfzMutableHeaders.update{s��� � � �H�C���D��I�&rc��|j�jd�}|jd�}|jj||f�y)zD Append a header, preserving any duplicate entries. r$N)r(r)r�r�)r2r6r7� append_key� append_values rr�zMutableHeaders.appends?���Y�Y�[�'�'� �2� ��|�|�I�.� � � � ���:�|�4�5rc�Z�|jd�}|�dj||g�}||d<y)N�varyr�)r,r�)r2r`�existings r�add_vary_headerzMutableHeaders.add_vary_header�s2���8�8�F�#�� � ��9�9�h��-�.�D���V� rN)r6r r7r r}r~)r6r r}r~)rs�typing.Mapping[str, str]r}r5rC)r6r r7r r}r )rsrcr}r~)r`r r}r~) rrrr�r�rTrWr�r*r�rfr�rbrrrr5r57s>��4�,  �� ����� ��6�rr5c�J��eZdZUdZded<dd �fd� Zd d�Zd d�Zd d�Z�xZ S) �Statezm An object that can be used to store arbitrary state. Used for `request.state` and `app.state`. zdict[str, typing.Any]�_statec�.��|�i}t�|�d|�y)Nrf)r� __setattr__)r2�stater\s �rr9zState.__init__�s��� �=��E� ���H�e�,rc�"�||j|<yr?�rfr�s rrhzState.__setattr__�s�� �� � �C�rc�� |j|S#t$r2d}t|j|jj |���wxYw)Nz!'{}' object has no attribute '{}')rfr8�AttributeError�formatr\r)r2r6�messages r� __getattr__zState.__getattr__�sM�� O��;�;�s�#� #��� O�9�G� �������0G�0G��!M�N� N� O�s ��;A c��|j|=yr?rkr�s r� __delattr__zState.__delattr__�s�� �K�K�� rr?)rizdict[str, typing.Any] | Noner�)r6r|r}r|r�) rrrr�rr9rhrprrrrs@rrere�s%���� "�!�-� !�O�rre)#� __future__rr�r� urllib.parserrrr�starlette.concurrencyr �starlette.typesr � NamedTupler �TypeVarrrrr r�r��Sequencer�r�r��Anyrerr �Unionr#rr5rerrr�<module>r|sE��"� ��D�D�3�!��f���� �6�>�>�*� %��%�f�n�n�%:�d�K��P9�P9�f<�c�<�<!�!�(6�F�O�O�C�0�6�8B*�����2E�(E�F�B*�J5!�"�6�:�:�v�z�z�#9�:�5!�p!1�$�S�#�X�.�!1�H< �< �~$�!�#�v�|�|�J��O�'D�"D�E�$�$J1�f�n�n�S�#�X�&�J1�ZT�W�T�n�r

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noah-vh/mcp-server-clickup'

If you have feedback or need assistance with the MCP directory API, please join our Discord server