
    Ch                     N    S r SSKJrJrJrJrJr  S\\-  \-  \-  \-  S\4S jrg)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                    [        U [        5      (       a  [        U S5      (       a  U R                  b  U R                  $ U R                  (       aH  [        U R                  S5      (       a-  U R                  R                  b  U R                  R                  $ U R
                  $ [        U S5      (       a  U R                  b  U R                  $ U R
                  $ )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    S/home/james-whalen/.local/lib/python3.13/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   