skppy.parser_legacy.diagnostics

Inspect parser support and failures for pre-ZIP SketchUp files.

Diagnostics distinguish three questions: whether a complete model parses, whether every class declared by its CVersionMap is supported, and which runtime-class tags actually occur in the object graph. The file helpers do not modify their input.

Example

report = diagnose_legacy_class_coverage_file("legacy.skp")
for entry in report.missing_entries:
    print(entry.class_name, entry.version)
class skppy.parser_legacy.diagnostics.LegacyClassCoverageEntry[source]

Bases: object

Support status for one class in a legacy version map.

__init__(class_name: str, version: int, status: str) None
class skppy.parser_legacy.diagnostics.LegacyClassCoverageReport[source]

Bases: object

Coverage summary for classes declared by a legacy version map.

__init__(entries: tuple[LegacyClassCoverageEntry, ...], issues: tuple[LegacyDiagnosticIssue, ...] = ()) None
property heuristic_entries: tuple[LegacyClassCoverageEntry, ...]

Return version-map classes currently recovered heuristically.

property missing_entries: tuple[LegacyClassCoverageEntry, ...]

Return version-map classes without parser support yet.

property ok: bool

Return True when the version map was read without issues.

property supported_entries: tuple[LegacyClassCoverageEntry, ...]

Return version-map classes with direct parser support.

class skppy.parser_legacy.diagnostics.LegacyDiagnosticIssue[source]

Bases: object

One diagnostic issue found while parsing a legacy stream.

__init__(kind: str, message: str, class_name: str | None = None, offset: int | None = None, schema: int | None = None, class_index: int | None = None, object_index: int | None = None, tag_kind: str | None = None) None
class skppy.parser_legacy.diagnostics.LegacyDiagnosticReport[source]

Bases: object

Summary of parser-coverage issues for one legacy stream.

__init__(issues: tuple[LegacyDiagnosticIssue, ...]) None
property ok: bool

Return True when the stream parsed without diagnostic issues.

class skppy.parser_legacy.diagnostics.LegacyRuntimeClassObservation[source]

Bases: object

Observed runtime-class tags for one class declared by a legacy version map.

__init__(class_name: str, version: int, status: str, count: int, first_offset: int | None) None
class skppy.parser_legacy.diagnostics.LegacyRuntimeClassReport[source]

Bases: object

Runtime-class tag observations for one legacy stream.

__init__(entries: tuple[LegacyRuntimeClassObservation, ...], issues: tuple[LegacyDiagnosticIssue, ...] = ()) None
property heuristic_observed_entries: tuple[LegacyRuntimeClassObservation, ...]

Return observed runtime classes currently recovered heuristically.

property missing_observed_entries: tuple[LegacyRuntimeClassObservation, ...]

Return observed runtime classes without direct parser support.

property observed_entries: tuple[LegacyRuntimeClassObservation, ...]

Return classes whose runtime-class tag appears in the stream.

property ok: bool

Return True when runtime-class observations were read cleanly.

skppy.parser_legacy.diagnostics.diagnose_legacy_bytes(data: bytes) LegacyDiagnosticReport[source]

Parse legacy bytes and return unsupported-class diagnostics.

skppy.parser_legacy.diagnostics.diagnose_legacy_class_coverage_bytes(data: bytes) LegacyClassCoverageReport[source]

Read legacy bytes and report per-class support coverage.

skppy.parser_legacy.diagnostics.diagnose_legacy_class_coverage_file(path: str | Path) LegacyClassCoverageReport[source]

Read a legacy file and report per-class support coverage.

skppy.parser_legacy.diagnostics.diagnose_legacy_class_coverage_stream(stream: BinaryIO) LegacyClassCoverageReport[source]

Read the legacy version map and report per-class support coverage.

skppy.parser_legacy.diagnostics.diagnose_legacy_file(path: str | Path) LegacyDiagnosticReport[source]

Parse a legacy file and return unsupported-class diagnostics.

skppy.parser_legacy.diagnostics.diagnose_legacy_runtime_classes_bytes(data: bytes) LegacyRuntimeClassReport[source]

Report runtime-class tags actually observed in legacy bytes.

skppy.parser_legacy.diagnostics.diagnose_legacy_runtime_classes_file(path: str | Path) LegacyRuntimeClassReport[source]

Report runtime-class tags actually observed in a legacy file.

skppy.parser_legacy.diagnostics.diagnose_legacy_runtime_classes_stream(stream: BinaryIO) LegacyRuntimeClassReport[source]

Report runtime-class tags actually observed in a legacy stream.

skppy.parser_legacy.diagnostics.diagnose_legacy_stream(stream: BinaryIO) LegacyDiagnosticReport[source]

Parse a legacy stream and return unsupported-class diagnostics.