Spaces:
Running
Running
| from abc import ABC | |
| class Service(ABC): | |
| name: str | |
| ready: bool = False | |
| def get_schema(self): | |
| """Build a dictionary listing all methods, their parameters, types, return types and documentation.""" | |
| schema = {} | |
| ignore = ["teardown", "set_ready"] | |
| for method in dir(self): | |
| if method.startswith("_") or method in ignore: | |
| continue | |
| func = getattr(self, method) | |
| schema[method] = { | |
| "name": method, | |
| "parameters": func.__annotations__, | |
| "return": func.__annotations__.get("return"), | |
| "documentation": func.__doc__, | |
| } | |
| return schema | |
| async def teardown(self) -> None: | |
| return | |
| def set_ready(self) -> None: | |
| self.ready = True | |