
    4i[                    \    d dl mZ d dlmZmZ erd dlmZ d dlmZ d dl	m
Z
  G d d      Zy)	    )annotations)TYPE_CHECKINGAny)MutableMapping)Path)ComponentManifestc                  D    e Zd ZdZddZ	 	 	 	 	 	 d	dZd
dZddZddZy)ComponentManifestHandlerzEHandles component registration from parsed ComponentManifest objects.c                     i | _         i | _        y )N)	_metadata_asset_rootsselfs    |/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/streamlit/components/v2/component_manifest_handler.py__init__z!ComponentManifestHandler.__init__   s    AC79    c                    |j                   }i }|j                  D ]M  }|j                   }| d| }|j                  |      }||| j                  |<   d|i||<   || j                  |<   O |S )af  Process a manifest and return component definitions to register.

        Parameters
        ----------
        manifest : ComponentManifest
            The manifest to process
        package_root : Path
            The package root directory

        Returns
        -------
        dict[str, dict[str, Any]]
            Dictionary mapping component names to their definitions

        Raises
        ------
        StreamlitComponentRegistryError
            If a declared ``asset_dir`` does not exist, is not a directory, or
            resolves (after following symlinks) outside of ``package_root``.
        .name)r   
componentsresolve_asset_rootr   r   )	r   manifestpackage_root	base_namecomponent_definitionscomp_config	comp_namecomponent_name
asset_roots	            r   process_manifestz)ComponentManifestHandler.process_manifest#   s    . MM	 " $.. 	6K#((I ){!I;7N %77EJ%4>!!.1 5!.1
 .6DNN>*#	6& %$r   c                8    | j                   j                  |      S )aP  Get metadata for a specific component.

        Parameters
        ----------
        component_name : str
            Fully-qualified component name (e.g., ``"package.component"``).

        Returns
        -------
        ComponentManifest | None
            The manifest that declared this component, or ``None`` if unknown.
        )r   getr   r   s     r   get_metadataz%ComponentManifestHandler.get_metadataS   s     ~~!!.11r   c                8    | j                   j                  |      S )a_  Get the absolute asset root directory for a component if declared.

        Parameters
        ----------
        component_name : str
            Fully-qualified component name (e.g. "package.component").

        Returns
        -------
        Path | None
            Absolute path to the component's asset root if present, otherwise None.
        )r   r"   r#   s     r   get_asset_rootz'ComponentManifestHandler.get_asset_rootb   s       $$^44r   c                ,    t        | j                        S )zGet a mapping of component names to their asset root directories.

        Returns
        -------
        dict[str, Path]
            A shallow copy mapping fully-qualified component names to absolute
            asset root directories.
        )dictr   r   s    r   get_asset_watch_rootsz.ComponentManifestHandler.get_asset_watch_rootsq   s     D%%&&r   N)returnNone)r   r   r   r   r*   zdict[str, dict[str, Any]])r   strr*   zComponentManifest | None)r   r,   r*   zPath | None)r*   zdict[str, Path])	__name__
__module____qualname____doc__r   r    r$   r&   r)    r   r   r
   r
      s7    O:.%).%9=.%	".%`25	'r   r
   N)
__future__r   typingr   r   collections.abcr   pathlibr   (streamlit.components.v2.manifest_scannerr   r
   r1   r   r   <module>r7      s%    # %.J`' `'r   