28 lines
671 B
Python
28 lines
671 B
Python
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()
|