Skip to main content
Glama

ClickUp Operator

by noah-vh
mypy.cpython-312.pyc60.4 kB
� �MMg.����dZddlmZddlZddlmZddlmZmZm Z ddl m Z ddl m Z mZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/dd l0m1Z1dd l2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8dd l9m:Z:dd l;m<Z<dd l=m>Z>ddl?m@Z@ddlAmBZBddlCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMddlNmOZOddlPmQZQddlRmSZTddlUmVZVddlWmXZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZahd�ZbeXeT�Zcd Zdd!ZSdEd"�ZeGd#�d$e6�ZfGd%�d&�ZgdFd'�ZhGd(�d)�ZiGd*�d+�ZjGd,�d-�ZkGd.�d/�Zle d0d1d2�Zme d3d4d2�Zne d5d6d2�Zoe d7d8d2�Zpe d9d:d2�Zqe d9d;d2�Zre d9d<d2�ZsdGd=�ZtdHd>�ZudId?�Zv dJd@�ZwdIdA�ZxdKdB�Zy dL dMdC�ZzdNdD�Z{y)Oz^This module includes classes and functions designed specifically for use with the mypy plugin.�)� annotationsN)� ConfigParser)�Any�Callable�Iterator)� ErrorCode)� expand_type�expand_type_by_instance) � ARG_NAMED� ARG_NAMED_OPT�ARG_OPT�ARG_POS� ARG_STAR2� INVARIANT�MDEF�Argument�AssignmentStmt�Block�CallExpr�ClassDef�Context� Decorator�DictExpr� EllipsisExpr� Expression�FuncDef�IfStmt�JsonDict� MemberExpr�NameExpr�PassStmt�PlaceholderNode�RefExpr� Statement�StrExpr�SymbolTableNode�TempNode� TypeAlias�TypeInfo�Var)�Options)�CheckerPluginInterface�ClassDefContext� MethodContext�Plugin�ReportConfigContext�SemanticAnalyzerPluginInterface)�deserialize_and_fixup_type)�set_callable_name)�make_wildcard_trigger)�state)�map_type_from_supertype) �AnyType� CallableType�Instance�NoneType�Type� TypeOfAny�TypeType� TypeVarType� UnionType�get_proper_type)� fill_typevars)�get_unique_redefinition_name)� __version__)�_fields)�parse_mypy_version� pydantic-mypyzpydantic-mypy-metadatazpydantic.main.BaseModelz#pydantic_settings.main.BaseSettingszpydantic.root_model.RootModelz5pydantic._internal._model_construction.ModelMetaclasszpydantic.fields.Fieldzpydantic.dataclasses.dataclass�.pydantic.functional_validators.model_validator>�*pydantic.functional_serializers.serializer�.pydantic.deprecated.class_validators.validator�.pydantic.functional_validators.field_validator�0pydantic.functional_serializers.model_serializer�3pydantic.deprecated.class_validators.root_validatorrG�builtins�c��tS)a!`version` is the mypy version string. We might want to use this to print a warning if the mypy version being used is newer, or especially older, than we expect (or need). Args: version: The mypy version string. Return: The Pydantic mypy plugin type. )�PydanticPlugin)�versions �YC:\Users\noahv\Documents\GitHub\clickup-operator\.venv\Lib\site-packages\pydantic/mypy.py�pluginrSjs �� ��c�T��eZdZdZd �fd� Zd d�Zd d�Zd d�Zd d�Zd d�Z d d�Z �xZ S)rPzThe Pydantic mypy plugin.c���t|�|_|jj�|_t�|�|�y�N)�PydanticPluginConfig� plugin_config�to_data� _plugin_data�super�__init__)�self�options� __class__s �rRr]zPydanticPlugin.__init__|s4���1�'�:��� �.�.�6�6�8��� ����!rTc���|j|�}|rLt|jt�r2t d�|jj D��r |j Sy)zUpdate Pydantic model class.c3�BK�|]}|jtk(���y�wrW��fullname�BASEMODEL_FULLNAME��.0�bases rR� <genexpr>z5PydanticPlugin.get_base_class_hook.<locals>.<genexpr>�s����P�<�4�4�=�=�$6�6�<���N)�lookup_fully_qualified� isinstance�noder)�any�mro�$_pydantic_model_class_maker_callback)r^rd�syms rR�get_base_class_hookz"PydanticPlugin.get_base_class_hook�sG���)�)�(�3�� �:�c�h�h��1��P�3�8�8�<�<�P�P��@�@�@�rTc�.�|tk(r |jSy)z,Update Pydantic `ModelMetaclass` definition.N)�MODEL_METACLASS_FULLNAME�)_pydantic_model_metaclass_marker_callback�r^rds rR�get_metaclass_hookz!PydanticPlugin.get_metaclass_hook�s�� �/� /��A�A� A�rTc�2�|jd�rtSy)z-Adjust return type of `from_orm` method call.z .from_ormN)�endswith�from_attributes_callbackrvs rR�get_method_hookzPydanticPlugin.get_method_hook�s�� � � �[� )�+� +�rTc��|jS)zjReturn all plugin config data. Used by mypy to determine if cache needs to be discarded. )r[)r^�ctxs rR�report_config_dataz!PydanticPlugin.report_config_data�s�� � � � rTc��t|j|j|j|j�}|j �yrW)�PydanticModelTransformer�cls�reason�apirY� transform)r^r}� transformers rRrpz3PydanticPlugin._pydantic_model_class_maker_callback�s0��.�s�w�w�� � �C�G�G�T�M_�M_�`� ����rTc���|jjry|jjj}|sJd��t |j dd�rd|j _yy)z�Reset dataclass_transform_spec attribute of ModelMetaclass. Let the plugin handle it. This behavior can be disabled if 'debug_dataclass_transform' is set to True', for testing purposes. Nz-callback not passed from 'get_metaclass_hook'�dataclass_transform_spec)rY�debug_dataclass_transformr��info�declared_metaclass�getattr�typer�)r^r}�info_metaclasss rRruz8PydanticPlugin._pydantic_model_metaclass_marker_callback�s^�� � � � 7� 7� ������8�8���N�N�N�~� �>�&�&�(B�D� I�;?�N� � � 8� JrT�r_r+�return�None)rd�strr�z(Callable[[ClassDefContext], None] | None)rdr�r�z&Callable[[MethodContext], Type] | None)r}r0r��dict[str, Any])r}r-r�r�) �__name__� __module__� __qualname__�__doc__r]rrrwr{r~rpru� __classcell__)r`s@rRrPrPys*���#�"� �� � !� � @rTrPc�N�eZdZUdZdZded<ded<ded<ded<d d�Zd d �Zy ) rXa�A Pydantic mypy plugin config holder. Attributes: init_forbid_extra: Whether to add a `**kwargs` at the end of the generated `__init__` signature. init_typed: Whether to annotate fields in the generated `__init__`. warn_required_dynamic_aliases: Whether to raise required dynamic aliases error. debug_dataclass_transform: Whether to not reset `dataclass_transform_spec` attribute of `ModelMetaclass` for testing purposes. )�init_forbid_extra� init_typed�warn_required_dynamic_aliasesr��boolr�r�r�r�c���|j�yt|j�}|�q|jdi�jdi�}|jD]?}|j|d�}t |t �st d|����t|||��Ayt�}|j|j�|jD]'}|jt|d��}t|||��)y)N�toolrFFz/Configuration value must be a boolean for key: )�fallback) � config_file� parse_toml�get� __slots__rlr�� ValueError�setattrr�read� getboolean�CONFIGFILE_KEY)r^r_� toml_config�config�key�settingrYs rRr]zPydanticPluginConfig.__init__�s��� � � � &� � ��!4�!4�5� � � "� �_�_�V�R�0�4�4�_�b�I�F��~�~�� �*�*�S�%�0��!�'�4�0�$�'V�WZ�V[�%\�]�]���c�7�+� &� )�N�M� � � �w�2�2� 3��~�~��'�2�2�>�3�QV�2�W����c�7�+�&rTc�V�|jD�cic]}|t||���c}Scc}w)z/Returns a dict of config names to their values.)r�r�)r^r�s rRrZzPydanticPluginConfig.to_data�s*��37�>�>�B�>�C��W�T�3�'�'�>�B�B��Bs�&Nr��r�r�)r�r�r�r�r��__annotations__r]rZ�rTrRrXrX�s3����I� ����#'�'�#�#�,�&CrTrXc��|j}t|t�r |j}t|t�r't|j t �r |j }n]t|t �r|}nJd|�d|jj�d�}t||j|j�|jS|jjjt�}|� |jSt!d�|jj"D��s |jS|jdi�jd�}|dur5t%|jj&|j|j�|jS)z1Raise an error if from_attributes is not enabled.z ctx.type: � (of type �)c3�BK�|]}|jtk(���y�wrWrcrfs rRriz+from_attributes_callback.<locals>.<genexpr>�s����S�?R�t�t�}�}� 2�2�?R�rjr��from_attributesT)r�rlr=�itemr8�ret_typer9r`r��error_unexpected_behaviorr��context�default_return_type�metadatar�� METADATA_KEYrnro�error_from_attributes�name)r}�ctx_type� model_type�detail�pydantic_metadatar�s rRrzrz�s5���x�x�H��(�H�%��=�=���(�L�)�j��9J�9J�H�.U��&�&� � �H�h� '�� ��h�Z�z�(�2D�2D�2M�2M�1N�a�P��!�&�#�'�'�3�;�;�?��&�&�&�"���0�0�4�4�\�B��� ��&�&�&� �S�z���?R�?R�S� S��&�&�&�'�+�+�H�b�9�=�=�>O�P�O��d�"��j�o�o�2�2�C�G�G�S�[�[�I� � "� "�"rTc���eZdZdZ d d�Z d d�Z d d d�Z d dd�Zdd�Ze dd��Z dd�Z y )�PydanticModelFieldz5Based on mypy.plugins.dataclasses.DataclassAttribute.c ��||_||_||_||_||_||_||_||_| |_| |_ yrW) r��alias� is_frozen�has_dynamic_alias� has_default�strict�line�columnr�r�) r^r�r�r�r�r�r�r�r�r�r�s rRr]zPydanticModelField.__init__�sL���� ��� �"���!2���&����� ��� ��� ��� ��� rTc �0�|j||||�} |j�|n |j} |s| r|j||�} nttj �} t | | d|r t��S|s |jr t��St��S)zABased on mypy.plugins.dataclasses.DataclassAttribute.to_argument.N)�variable�type_annotation� initializer�kind) �to_varr�r r7r<�explicitrr r�r r ) r^� current_info�typed� model_strict�force_optional� use_aliasr��force_typevars_invariant�is_root_model_rootr�r�r�s rR� to_argumentzPydanticModelField.to_arguments����;�;�|�S�)�=U�V��!%���!4��$�+�+�� �F�"�.�.�|�S�A�O�%�i�&8�&8�9�O���+��!��  � � $2�T�5E�5E�-�  � � LU�  � rTc��|rFt|jt�r,|jj�}t|_||_|j��|j j��tj|jj�5t|�}t|t�sJ�|r-|jD]}t|t�s�t|_� t|j|j jj |i�cddd�S|jS#1swY|jSxYw)zABased on mypy.plugins.dataclasses.DataclassAttribute.expand_type.N)rlr�r>� copy_modifiedr�variancer�� self_typer5�strict_optional_setr_�strict_optionalrAr9�argsr �id)r^r�r�r�� modified_type�filled_with_typevars�args rRr zPydanticModelField.expand_type/s��� $� �$�)�)�[�1� $� � � 7� 7� 9� �)2� �&�)�� � �9�9� �T�Y�Y�%8�%8�%D� �*�*�3�;�;�+F�+F�G�'4�\�'B�$�!�"6��A�A�A�+�3�8�8��%�c�;�7�+4�C�L� 9�#�4�9�9�t�y�y�/B�/B�/E�/E�G[�.\�]� ^� ^��y�y��H��y�y��s�?D,�AD,�,Ec��|r|j� |j}n |j}t||j|||��S)z<Based on mypy.plugins.dataclasses.DataclassAttribute.to_var.)r�r�r*r )r^r�r�r�r�r�s rRr�zPydanticModelField.to_varMs?�� ����/��:�:�D��9�9�D��4��)�)�,��=U�V�W�WrTc ��|jsJ�|j|j|j|j|j |j |j|j|jj�d� S)�?Based on mypy.plugins.dataclasses.DataclassAttribute.serialize.) r�r�r�r�r�r�r�r�r�) r�r�r�r�r�r�r�r�r�� serialize�r^s rRr�zPydanticModelField.serialize\sd���y�y��y��I�I��Z�Z����!%�!7�!7��+�+��k�k��I�I��k�k��I�I�'�'�)�  � rTc�n�|j�}t|jd�|�}|d||d�|��S)�ABased on mypy.plugins.dataclasses.DataclassAttribute.deserialize.r�)r�r�r�)�copyr2�pop)r�r��datar��typs rR� deserializezPydanticModelField.deserializeks9���y�y�{��(����&�)9�3�?���/��$�/�$�/�/rTc���|j�Ytj|jj�5t |j||j �|_ddd�yy#1swYyxYw)zxExpands type vars in the context of a subtype when an attribute is inherited from a generic super type. N)r�r5r�r_r�r6r�)r^�sub_typer�s rR�expand_typevar_from_subtypez.PydanticModelField.expand_typevar_from_subtypersS�� �9�9� ��*�*�3�;�;�+F�+F�G�3�D�I�I�x����S�� �H�G� !�G�G�s �'A'�'A0N)r�r�r�z str | Noner�r�r�r�r�r�r�� bool | Noner��intr�r�r�� Type | Noner�r))r�r)r�r�r�r�r�r�r�r�r�r1r�r�r�r�r�r�F)r�r)r�r1r�r�r�r�) r�r)r�r1r�r�r�r�r�r*�r�r)r�r)r�rr�r1r�r�)r�r)r�r1r�r�) r�r�r�r�r]r�r r�r�� classmethodr�r�r�rTrRr�r��sU��?������� �  � � � �����������0 �� �� ��  � �  � �  �-� �#'� �!� � � �<ns��$��+J��fj�� ��F*/� X�� X�-� X�� X� #'� X� � X�  ��0��0� TrTr�c�0�eZdZdZd�Zedd��Zdd�Zy)�PydanticModelClassVarz�Based on mypy.plugins.dataclasses.DataclassAttribute. ClassVars are ignored by subclasses. Attributes: name: the ClassVar name c��||_yrW�r�)r^r�s rRr]zPydanticModelClassVar.__init__�s ���� rTc�2�|j�}|di|��S)r�r�)r�)r�r�s rRr�z!PydanticModelClassVar.deserialize�s���y�y�{���{�T�{�rTc��d|jiS)r�r�r�r�s rRr�zPydanticModelClassVar.serialize�s�� �D�I�I� � rTN)r�rr�r�r�)r�r�r�r�r]r�r�r�r�rTrRr�r�{s%��������  rTr�c�v�eZdZUdZhd�Zded< dd�Zdd�Zdd�Zdd�Z dd �Z dd �Z d d �Z d!d �Z d"d �Z d#d�Z d#d�Zd$d�Zd%d&d�Zed'd��Zed(d��Zed)d��Zed'd��Z d% d*d�Zd+d�Zed,d��Zy)-r�z�Transform the BaseModel subclass according to the plugin settings. Attributes: tracked_config_fields: A set of field configs that the plugin has to track their value. >�extra�frozenr��alias_generatorr��populate_by_namezset[str]�tracked_config_fieldsc�<�||_||_||_||_yrW)�_cls�_reason�_apirY)r^r�r�r�rYs rRr]z!PydanticModelTransformer.__init__�s!���� ��� ��� �*��rTc���|jj}td�|jddD��}|j �}|j ||�\}}|�|�y|D]}|j ��ytd�|jddD��}|j||||�|j||||�|j||j|jdu��|j�|D�cic]}|j|j���c}|D�cic]}|j|j���c}|j�d�|j t"<ycc}wcc}w) a�Configures the BaseModel subclass according to the plugin settings. In particular: * determines the model config and fields, * adds a fields-aware signature for the initializer and construct methods * freezes the class if frozen = True * stores the fields, config, and if the class is settings in the mypy metadata for access by subclasses c3�@K�|]}t|jv���y�wrW)�ROOT_MODEL_FULLNAMErdrfs rRriz5PydanticModelTransformer.transform.<locals>.<genexpr>�s����[�]�T�/�4�=�=�@�]�s�N�����Fc3�BK�|]}|jtk(���y�wrW)rd�BASESETTINGS_FULLNAMErfs rRriz5PydanticModelTransformer.transform.<locals>.<genexpr>�s����[�]�T�$�-�-�+@�@�]�rjT)r)�fields� class_varsr�)r r�rnro�collect_config�collect_fields_and_class_varsr��add_initializer�add_model_construct_method� set_frozenr r�adjust_decorator_signaturesr�r��get_values_dictr�r�) r^r�� is_root_modelr�rr�field� is_settings� class_vars rRr�z"PydanticModelTransformer.transform�s]���y�y�~�~���[�T�X�X�VY�WY�]�[�[� ��$�$�&��!�?�?�� �V��� � �>�Z�/���E��z�z�!����[�T�X�X�VY�WY�]�[�[� � ���V�V�[�-�H� �'�'��� �]�S� ����� � �&�-�-�4�2G��H� �(�(�*�CI�I�&��u�z�z�5�?�?�#4�4�&�I�R\�]�R\�Y�9�>�>�9�+>�+>�+@�@�R\�]��,�,�.�' �� � �l�#� �� J��]s �:"E*�""E/c�&��|jjjj�D]�}t |j t �s�|j jd�t �t�s�Ht �jt�s�c�jjtvs���jjtk(r(t�fd�t�j �D��r��d|j j"_��y)a�When we decorate a function `f` with `pydantic.validator(...)`, `pydantic.field_validator` or `pydantic.serializer(...)`, mypy sees `f` as a regular method taking a `self` instance, even though pydantic internally wraps `f` with `classmethod` if necessary. Teach mypy this by marking any function whose outermost decorator is a `validator()`, `field_validator()` or `serializer()` call as a `classmethod`. rc3��K�|]<\}}�j|dk(xr!t|t�xr|jdk(���>y�w)�mode�afterN)� arg_namesrlr%�value)rg�ir�� first_decs �rRrizGPydanticModelTransformer.adjust_decorator_signatures.<locals>.<genexpr>�sO����� �*C���3�&�/�/��2�f�<�r��C�QX�AY�r�^a�^g�^g�kr�^r�r�*C�s�AATN)r r��names�valuesrlrmr�original_decoratorsr�calleer rd�DECORATOR_FULLNAMES�MODEL_VALIDATOR_FULLNAMErn� enumerater��func�is_class)r^rqr&s @rRrz4PydanticModelTransformer.adjust_decorator_signatures�s�����9�9�>�>�'�'�.�.�0�C��#�(�(�I�.��H�H�8�8��;� ��y�(�3�"�9�#3�#3�X�>�!�(�(�1�1�5H�H�"�(�(�1�1�5M�M�� �*3�I�N�N�*C� ��.2�C�H�H�M�M�*�#1rTc ���|j}t�}d}d}|jj�D]-\}}|j ||�}|s�d}|j |��/d}|j jD�]}t|ttf�s�t|t��r"|jd} t| t�r| jdk7r�[t|jt�rdt!|jj"|jj$�D]+\} } | �� |j |j | | d����-�nt|jt&�r�|jjD]A\} } t| t(�s�|j |j | j*| ���Cn�t|t�r�|jdk7r��o|j jD]h}t|t�s�|jd} t| t�s�4|j |j | j|j���j|r|j,j/d|�nd}��|s|rF|rD|j0r8|j2s,|j4j6rt9|j,|�|j:j<d dD]�}t>|j@vr�|j,jCtE|jF��|j@t>d j�D]\}}|jI||����|S) zhCollects the values of the config attributes that are used by the plugin, accounting for parent classes.FTNr� model_config)� lax_extra�ConfigzYSpecifying config in two places is ambiguous, use either Config attribute or class kwargs�r�)%r �ModelConfigData�keywords�items�get_config_update�update�defs�bodyrlrr�lvaluesr r��rvaluer�zipr#r�rr%r$r �fail�has_alias_generatorrrYr��error_required_dynamic_aliasesr�ror�r��add_plugin_dependencyr4rd� setdefault)r^r�r��has_config_kwargs�has_config_from_namespacer��expr� config_data�stmt�lhs�arg_namer��key_expr� value_expr�substmtr�r$s rRrz'PydanticModelTransformer.collect_config�s����i�i�� �"��!��$)�!��,�,�,�,�.�J�D�$��0�0��t�<�K��$(�!�� � �k�*� /�"&���H�H�M�M�D��d�^�X�$>�?���$��/��l�l�1�o��!�#�x�0�C�H�H��4N���d�k�k�8�4�),�T�[�[�-B�-B�D�K�K�DT�DT�)U� ��#�#�+�$�� � �d�&<�&<�X�s�VZ�&<�&[�\�*V� �� � �X�6�04� � �0A�0A�,��*�)�(�G�<�$�� � �d�&<�&<�X�^�^�Z�&X�Y�1B� �D�(�+��9�9��(��#�y�y�~�~�G�%�g�~�>� �!�/�/�!�,�C�%�c�8�4� ��M�M�$�"8�"8����7�>�>�"R�S� .�!�� � ���o����(,� %�M"�P � 9���.�.��/�/��&�&�D�D�.�t�y�y�$�?��H�H�L�L���$�D��4�=�=�0�� �I�I� +� +�,A�$�-�-�,P� Q�#�}�}�\�:�8�D�J�J�L� ��e��!�!�$��.� M� %�� rTc���|j}i}i}t|jjdd�D�]v}t|j vr�|j jt|j��|j tdj�D]�\}}tj|||j �} | j|j|j �| ||<|jjj|�} | s�z| j s��t#| j t$�r��|j j'd| j ���|j tdj�D]\}}t(j|�||<���yt+�} t+�} |j-|j.�D]�} |j1| ||�}|��| j2d}t#|t4�sJ�t#|t�rS|r&|j6dk7rt9|j | ��r| j;|j6�|||j6<��t#|t(�s��| j;|j6�|||j6<��t=|j?��t=|j?��fS)zACollects the fields for the model, accounting for parent classes.r4rrz7BaseModel field may only be overridden by another fieldrr�root) r �reversedr�ror�r�r rBr4rdr7r�r�r�r'r�rmrlr*r?r��set�%_get_assignment_statements_from_blockr:�$collect_field_or_class_var_from_stmtr<r r�� error_extra_fields_on_root_model�add�listr()r^r1rr�� found_fields�found_class_varsr�r�r�r�sym_node�current_field_names�current_class_vars_namesrH� maybe_fieldrIs rRrz6PydanticModelTransformer.collect_fields_and_class_vars<sT���i�i��79� �=?���S�X�X�\�\�!�B�/�0�D��4�=�=�0�� �I�I� +� +�,A�$�-�-�,P� Q�"�m�m�L�9�(�C�I�I�K� ��d�*�6�6�t�T�4�9�9�M�� �1�1�#�(�(�D�I�I�F�%*� �T�"��8�8�>�>�-�-�d�3���� � �j����PS�6T��I�I�N�N�Q� � � ��L� #�m�m�L�9�,�G�M�M�O� ��d�)>�)J�)J�4�)P� ��&�P�51�<),���-0�U� ��>�>�s�x�x�H�D��C�C�D�,�Xh�i�K��"���,�,�q�/�C��c�8�,� ,�,��+�'9�:� �S�X�X��%7�4�T�Y�Y��E�'�+�+�C�H�H�5�-8�L����*��K�)>�?�(�,�,�S�X�X�6�-8� ����*�I�"�L�'�'�)�*�D�1A�1H�1H�1J�,K�K�KrTc#�K�|jD](}|jr�|j|�Ed{����*|j�;|jjs$|j|j�Ed{���yyy7�N7� �wrW)r;�is_unreachablerR� else_body)r^rHr;s rR�,_get_assignment_statements_from_if_statementzEPydanticModelTransformer._get_assignment_statements_from_if_statement�st�����I�I�D��&�&��E�E�d�K�K�K�� �>�>� %�d�n�n�.K�.K��A�A�$�.�.�Q� Q� Q�/L� %�L�� Q�s'�B�B�B�AB�:B�;B�Bc#�K�|jD]A}t|t�r|���t|t�s�)|j |�Ed{����Cy7��wrW)r;rlrrr`)r^�blockrHs rRrRz>PydanticModelTransformer._get_assignment_statements_from_block�sG�����J�J�D��$��/�� ��D�&�)��L�L�T�R�R�R� �S�s�5A�A� A� Ac ���|j}|jd}t|t�r.t j |j �r|j dk(ry|js�t|jt�r�t|jjt�r_t|jjjt�r1|jjjjtvry|j |vryt|j|�y|jd}t|t�syt j |j �r|j dk(ry|jj j#|j �}|�y|j$}t|t&�ryt|t(�r|jj+d|�yt|t,�sy|j.rt1|j �St3|j4�}t|t6�r5|j4jdk(r|jj+d|�|j9|�} |j;|�} |j4��|j<rw|j>rk|jjA|jd��} | r| |_n:|jj+d |�tCtDjF�|_|jI|�\} } | r8|jJs,|jLjNrtQ|j|�|jS|�}|jU||j |�}tW|j | | | | ||jX|jZ||j� � S) a^Get pydantic model field from statement. Args: stmt: The statement. model_config: Configuration settings for the model. class_vars: ClassVars already known to be defined on the model. Returns: A pydantic model field if it could find the field in statement. Otherwise, `None`. rr1NzFType aliases inside BaseModel definitions are not supported at runtimezdataclasses.InitVarz%InitVar is not supported in BaseModelT)�is_finalzGNeed type argument for Final[...] with non-literal default in BaseModel) r�r�r�r�r�r�r�r�r�r�).r r<rlr rD�is_valid_field_namer�� new_syntaxr=rr*rdr+�error_untyped_fieldsr r�r'r�rmr"r(r?r*� is_classvarr�r@r�r9�get_has_default� get_strictrd� is_inferred�analyze_simple_literal_typer7r<� from_error�get_alias_inforrYr�rA�is_field_frozen�_infer_dataclass_attr_init_typer�r�r�)r^rHr1rr�rIrqrm� node_typer�r�r�r�r�r�� init_types rRrSz=PydanticModelTransformer.collect_field_or_class_var_from_stmt�s���i�i���l�l�1�o���#�x�(��0K�0K�C�H�H�0U�Y\�Ya�Ya�es�Ys������4�;�;��1��t�{�{�1�1�8�<��t�{�{�1�1�8�8�(�C��K�K�&�&�-�-�6�6�:M�M� ��x�x�:�%�� !����D� 1���l�l�1�o���#�x�(���*�*�3�8�8�4����N�8R���h�h�n�n� � ����*�� �;���x�x�� �d�O� ,� � �d�I� &� �I�I�N�N�X�� ���$��$� � � � �(����2� 2�$�D�I�I�.� � �i�� *�y�~�~�/F�/F�J_�/_� �I�I�N�N�7�� � �*�*�4�0� �����&�� �8�8� �� � �$�2B�2B��)�)�7�7�� � �d�7�S�C���� �� � ���]���$�I�$8�$8�9�� �#'�#6�#6�t�#<� �� � �\�%B�%B�t�GY�GY�Gw�Gw� *�4�9�9�d� ;��(�(��.� ��8�8��c�h�h��M� �!����/�#��������;�;�����  � rTc�8�|j}|jr|St|j�}t|t�s|S|jj d�}|�r:t|j t�r�|jjd�}|sJ�|jr+tt|j|j|��}nttj�St|t�r7|jtttgk(rt!|j"d|�S|j$j'd|jj(�d�|�|S|j$j'd|jj(�d�|�|S)zvInfer __init__ argument type for an attribute. In particular, possibly use the signature of __set__. �__set__rNz(Unsupported signature for "__set__" in "�"zUnsupported "__set__" in ")r��implicitr@rlr9r�rmr�get_containing_type_infor6r7r<� unannotatedr8� arg_kindsrr � arg_typesr r?r�) r^rqr�r��default�t�setter� super_info� setter_types rRrpz8PydanticModelTransformer._infer_dataclass_attr_init_typesG�� �(�(�� �<�<��N� �C�H�H� %�� �!�X�&��N������I�&�� ��&�+�+�w�/��V�V�<�<�Y�G� �!�!�z��;�;�"1�2I�&�+�+�WX�W]�W]�_i�2j�"k�K�"�9�#8�#8�9�9��k�<�8�[�=R�=R����W�>� 3�;�3H�3H��3K�Q�O�O��I�I�N�N�%M�a�f�f�k�k�]�Z[�#\�^e�f���� � ���!;�A�F�F�K�K�=��J�G�T��rTc ��d|jjjvr.|jjjdjsy|jj }t |j�}|jdu}t |jxr |j �}|j|||||||d��} |�r7|jjt�j} t| t �sJ�d| jvr�| jdj} t| t"�sJ�| ��| j$��| j$} t| t&�sJ�t)| j*�D]\} }|�"|j-d�s|j-d�s�+|jj/| j0| �}t3||�}| j5t7||dt8����|j;||�sCt3d�}| j5t7|t=t>j@�dtB��tE|j|jd| tG���y) z�Adds a fields-aware `__init__` method to the class. The added `__init__` will be annotated with types vs. all `Any` depending on the plugin settings. r]NT)r�r��requires_dynamic_aliasesr�rrr��__�_�kwargs)r�� return_type)$r r�r'�plugin_generatedrYr�r�r�rr@�get_field_argumentsr rkrrmrlr)rr�r8r-r#� startswith� anal_typerzr*�appendrr �should_init_forbid_extrar7r<r�r� add_methodr:)r^rr�rrr�r�r�r�r��base_settings_node�base_settings_init_node� func_type�arg_idxrJ�analyzed_variable_typer��vars rRrz(PydanticModelTransformer.add_initializer5s'�� ������-�-� -�d�i�i�n�n�6J�6J�:�6V�6g�6g� ��"�"�-�-���F�M�M�*� ��+�+�4�7� �#'��(B�(B�(b�6�Kb�Kb�Gb�#c� ��'�'� ��%�%=��#�'�%)�(�  �� �!%���!A�!A�BW�!X�!]�!]� ��0�(�;� ;�;��/�5�5�5�*<�*B�*B�:�*N�*S�*S�'�!�"9�7�C�C�C�*�6�;R�;W�;W�;c� 7� <� <�I�%�i��>�>�>�-6�y�7J�7J�-K�)���#�+�x�/B�/B�4�/H�PX�Pc�Pc�dg�Ph�$�15���1D�1D�Y�EX�EX�Y`�Ea�1b�.�#&�x�1G�#H��� � �H�X�7M�t�U\�$]�^� .L��,�,�V�V�<��h�-�C� �K�K���g�i�.@�.@�&A�4��S� T��4�9�9�d�i�i��$�H�J�WrTc ��|jjt�d�|jjt�d��g�}t|t �g�}t t d|�|dt�}tj|jjj�5|j|dt|j�dd||��}ddd�|j||�sCt d�} j!t | t#t$j&�dt(��|r|gzn|gz}t+|j|j,d |t/|j,j0�d� �y#1swY��xYw) z�Adds a fully typed `model_construct` classmethod to the class. Similar to the fields-aware __init__ method, but always uses the field names (not aliases), and does not treat settings fields as optional. z.setz.str� _fields_setNTF)r�r�r�r�rrr��model_construct)r�r��is_classmethod)r � named_type� BUILTINS_NAMEr?r:rr*r r5r�r_r�r�r�r�r�r�r7r<r�rr�r rAr�) r^rr�rr�set_str�optional_set_str�fields_set_argumentr�r�s rRrz3PydanticModelTransformer.add_model_construct_methoddsT���)�)�&�&�-���'=�� � �@T�@T�Xe�Wf�fj�Uk�@l�?m�n��$�g�x�z�%:�;��&�s�=�:J�'K�M]�_c�el�m�� � &� &�t�y�y�'8�'8�'H�'H� I��+�+���!�&�-�-�0�).��'�+�,��D�J��,�,�V�V�<��h�-�C� �K�K���g�i�.@�.@�&A�4��S� T�/<�t�*�+�+�CV�BW�Z^�B^��� �I�I� �I�I� ��%�d�i�i�n�n�5��  �!J� I�s �),F�F c��|jj}|D�]H}|jj|j�}|��|j }t |t�r|xs |j|_ �]t |t�r1|jjs|jj��� t|�}d|�d|j"�d�} t%| |j|j���|j'||d��}||_||_ |j(dz|jz|_t-t.|�|j|j<��Ky#t$rt!|�}Y��wxYw)z�Marks all fields as properties so that attempts to set them trigger mypy errors. This is the same approach used by the attrs and dataclasses plugins. Nzsym_node.node: r�r�F)r��.)r r�r'r�r�rmrlr*r�� is_propertyr"r �final_iteration�deferr�� TypeError�reprr`r�r�rd� _fullnamer&r) r^rr�rr�rrYr��var_strr�s rRrz#PydanticModelTransformer.set_frozen�s)�� �y�y�~�~���E��z�z�~�~�e�j�j�1�H��#��m�m���c�3�'�&,�&?����C�O���_�5�d�i�i�>W�>W��I�I�O�O�%�,�"%�c�(�� /�w�i�z�#�-�-��PQ�R�F�-�f�d�i�i����K��l�l�4���l�>�����"(��� $� � �� 3�c�h�h� >�� �'6�t�S�'A�� � �3�8�8�$�/��%�,�"&�s�)��,�s�8 E&�&E=�<E=c���||jvry|dk(rft|t�r|jdk(}n:t|t�r|j dk(}n|st ||j|�yt|��S|dk(r/d}t|t�r|jdk(rd}t|� �St|t�r(|jd vrtd i||jd k(i��St ||j|�y) z�Determines the config update due to a single kwarg in the ConfigDict definition. Warns if a tracked config attribute is set to a value the plugin doesn't know how to interpret (e.g., an int) Nr�forbid)� forbid_extrarT� builtins.NoneF)r@)� builtins.True�builtins.Falser�r�) rrlr%r$rr��error_invalid_config_valuer r5r rd)r^r�r�r2r�r@s rRr8z*PydanticModelTransformer.get_config_update�s��� �t�1�1� 1�� �7�?��#�w�'�"�y�y�H�4� ��C��,�"�x�x�8�3� � �/�t�T�Y�Y��D��"� �=� =� �$� $�"&� ��#�x�(�S�\�\�_�-L�&+�#�"�7J�K� K� �c�8� $����9\�)\�"�M�d�C�L�L�O�,K�%L�M� M�"�4����C�8�rTc���|j}t|t�ryt|t�r�t|jt �r�|jj tk(rmt|j|j�D]I\}}|�|dk(r|jtucS|dk(s�'t|t�xr|j dk( cSyt|t� S)zUReturns a boolean indicating whether the field defined in `stmt` is a required field.Fr{�default_factoryr�)r=rlr'rr*r#rd�FIELD_FULLNAMEr>r�r#r`rr �rHrFr�r�s rRriz(PydanticModelTransformer.get_has_default�s����{�{�� �d�H� %�� �d�H� %�*�T�[�[�'�*J�t�{�{�Oc�Oc�gu�Ou� !����D�N�N�;� ��T��<�4�9�#4��=�=� �<�<��,�,� *�3�� 9� ]�c�l�l�o�>]�^�^� <� ��d�L�1�1�1rTc�l�|j}t|t�r�t|jt�r~|jj t k(rat|j|j�D]>\}}|dk7r� t|t�r"|j dk(ry|j dk(ryyy)zEReturns a the `strict` value of a field if defined, otherwise `None`.r�r�Tr�FN) r=rlrr*r#rdr�r>r�r#r r�s rRrjz#PydanticModelTransformer.get_strict�s����{�{�� �d�H� %�*�T�[�[�'�*J�t�{�{�Oc�Oc�gu�Ou� ����D�N�N�;� ��T��8�#���c�8�,��|�|��6�#����)9�9�$��<�rTc�t�|j}t|t�ryt|t�r7t|jt �r|jj tk(syt|j�D];\}}|dk7r� |j|}t|t�r|jdfcSyy)aReturns a pair (alias, has_dynamic_alias), extracted from the declaration of the field defined in `stmt`. `has_dynamic_alias` is True if and only if an alias is provided, but not as a string literal. If `has_dynamic_alias` is True, `alias` will be None. )NFr�F)NT) r=rlr'rr*r#rdr�r-r#r�r%r$�rHrFr%rJr�s rRrnz'PydanticModelTransformer.get_alias_info�s����{�{�� �d�H� %�� �t�X� &�:�d�k�k�7�+K�PT�P[�P[�Pd�Pd�hv�Pv��$�T�^�^�4�K�A�x��7�"���)�)�A�,�C��#�w�'��y�y�%�'�'�!�5�rTc�v�|j}t|t�ryt|t�r7t|jt �r|jj tk(syt|j�D]<\}}|dk(s� |j|}t|t�xr|j dk(cSy)alReturns whether the field is frozen, extracted from the declaration of the field defined in `stmt`. Note that this is only whether the field was declared to be frozen in a `<field_name> = Field(frozen=True)` sense; this does not determine whether the field is frozen because the entire model is frozen; that is handled separately. Frr�) r=rlr'rr*r#rdr�r-r#r�r r�s rRroz(PydanticModelTransformer.is_field_frozens����{�{�� �d�H� %�� �t�X� &�:�d�k�k�7�+K�PT�P[�P[�Pd�Pd�hv�Pv��$�T�^�^�4�K�A�x��8�#��i�i��l��!�#�x�0�T�S�\�\�_�5T�T�5�rTc ���|jj} |D� cgc]H} |r | js8| j| |||xs|||j||xr| j dk(����J} } | Scc} w)z�Helper function used during the construction of the `__init__` and `model_construct` method signatures. Returns a list of mypy Argument instances for use in the generated signatures. rO)r�r�r�r�r�r�r�)r r�r�r�r r�) r^rr�r�r�r�rrr�r�r� argumentss rRr�z,PydanticModelTransformer.get_field_arguments)s����y�y�~�~�� �  � ���%�"9�"9� � � ���)�7�F�;�#��I�I�)A�#0�#I�U�Z�Z�6�5I� � � � �  ����  s�A A,c��|js&|j|t|j��ry|jry|j j S)a@Indicates whether the generated `__init__` should get a `**kwargs` at the end of its signature. We disallow arbitrary kwargs if the extra config setting is "forbid", or if the plugin config says to, *unless* a required dynamic alias is present (since then we can't determine a valid signature). FT)r�is_dynamic_alias_presentr�r@r�rYr�)r^rr�s rRr�z1PydanticModelTransformer.should_init_forbid_extraIsI�� �&�&��,�,�V�T�&�:T�:T�5U�V�� � � ���!�!�3�3�3rTc�\�|D]}|js�y|r|D]}|j��yy)z�Returns whether any fields on the model have a "dynamic alias", i.e., an alias that cannot be determined during static analysis. TF)r�r�)rr@rs rRr�z1PydanticModelTransformer.is_dynamic_alias_presentVs;�� �E��&�&��� ����;�;�&�� �rTN) r�rr�zExpression | Statementr�r1rYrXr�r�)r�r�)r�r�)r�r5)r1r5rr�r�zJtuple[list[PydanticModelField] | None, list[PydanticModelClassVar] | None])rHrr��Iterator[AssignmentStmt])rbrr�r�)rHrr1r5rz dict[str, PydanticModelClassVar]r�z1PydanticModelField | PydanticModelClassVar | None)rqr&r�r�r�rr�r�) r�list[PydanticModelField]r�r5rr�rr�r�r�)rr�r�r1rr�r�r�r�)r�r�r�rr2r�r��ModelConfigData | None)rHrr�r�)rHrr�r�)rHrr�ztuple[str | None, bool])rr�r�r�r�r�r�r�r�r�rr�rr�r�r�r��list[Argument])rr�r�r5r�r�)rr�r@r�r�r�)r�r�r�r�rr�r]r�rrrr`rRrSrprrrr8� staticmethodrirjrnror�r�r�r�rTrRr�r��s��� '��8�� +� � +�'� +�-� +� ,� +� � +�"�H2�6J�XBL�+�BL�<@�BL� S�BL�HR�S� �"� �2A� �Oo� � :� �B$�L-X�.�-X�8G�-X�VZ�-X�ko�-X� �-X�^& �(�& � �& �� & � � & � � & �PB�>!�F�2��2�*� �� �����6����B*/��(����� � � � #'� �����#'�� ��@ 4�� �� rTr�c�T�eZdZdZ d dd�Zd d�Zd d�Zd d�Zy) r5z(Pydantic mypy plugin model config class.Nc�X�||_||_||_||_||_||_yrW)r�rr�rr@r�)r^r�rr�rr@r�s rRr]zModelConfigData.__init__hs2��)����� �.��� 0���#6�� ��� rTc�p�|jj�D��cic] \}}|�� ||�� c}}Scc}}w)z�Returns a dict of Pydantic model config names to their values. It includes the config if config value is not `None`. )�__dict__r7)r^�k�vs rRrzModelConfigData.get_values_dictxs7�� "&���!4�!4�!6�H�!6���A�!�-��1��!6�H�H��Hs� 2�2c�p�|�y|j�j�D]\}}t|||��y)z$Update Pydantic model config values.N)rr7r�)r^r�r�r�s rRr9zModelConfigData.updates6�� �>� ��*�*�,�2�2�4�D�A�q� �D�!�Q� �5rTc�8�t||��t|||�yy)zFSet default value for Pydantic model config if config value is `None`.N)r�r�)r^r�r$s rRrCzModelConfigData.setdefault�s �� �4�� � %� �D�#�u� %� &rT)NNNNNN) r�r�rr�r�r�rr�r@r�r�r�r�)r�r�r�r�)r�r�r$rr�r�)r�r�r�r�r]rr9rCr�rTrRr5r5esh��2�%)�"�'+�(,�+/�"��!����%� � &� � )� ��� I� �&rTr5z pydantic-ormzInvalid from_attributes call�Pydanticzpydantic-configzInvalid config valuezpydantic-aliaszDynamic alias disallowedzpydantic-unexpectedzUnexpected behaviorzpydantic-fieldzUntyped field disallowedzInvalid Field defaultsz!Extra field on RootModel subclassc�<�|jd|�d�|t��y)zCEmits an error when the model does not have `from_attributes=True`.ruz$" does not have from_attributes=True��codeN)r?� ERROR_ORM)� model_namer�r�s rRr�r��s���H�H�q�� �@� A�7�QZ�H�[rTc�<�|jd|�d�|t��y)z0Emits an error when the config value is invalid.zInvalid value for "Config.rur�N)r?� ERROR_CONFIG)r�r�r�s rRr�r��s���H�H�)�$��q� 1�7��H�NrTc�4�|jd|t��y)znEmits required dynamic aliases error. This will be called when `warn_required_dynamic_aliases=True`. z#Required dynamic aliases disallowedr�N)r?� ERROR_ALIAS�r�r�s rRrArA�s�� �H�H� 2�G�+�H�NrTc�V�d}d|�d�}|d|�d�z }|j||t��y)z Emits unexpected behavior error.z6https://github.com/pydantic/pydantic/issues/new/choosez7The pydantic mypy plugin ran into unexpected behavior: � z&Please consider reporting this bug at z so we can try to fix it!r�N)r?�ERROR_UNEXPECTED)r�r�r��link� full_messages rRr�r��sA�� D�D�L�V�H�TV�W�L��<�T�F�B[�\�\�L��H�H�\�7�)9�H�:rTc�4�|jd|t��y)z;Emits an error when there is an untyped field in the model.zUntyped fields disallowedr�N)r?� ERROR_UNTYPEDr�s rRrgrg�s���H�H� (�'� �H�FrTc�4�|jd|t��y)z]Emits an error when there is more than just a root field defined for a subclass of RootModel.z2Only `root` is allowed as a field of a `RootModel`r�N)r?�ERROR_EXTRA_FIELD_ROOT_MODELr�s rRrTrT�s���H�H� A�7�Qm�H�nrTc�D�|j}||jvrd|j|} | jrIt| jt �r/|j jj| j�t|t�r|jd�} n|jdg�} |r6|xstt|��}ttd�|dt d�g} n+|xs t|�}ttd�|dt �g} | |z}ggg}} } |D]p}|j"sJd��| j%|j"�| j%|j&j(�|j%|j*��rt-| || || �}|r|g|_t ||t1t3�g��}||_t5||�|_||_|j:dz|z|_|j>|_||jvr2tA||j�}|j||j|<|rud|_!t||j6�}||_|j<|_d|_"tG|tId�g|�}|j>|_tKtL|�} ntKtL|�} d| _| |j|<|jNj jj%|�y) zhVery closely related to `mypy.plugins.common.add_method_to_class`, with a few pydantic-specific changes.zbuiltins.functionr NT�__pydantic_self__z"All arguments must be fully typed.r�r�)(r�r'r�rlrmrr:r;�remover1r��named_generic_typer=rArr*rr�r�r�r�r�r8� variablesrr!r3r�r/rdr�r�rB� is_decoratedr�rr r&r�defn)r�r�r�r�r�r��tvar_defr�r�rq� function_type�firstrzr#ryr�� signaturer.�r_namer��decs rRr�r��s��� �8�8�D� �t�z�z���j�j���� � � �J�s�x�x��$A� �H�H�M�M� � ���� *��#�6�7����':�;� ��.�.�/B�B�G� ���>��-��*=�!>� ��#�f�+�y�$���F�G���4��t�!4� ��#�1�2�I�t�W�M�N�� �4�<�D�&(�"�b�)�y�I����"�"�H�$H�H�"�����,�,�-�������*�*�+�������"� � �Y� �9�k�=�Y�I��'�j� �� �4��u�h�j�\�2� 3�D��D�I�!�)�T�2�D�I�"�D�M��]�]�S�(�4�/�D�N�� � �D�I� �t�z�z��-�d�D�J�J�?��!�Z�Z��-�� � �6�� � ��� ��d�i�i� ������n�n�� ������x� �6�7��;���9�9����d�C�(���d�D�)���C���D�J�J�t���I�I�N�N�����t�$rTc��|jd�sytjdk\rddl}n ddl}t|d�5}|j|�cddd�S#t $rddl}|jd�YywxYw#1swYyxYw)z�Returns a dict of config keys to values. It reads configs from toml file and returns `None` if the file is not a toml file. z.tomlN)�� rzJNo TOML parser installed, cannot read configuration from `pyproject.toml`.�rb) ry�sys� version_info�tomllib�tomli� ImportError�warnings�warn�open�load)r��toml_r��rfs rRr�r�s~�� � � �� (�� ���7�"�� � !� �k�4� �B��z�z�"�~���� � � � �M�M�f� g��  �� !� �s�A�A;�A8�7A8�;B)rQr�r�z type[Plugin])r}r.r�r;)r�r�r�r,r�rr�r�)r�r�r�r1r�rr�r�)r�r1r�rr�r�)r�r�r�z8CheckerPluginInterface | SemanticAnalyzerPluginInterfacer�rr�r�)r�r,r�rr�r�)NNF)r�z8SemanticAnalyzerPluginInterface | CheckerPluginInterfacer�rr�r�r�r�r�r;r�r�r�zTypeVarType | Noner�r�r�r�)r�r�r�zdict[str, Any] | None)|r�� __future__rr�� configparserr�typingrrr�mypy.errorcodesr�mypy.expandtyper r � mypy.nodesr r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*� mypy.optionsr+� mypy.pluginr,r-r.r/r0r1�mypy.plugins.commonr2� mypy.semanalr3�mypy.server.triggerr4� mypy.stater5� mypy.typeopsr6� mypy.typesr7r8r9r:r;r<r=r>r?r@� mypy.typevarsrA� mypy.utilrB� mypy.versionrC� mypy_version�pydantic._internalrD�pydantic.versionrEr�r�rerrrtr��DATACLASS_FULLNAMEr,r+�MYPY_VERSION_TUPLEr�rSrPrXrzr�r�r�r5r�r�r�r�r��ERROR_FIELD_DEFAULTSr�r�r�rAr�rgrTr�r�r�rTrR�<module>r sf��d�"� �%�*�*�%�@�!�!�!�!�!�!�!�!�!�D!����+�5��0� � � �(�2�4�&�/� ��'� �.��=��5��R��(��5��K����(� �5��� �� � �3@�V�3@�l+C�+C�\#�4AT�AT�H � �2N �N �b$&�$&�N �n�&D�j� Q� ��*�,B�J�O� ��(�*D�j�Q� ��2�4I�:�V���*�,F� �S� � �!1�3K�Z�X��(�)9�;^�`j�k��\� O� O�;� �;�N�;�Y`�;� �;�G� o�"�#'� �U%� A�U%� �U%� �U%� � U%� � U%� � U%�!�U%��U%� �U%�prT

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