
    {h                     L    d Z ddlmZmZmZmZmZ deez  ez  ez  ez  defdZy)zUtility functions for working with metadata in MCP types.

These utilities are primarily intended for client-side usage to properly display
human-readable names in user interfaces in a spec compliant way.
    )ImplementationPromptResourceResourceTemplateToolobjreturnc                 ~   t        | t              r~t        | d      r| j                  | j                  S | j                  rBt        | j                  d      r,| j                  j                  | j                  j                  S | j
                  S t        | d      r| j                  | j                  S | j
                  S )a  
    Get the display name for an MCP object with proper precedence.

    This is a client-side utility function designed to help MCP clients display
    human-readable names in their user interfaces. When servers provide a 'title'
    field, it should be preferred over the programmatic 'name' field for display.

    For tools: title > annotations.title > name
    For other objects: title > name

    Example:
        # In a client displaying available tools
        tools = await session.list_tools()
        for tool in tools.tools:
            display_name = get_display_name(tool)
            print(f"Available tool: {display_name}")

    Args:
        obj: An MCP object with name and optional title fields

    Returns:
        The display name to use for UI presentation
    title)
isinstancer   hasattrr   annotationsname)r   s    Z/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/mcp/shared/metadata_utils.pyget_display_namer   
   s    0 #t3 SYY%:99??ws@S__EZEZEf??(((xx 3 SYY%:99xx    N)	__doc__	mcp.typesr   r   r   r   r   strr    r   r   <module>r      s;    O N#$/F25EEV #[^ #r   