from __future__ import annotations from typing import Dict, Iterable, Optional from docforge.model.object import DocObject class Module: """Represents a documented Python module.""" def __init__( self, path: str, docstring: Optional[str] = None, ) -> None: self.path = path self.docstring = docstring self.members: Dict[str, DocObject] = {} def add_object(self, obj: DocObject) -> None: self.members[obj.name] = obj def get_object(self, name: str) -> DocObject: return self.members[name] def get_all_objects(self) -> Iterable[DocObject]: return self.members.values()