Generator module for converting scanned data to LCP format.
generate_lcp
generate_lcp(scanned_module: ScannedModule) -> LCPDocument
Generate an LCP document from scanned module data.
Source code in src/lcp/generator.py
| def generate_lcp(scanned_module: ScannedModule) -> LCPDocument:
"""Generate an LCP document from scanned module data."""
# Build manifest
manifest = Manifest(
schema_version="1.0",
library=Library(
name=scanned_module.name,
version=scanned_module.version,
language="python",
),
distribution=Distribution.PYPI,
generation=Generation(
tool="lcp",
version="0.1.0",
date=datetime.now(timezone.utc),
),
symbol_resolution="fully-qualified",
)
# Convert all symbols
symbols: dict[str, Symbol] = {}
detailed_index: dict[str, DetailedIndexEntry] = {}
for scanned in scanned_module.symbols:
symbol_id, symbol = _convert_symbol(scanned)
symbols[symbol_id] = symbol
# Add detailed index if source info available
index_entry = _build_detailed_index_entry(scanned)
if index_entry:
detailed_index[symbol_id] = index_entry
# Process class members
for member in scanned.members:
member_id, member_symbol = _convert_symbol(member)
symbols[member_id] = member_symbol
return LCPDocument(
manifest=manifest,
symbols=symbols,
deprecations=None,
detailed_index=detailed_index if detailed_index else None,
)
|