MCPcopy Index your code
hub / github.com/OpenBMB/ChatDev / field_specs

Method field_specs

entity/configs/node/tooling.py:101–151  ·  view source on GitHub ↗
(cls)

Source from the content-addressed store, hash-verified

99
100 @classmethod
101 def field_specs(cls) -> Dict[str, ConfigFieldSpec]:
102 specs = super().field_specs()
103 catalog = get_function_catalog()
104 modules = catalog.iter_modules()
105 name_spec = specs.get("name")
106 if name_spec is not None:
107 description = name_spec.description or "Function name"
108 enum_options: List[EnumOption] | None = None
109 enum_values: List[str] | None = None
110 if catalog.load_error:
111 description = f"{description} (loading failed: {catalog.load_error})"
112 elif not modules:
113 description = f"{description} (no functions found in directory)"
114 else:
115 enum_options = []
116 enum_values = []
117 for module_name, metas in modules:
118 all_label = f"{module_name}{MODULE_ALL_SUFFIX}"
119 enum_values.append(all_label)
120 preview = ", ".join(meta.name for meta in metas[:3])
121 suffix = "..." if len(metas) > 3 else ""
122 module_hint = f"{module_name}.py"
123 enum_options.append(
124 EnumOption(
125 value=all_label,
126 label=all_label,
127 description=(
128 f"Load all {len(metas)} functions from {module_hint}"
129 + (f" ({preview}{suffix})" if preview else "")
130 ),
131 )
132 )
133 for module_name, metas in modules:
134 for meta in metas:
135 label = f"{module_name}:{meta.name}"
136 enum_values.append(meta.name)
137 option_description = meta.description or "This function does not provide a docstring"
138 enum_options.append(
139 EnumOption(
140 value=meta.name,
141 label=label,
142 description=option_description,
143 )
144 )
145 specs["name"] = replace(
146 name_spec,
147 enum=enum_values,
148 enum_options=enum_options,
149 description=description,
150 )
151 return specs
152
153
154@dataclass

Callers

nothing calls this directly

Calls 5

get_function_catalogFunction · 0.90
EnumOptionClass · 0.90
iter_modulesMethod · 0.80
field_specsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected