
    .hK                     j    d Z ddlZddlmZ ddlmZmZmZmZm	Z	m
Z
mZ  G d deej                  ZdS )z2Base classes and interfaces for FastMCP resources.    N)	Annotated)AnyUrl	BaseModel
ConfigDictFieldUrlConstraintsValidationInfofield_validatorc                   j   e Zd ZU dZ ed          Z edd          Zee	 e
d          f         ed	<    ed
d          Zedz  ed<    edd          Zedz  ed<    eddd          Zeed<    edd          ededz  dedefd                        Zej        deez  fd            ZdS )ResourcezBase class for all resources.T)validate_default.zURI of the resource)defaultdescriptionF)host_requiredurizName of the resourceN)r   r   namezDescription of the resourcer   z
text/plainz!MIME type of the resource contentz^[a-zA-Z0-9]+/[a-zA-Z0-9\-+.]+$)r   r   pattern	mime_typebefore)modeinforeturnc                 ~    |r|S |j                             d          x}rt          |          S t          d          )z*Set default name from URI if not provided.r   z#Either name or uri must be provided)datagetstr
ValueError)clsr   r   r   s       ^/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/mcp/server/fastmcp/resources/base.pyset_default_namezResource.set_default_name#   sF      	K)--&&&3 	s88O>???    c                 
   K   dS )zRead the resource content.N )selfs    r   readzResource.read-   s       	r!   )__name__
__module____qualname____doc__r   model_configr   r   r   r   r   __annotations__r   r   r   r   r
   classmethodr	   r    abcabstractmethodbytesr%   r#   r!   r   r   r      s        '':t444LBG%!6C C CC6>>>>>>	?    u)?NNND#*NNN#e14  Kt    U72  Is    _V(+++@C$J @n @ @ @ @ [ ,+@ 	C%K      r!   r   )r)   r-   typingr   pydanticr   r   r   r   r   r	   r
   ABCr   r#   r!   r   <module>r3      s    8 8 



                           y#'     r!   