def test_no_set_instantiation(self): with self.assertRaises(TypeError): typing.Set() with self.assertRaises(TypeError): typing.Set[T]() with self.assertRaises(TypeError): typing.Set[int]()
def emit_components(m: Module, *, target_module: ModuleType) -> Module: m.toplevel.from_("fastapi", "Depends") scanned = scan_module(target_module) spec_map = { component.__name__: fnspec(component) for component in scanned.components } code_map: t.Dict[str, Object] = {} seen: t.Set(str) = set() for name, spec in spec_map.items(): if inspect.iscoroutinefunction(spec.body): raise NotImplementedError("async support") if len(spec.arguments) > 0: code = create_component_code(spec, spec_map) code_map[name] = code def _visit(name: str) -> None: if name in seen: return seen.add(name) if name not in code_map: return spec = spec_map[name] for subname, _, _ in spec.arguments: if subname not in code_map: continue _visit(subname) code = code_map[name] m.stmt(code) # emit with dependencies ordered for name in spec_map: _visit(name) return m