|
1 | 1 | """A search application for exploring the HoloViz MCP search tool.""" |
2 | 2 |
|
| 3 | +from typing import Literal |
| 4 | + |
3 | 5 | import panel as pn |
4 | 6 | import panel_material_ui as pmui |
5 | 7 | import param |
@@ -99,15 +101,15 @@ class SearchConfiguration(param.Parameterized): |
99 | 101 |
|
100 | 102 | query = param.String(default="What is HoloViz?", doc="Search text for semantic similarity search across the documentation") |
101 | 103 |
|
102 | | - project = param.Selector( |
| 104 | + project: str = param.Selector( |
103 | 105 | default=ALL, |
104 | 106 | objects=[ALL, "panel", "hvplot", "datashader", "holoviews", "geoviews", "param", "colorcet", "holoviz"], |
105 | 107 | doc="Filter results to a specific project. Select 'all' for all projects.", |
106 | 108 | ) |
107 | 109 |
|
108 | 110 | max_results = param.Integer(default=5, bounds=(1, 50), doc="Maximum number of search results to return") |
109 | 111 |
|
110 | | - content = param.Selector( |
| 112 | + content: Literal["truncated", "chunk", "full", "none"] = param.Selector( |
111 | 113 | default="truncated", |
112 | 114 | objects=["truncated", "chunk", "full", "none"], |
113 | 115 | doc='Controls what content is returned. "truncated": full doc smart-truncated around query keywords (default). ' |
@@ -293,7 +295,10 @@ class SearchApp(pn.viewable.Viewer): |
293 | 295 | """ |
294 | 296 |
|
295 | 297 | title = param.String(default="HoloViz MCP - search Tool Demo", doc="Title of the search app") |
296 | | - config = param.ClassSelector(class_=SearchConfiguration, doc="Configuration for the search app") |
| 298 | + # Annotated as non-optional (always set in __init__) so param 2.4.0's generic |
| 299 | + # ClassSelector descriptor does not infer ``SearchConfiguration | None`` and |
| 300 | + # trigger union-attr errors on ``self.config.param``. |
| 301 | + config: SearchConfiguration = param.ClassSelector(class_=SearchConfiguration, doc="Configuration for the search app") |
297 | 302 |
|
298 | 303 | def __init__(self, **params): |
299 | 304 | """Initialize the SearchApp with default configuration.""" |
|
0 commit comments