Typed API Models
oduit.api_models contains the typed dataclasses returned by the preferred
high-level Python inspection API.
Typed public Python API models for high-level inspection workflows.
- class oduit.api_models.DictModel[source]
Bases:
objectMixin that exposes a stable
to_dict()helper.
- class oduit.api_models.EnvironmentSource(name: str | None = None, source: str | None = None, config_path: str | None = None)[source]
Bases:
DictModelSource metadata for an inspected environment.
- class oduit.api_models.BinaryProbe(value: str | None = None, resolved_path: str | None = None, exists: bool = False, executable: bool = False, configured: bool = False, auto_detected: bool = False)[source]
Bases:
DictModelResolved binary metadata for an environment.
- class oduit.api_models.AddonsPathStatus(configured: list[str] = <factory>, base: list[str] = <factory>, all: list[str] = <factory>, valid: list[str] = <factory>, invalid: list[str] = <factory>)[source]
Bases:
DictModelResolved addon path information.
- class oduit.api_models.OdooVersionInfo(version: str | None = None, series: str | None = None)[source]
Bases:
DictModelResolved Odoo version and series information.
- class oduit.api_models.DatabaseSummary(db_name: str | None = None, db_host: str | None = None, db_user: str | None = None)[source]
Bases:
DictModelSafe database configuration summary.
- class oduit.api_models.EnvironmentContext(environment: ~oduit.api_models.EnvironmentSource, resolved_binaries: dict[str, ~oduit.api_models.BinaryProbe], addons_paths: ~oduit.api_models.AddonsPathStatus, odoo: ~oduit.api_models.OdooVersionInfo, database: ~oduit.api_models.DatabaseSummary, duplicate_modules: dict[str, list[str]] = <factory>, available_module_count: int = 0, invalid_addon_paths: list[str] = <factory>, missing_critical_config: list[str] = <factory>, doctor_summary: dict[str, int] = <factory>, doctor_checks: list[dict[str, ~typing.Any]] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelTyped environment snapshot for planning and inspection.
- environment: EnvironmentSource
- resolved_binaries: dict[str, BinaryProbe]
- addons_paths: AddonsPathStatus
- odoo: OdooVersionInfo
- database: DatabaseSummary
- __init__(environment: ~oduit.api_models.EnvironmentSource, resolved_binaries: dict[str, ~oduit.api_models.BinaryProbe], addons_paths: ~oduit.api_models.AddonsPathStatus, odoo: ~oduit.api_models.OdooVersionInfo, database: ~oduit.api_models.DatabaseSummary, duplicate_modules: dict[str, list[str]] = <factory>, available_module_count: int = 0, invalid_addon_paths: list[str] = <factory>, missing_critical_config: list[str] = <factory>, doctor_summary: dict[str, int] = <factory>, doctor_checks: list[dict[str, ~typing.Any]] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonInspection(module: str, exists: bool, module_path: str | None, addon_type: str, version_display: str, manifest: dict[str, ~typing.Any], manifest_fields: list[str], direct_dependencies: list[str] = <factory>, reverse_dependencies: list[str] = <factory>, reverse_dependency_count: int = 0, install_order_slice: list[str] = <factory>, install_order_available: bool = False, dependency_cycle: list[str] = <factory>, missing_dependencies: list[str] = <factory>, impacted_modules: list[str] = <factory>, series: str | None = None, python_dependencies: list[str] = <factory>, binary_dependencies: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelTyped addon inspection payload.
- __init__(module: str, exists: bool, module_path: str | None, addon_type: str, version_display: str, manifest: dict[str, ~typing.Any], manifest_fields: list[str], direct_dependencies: list[str] = <factory>, reverse_dependencies: list[str] = <factory>, reverse_dependency_count: int = 0, install_order_slice: list[str] = <factory>, install_order_available: bool = False, dependency_cycle: list[str] = <factory>, missing_dependencies: list[str] = <factory>, impacted_modules: list[str] = <factory>, series: str | None = None, python_dependencies: list[str] = <factory>, binary_dependencies: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonInstallState(success: bool, operation: str, module: str, record_found: bool = False, state: str = 'uninstalled', installed: bool = False, database: str | None = None, error: str | None = None, error_type: str | None = None)[source]
Bases:
DictModelTyped runtime install-state lookup result for one addon.
- class oduit.api_models.InstalledAddonRecord(module: str, state: str, installed: bool, shortdesc: str | None = None, application: bool | None = None, auto_install: bool | None = None)[source]
Bases:
DictModelOne runtime addon record read from
ir.module.module.
- class oduit.api_models.InstalledAddonInventory(success: bool, operation: str, addons: list[InstalledAddonRecord] = <factory>, total: int = 0, states: list[str] = <factory>, modules_filter: list[str] = <factory>, database: str | None = None, error: str | None = None, error_type: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelTyped runtime addon inventory for one environment.
- addons: list[InstalledAddonRecord]
- __init__(success: bool, operation: str, addons: list[InstalledAddonRecord] = <factory>, total: int = 0, states: list[str] = <factory>, modules_filter: list[str] = <factory>, database: str | None = None, error: str | None = None, error_type: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.UpdatePlan(module: str, exists: bool, impact_set: list[str] = <factory>, impact_count: int = 0, missing_dependencies: list[str] = <factory>, duplicate_name_risk: bool = False, duplicate_module_locations: list[str] = <factory>, dependency_cycle: list[str] = <factory>, cycle_risk: bool = False, ordering_constraints: list[str] = <factory>, recommended_sequence: list[str] = <factory>, backup_advised: bool = False, write_protect_db: bool = False, agent_write_protect_db: bool = False, needs_mutation_flag: bool = False, agent_needs_mutation_flag: bool = False, human_runtime_db_mutation_policy: str = 'allow', human_runtime_db_mutation_allowed: bool = True, human_runtime_db_mutation_requires_flag: bool = False, agent_runtime_db_mutation_policy: str = 'allow', agent_runtime_db_mutation_allowed: bool = True, agent_runtime_db_mutation_requires_flag: bool = False, risk_score: int = 0, risk_level: str = 'low', risk_factors: list[str] = <factory>, verification_steps: list[str] = <factory>, inspection: AddonInspection | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelTyped read-only update planning payload.
- inspection: AddonInspection | None = None
- __init__(module: str, exists: bool, impact_set: list[str] = <factory>, impact_count: int = 0, missing_dependencies: list[str] = <factory>, duplicate_name_risk: bool = False, duplicate_module_locations: list[str] = <factory>, dependency_cycle: list[str] = <factory>, cycle_risk: bool = False, ordering_constraints: list[str] = <factory>, recommended_sequence: list[str] = <factory>, backup_advised: bool = False, write_protect_db: bool = False, agent_write_protect_db: bool = False, needs_mutation_flag: bool = False, agent_needs_mutation_flag: bool = False, human_runtime_db_mutation_policy: str = 'allow', human_runtime_db_mutation_allowed: bool = True, human_runtime_db_mutation_requires_flag: bool = False, agent_runtime_db_mutation_policy: str = 'allow', agent_runtime_db_mutation_allowed: bool = True, agent_runtime_db_mutation_requires_flag: bool = False, risk_score: int = 0, risk_level: str = 'low', risk_factors: list[str] = <factory>, verification_steps: list[str] = <factory>, inspection: AddonInspection | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.QueryModelResult(success: bool, operation: str, model: str, domain: list[Any] = <factory>, fields: list[str] | None = None, limit: int = 0, count: int = 0, total_count: int | None = None, limited: bool = False, ids: list[int] = <factory>, records: list[dict[str, ~typing.Any]]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None)[source]
Bases:
DictModelTyped wrapper for
OdooQuery.query_model()results.- classmethod from_dict(result: dict[str, Any]) QueryModelResult[source]
Create a typed result from a raw
OdooQuerydictionary.
- __init__(success: bool, operation: str, model: str, domain: list[Any] = <factory>, fields: list[str] | None = None, limit: int = 0, count: int = 0, total_count: int | None = None, limited: bool = False, ids: list[int] = <factory>, records: list[dict[str, ~typing.Any]]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None) None
- class oduit.api_models.RecordReadResult(success: bool, operation: str, model: str, record_id: int, found: bool, record: dict[str, Any] | None, fields: list[str] | None = None, database: str | None = None, error: str | None = None, error_type: str | None = None)[source]
Bases:
DictModelTyped wrapper for
OdooQuery.read_record()results.
- class oduit.api_models.SearchCountResult(success: bool, operation: str, model: str, domain: list[Any] = <factory>, count: int = 0, database: str | None = None, error: str | None = None, error_type: str | None = None)[source]
Bases:
DictModelTyped wrapper for
OdooQuery.search_count()results.
- class oduit.api_models.ModelFieldsResult(success: bool, operation: str, model: str, attributes: list[str] | None = None, module: str | None = None, field_names: list[str] = <factory>, field_definitions: dict[str, dict[str, ~typing.Any]]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None)[source]
Bases:
DictModelTyped wrapper for
OdooQuery.get_model_fields()results.- classmethod from_dict(result: dict[str, Any]) ModelFieldsResult[source]
Create a typed result from a raw
OdooQuerydictionary.
- __init__(success: bool, operation: str, model: str, attributes: list[str] | None = None, module: str | None = None, field_names: list[str] = <factory>, field_definitions: dict[str, dict[str, ~typing.Any]]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None) None
- class oduit.api_models.ModelViewRecord(id: int, name: str, view_type: str, mode: str | None = None, priority: int | None = None, inherit_id: list[Any] | None = None, key: str | None = None, active: bool | None = None, arch_db: str | None = None)[source]
Bases:
DictModelOne database-backed view record for a model.
- class oduit.api_models.ModelViewInventory(model: str, requested_types: list[str] = <factory>, primary_views: list[ModelViewRecord] = <factory>, extension_views: list[ModelViewRecord] = <factory>, view_counts: dict[str, int]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelDatabase-backed view inventory for a model.
- primary_views: list[ModelViewRecord]
- extension_views: list[ModelViewRecord]
- __init__(model: str, requested_types: list[str] = <factory>, primary_views: list[ModelViewRecord] = <factory>, extension_views: list[ModelViewRecord] = <factory>, view_counts: dict[str, int]=<factory>, database: str | None = None, error: str | None = None, error_type: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.DocumentationRuntimeInventory(models: dict[str, ~oduit.api_models.ModelFieldsResult]=<factory>, views: dict[str, ~oduit.api_models.ModelViewInventory]=<factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelBatched runtime metadata for many models in documentation flows.
- models: dict[str, ModelFieldsResult]
- views: dict[str, ModelViewInventory]
- class oduit.api_models.SourceEvidence(kind: str, message: str, path: str, line_hint: int | None = None)[source]
Bases:
DictModelMachine-readable evidence attached to source-location candidates.
- class oduit.api_models.ModelSourceCandidate(path: str, class_name: str, match_kind: str, declared_model: str, confidence: float, match_strength: str = 'confirmed', evidence: list[SourceEvidence] = <factory>, line_hint: int | None = None, reason: str | None = None)[source]
Bases:
DictModelRanked model source candidate for static source localization.
- evidence: list[SourceEvidence]
- class oduit.api_models.ModelSourceLocation(model: str, module: str, addon_root: str, resolution: str = 'not_found', ambiguous: bool = False, ambiguity_reason: str | None = None, candidates: list[ModelSourceCandidate] = <factory>, scanned_python_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelStatic source localization result for one addon/model pair.
- candidates: list[ModelSourceCandidate]
- __init__(model: str, module: str, addon_root: str, resolution: str = 'not_found', ambiguous: bool = False, ambiguity_reason: str | None = None, candidates: list[ModelSourceCandidate] = <factory>, scanned_python_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.FieldSourceCandidate(path: str, class_name: str, field_name: str, match_kind: str, declared_model: str, confidence: float, match_strength: str = 'confirmed', evidence: list[SourceEvidence] = <factory>, line_hint: int | None = None, reason: str | None = None)[source]
Bases:
DictModelRanked field source candidate for static source localization.
- evidence: list[SourceEvidence]
- class oduit.api_models.FieldSourceLocation(model: str, field: str, module: str, addon_root: str, exists: bool, resolution: str = 'not_found', ambiguous: bool = False, ambiguity_reason: str | None = None, source_exists: bool = False, runtime_exists: bool | None = None, runtime_only: bool = False, runtime_source_modules: list[str] = <factory>, candidates: list[FieldSourceCandidate] = <factory>, insertion_candidate: ModelSourceCandidate | None = None, insertion_line_range: list[int] | None = None, insertion_reason: str | None = None, insertion_confidence: float | None = None, related_files: list[str] = <factory>, scanned_python_files: list[str] = <factory>, rationale: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelStatic source localization result for one addon/model/field target.
- candidates: list[FieldSourceCandidate]
- insertion_candidate: ModelSourceCandidate | None = None
- __init__(model: str, field: str, module: str, addon_root: str, exists: bool, resolution: str = 'not_found', ambiguous: bool = False, ambiguity_reason: str | None = None, source_exists: bool = False, runtime_exists: bool | None = None, runtime_only: bool = False, runtime_source_modules: list[str] = <factory>, candidates: list[FieldSourceCandidate] = <factory>, insertion_candidate: ModelSourceCandidate | None = None, insertion_line_range: list[int] | None = None, insertion_reason: str | None = None, insertion_confidence: float | None = None, related_files: list[str] = <factory>, scanned_python_files: list[str] = <factory>, rationale: str | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonTestFile(path: str, test_type: str, references_model: bool = False, references_field: bool = False, confidence: float = 0.0, ranking_signals: list[str] = <factory>, related_paths: list[str] = <factory>)[source]
Bases:
DictModelRanked addon test file entry.
- class oduit.api_models.AddonTestInventory(module: str, addon_root: str, model: str | None = None, field: str | None = None, tests: list[AddonTestFile] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelStatic addon test inventory for coding-agent test selection.
- tests: list[AddonTestFile]
- class oduit.api_models.AddonInfo(module: str, module_path: str | None, addon_type: str, version_display: str, name: str = '', summary: str = '', description: str = '', category: str = '', author: str = '', website: str = '', license: str = '', external_dependencies: dict[str, list[str]]=<factory>, depends: list[str] = <factory>, reverse_dependencies: list[str] = <factory>, reverse_dependency_count: int = 0, missing_dependencies: list[str] = <factory>, installable: bool = False, auto_install: bool = False, models: list[str] = <factory>, inherit_models: list[str] = <factory>, model_count: int = 0, test_cases: list[AddonTestFile] = <factory>, test_count: int = 0, languages: list[str] = <factory>, installed_state: AddonInstallState | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelCombined static and runtime addon summary for onboarding workflows.
- test_cases: list[AddonTestFile]
- installed_state: AddonInstallState | None = None
- __init__(module: str, module_path: str | None, addon_type: str, version_display: str, name: str = '', summary: str = '', description: str = '', category: str = '', author: str = '', website: str = '', license: str = '', external_dependencies: dict[str, list[str]]=<factory>, depends: list[str] = <factory>, reverse_dependencies: list[str] = <factory>, reverse_dependency_count: int = 0, missing_dependencies: list[str] = <factory>, installable: bool = False, auto_install: bool = False, models: list[str] = <factory>, inherit_models: list[str] = <factory>, model_count: int = 0, test_cases: list[AddonTestFile] = <factory>, test_count: int = 0, languages: list[str] = <factory>, installed_state: AddonInstallState | None = None, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonDocTarget(module: str, addon_root: str, target_kind: str, manifest_path: str, inside_configured_addons_path: bool = False, warnings: list[str] = <factory>, candidate_addon_roots: list[str] = <factory>, ambiguous: bool = False)[source]
Bases:
DictModelResolved addon target for technical documentation workflows.
- class oduit.api_models.AddonTechnicalFile(path: str, category: str, size_bytes: int | None = None)[source]
Bases:
DictModelCompact file entry used for technical documentation inventories.
- class oduit.api_models.AddonXmlRecord(path: str, record_id: str | None = None, model: str | None = None, name: str | None = None, xml_tag: str = 'record', attributes: dict[str, str]=<factory>)[source]
Bases:
DictModelCompact XML inventory record for addon-local architecture evidence.
- class oduit.api_models.AddonHttpRoute(path: str, class_name: str, method_name: str, route: str | list[str], auth: str | None = None, route_type: str | None = None, methods: list[str] = <factory>, csrf: bool | None = None, website: bool | None = None, line_hint: int | None = None)[source]
Bases:
DictModelStatic controller route discovered from addon Python sources.
- class oduit.api_models.AddonTechnicalInventory(module: str, addon_root: str, files: list[AddonTechnicalFile] = <factory>, xml_records: list[AddonXmlRecord] = <factory>, http_routes: list[AddonHttpRoute] = <factory>, security_files: list[str] = <factory>, migration_files: list[str] = <factory>, todo_markers: list[SourceEvidence] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelRead-only technical inventory for addon-local architecture docs.
- files: list[AddonTechnicalFile]
- xml_records: list[AddonXmlRecord]
- http_routes: list[AddonHttpRoute]
- todo_markers: list[SourceEvidence]
- __init__(module: str, addon_root: str, files: list[AddonTechnicalFile] = <factory>, xml_records: list[AddonXmlRecord] = <factory>, http_routes: list[AddonHttpRoute] = <factory>, security_files: list[str] = <factory>, migration_files: list[str] = <factory>, todo_markers: list[SourceEvidence] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.DocumentationTrackedFile(path: str, category: str, size_bytes: int | None = None, sha256: str | None = None)[source]
Bases:
DictModelTracked addon source file entry used for documentation freshness checks.
- class oduit.api_models.DocumentationSourceSnapshot(algorithm: str = 'sha256', fingerprint: str = '', file_count: int = 0, files: list[DocumentationTrackedFile] = <factory>)[source]
Bases:
DictModelDeterministic fingerprint of addon source inputs.
- files: list[DocumentationTrackedFile]
- class oduit.api_models.DocumentationDocumentSnapshot(algorithm: str = 'sha256', fingerprint: str = '', size_bytes: int | None = None, line_count: int | None = None)[source]
Bases:
DictModelFingerprint of the generated Markdown document.
- class oduit.api_models.TechnicalDocumentationGeneratedBlock(id: str, renderer: str, schema_version: str = 'oduit.generated_markdown_block.v1', source_sha256: str = '', content_sha256: str = '', line_count: int | None = None, updated_at: str | None = None)[source]
Bases:
DictModelPersisted metadata for one managed generated markdown block.
- class oduit.api_models.TechnicalDocumentationMetadata(schema_version: str = 'oduit.technical_documentation.v1', module: str = '', addon_root: str = '', doc_path: str = 'docs/architecture.md', metadata_path: str = 'docs/architecture.oduit.json', template: str = 'arc42-addon-v1', created_at: str | None = None, last_generated_at: str | None = None, generation_count: int = 0, generator: dict[str, str]=<factory>, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, source_snapshot: DocumentationSourceSnapshot | None = None, document_snapshot: DocumentationDocumentSnapshot | None = None, generated_blocks: list[TechnicalDocumentationGeneratedBlock] = <factory>, refresh_count: int = 0, last_refreshed_at: str | None = None, reviewed_at: str | None = None, reviewed_by: str | None = None, review_note: str | None = None, warnings: list[str] = <factory>)[source]
Bases:
DictModelDurable addon-local metadata persisted next to generated docs.
- source_snapshot: DocumentationSourceSnapshot | None = None
- document_snapshot: DocumentationDocumentSnapshot | None = None
- generated_blocks: list[TechnicalDocumentationGeneratedBlock]
- __init__(schema_version: str = 'oduit.technical_documentation.v1', module: str = '', addon_root: str = '', doc_path: str = 'docs/architecture.md', metadata_path: str = 'docs/architecture.oduit.json', template: str = 'arc42-addon-v1', created_at: str | None = None, last_generated_at: str | None = None, generation_count: int = 0, generator: dict[str, str]=<factory>, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, source_snapshot: DocumentationSourceSnapshot | None = None, document_snapshot: DocumentationDocumentSnapshot | None = None, generated_blocks: list[TechnicalDocumentationGeneratedBlock] = <factory>, refresh_count: int = 0, last_refreshed_at: str | None = None, reviewed_at: str | None = None, reviewed_by: str | None = None, review_note: str | None = None, warnings: list[str] = <factory>) None
- class oduit.api_models.TechnicalEvidenceMetadata(schema_version: str = 'oduit.technical_evidence.v1', module: str = '', addon_root: str = '', evidence_path: str = 'docs/architecture.evidence.md', metadata_path: str = 'docs/architecture.evidence.oduit.json', template: str = 'arc42-evidence-v1', evidence_version: int = 0, created_at: str | None = None, last_generated_at: str | None = None, generator: dict[str, str]=<factory>, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, source_snapshot: DocumentationSourceSnapshot | None = None, evidence_document_snapshot: DocumentationDocumentSnapshot | None = None, generated_blocks: list[TechnicalDocumentationGeneratedBlock] = <factory>, warnings: list[str] = <factory>)[source]
Bases:
DictModelDurable addon-local metadata persisted next to generated evidence docs.
- source_snapshot: DocumentationSourceSnapshot | None = None
- evidence_document_snapshot: DocumentationDocumentSnapshot | None = None
- generated_blocks: list[TechnicalDocumentationGeneratedBlock]
- __init__(schema_version: str = 'oduit.technical_evidence.v1', module: str = '', addon_root: str = '', evidence_path: str = 'docs/architecture.evidence.md', metadata_path: str = 'docs/architecture.evidence.oduit.json', template: str = 'arc42-evidence-v1', evidence_version: int = 0, created_at: str | None = None, last_generated_at: str | None = None, generator: dict[str, str]=<factory>, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, source_snapshot: DocumentationSourceSnapshot | None = None, evidence_document_snapshot: DocumentationDocumentSnapshot | None = None, generated_blocks: list[TechnicalDocumentationGeneratedBlock] = <factory>, warnings: list[str] = <factory>) None
- class oduit.api_models.TechnicalEvidenceSnapshot(block_id: 'str', renderer: 'str', evidence_path: 'str', evidence_version: 'int', source_sha256: 'str', content_sha256: 'str', snapshot_sha256: 'str', start_line: 'int | None' = None, end_line: 'int | None' = None, body: 'str' = '')[source]
Bases:
DictModel
- class oduit.api_models.TechnicalEvidenceDiffEntry(block_id: 'str', renderer: 'str' = '', status: 'str' = 'unknown', old_evidence_version: 'int | None' = None, current_evidence_version: 'int | None' = None, old_source_sha256: 'str | None' = None, current_source_sha256: 'str | None' = None, old_content_sha256: 'str | None' = None, current_content_sha256: 'str | None' = None, snapshot_sha256: 'str | None' = None, current_snapshot_sha256: 'str | None' = None, significant: 'bool' = False, diff: 'str | None' = None, message: 'str | None' = None)[source]
Bases:
DictModel- __init__(block_id: str, renderer: str = '', status: str = 'unknown', old_evidence_version: int | None = None, current_evidence_version: int | None = None, old_source_sha256: str | None = None, current_source_sha256: str | None = None, old_content_sha256: str | None = None, current_content_sha256: str | None = None, snapshot_sha256: str | None = None, current_snapshot_sha256: str | None = None, significant: bool = False, diff: str | None = None, message: str | None = None) None
- class oduit.api_models.TechnicalEvidenceDiffResult(module: 'str', addon_root: 'str', report_path: 'str', evidence_path: 'str', evidence_metadata_path: 'str', status: 'str', current_evidence_version: 'int | None' = None, snapshot_count: 'int' = 0, stale_count: 'int' = 0, edited_snapshot_count: 'int' = 0, missing_current_block_count: 'int' = 0, entries: 'list[TechnicalEvidenceDiffEntry]' = <factory>, warnings: 'list[str]' = <factory>, remediation: 'list[str]' = <factory>)[source]
Bases:
DictModel- entries: list[TechnicalEvidenceDiffEntry]
- __init__(module: str, addon_root: str, report_path: str, evidence_path: str, evidence_metadata_path: str, status: str, current_evidence_version: int | None = None, snapshot_count: int = 0, stale_count: int = 0, edited_snapshot_count: int = 0, missing_current_block_count: int = 0, entries: list[TechnicalEvidenceDiffEntry] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.TechnicalDocumentationStatus(module: str, addon_root: str, doc_path: str, metadata_path: str, status: str, has_document: bool = False, has_metadata: bool = False, generated_by_oduit: bool = False, up_to_date: bool = False, document_edited_since_last_generation: bool = False, source_changed_since_last_generation: bool = False, generated_block_count: int = 0, stale_generated_blocks: list[str] = <factory>, edited_generated_blocks: list[str] = <factory>, missing_generated_blocks: list[str] = <factory>, unknown_generated_blocks: list[str] = <factory>, generated_blocks_up_to_date: bool = False, created_at: str | None = None, last_generated_at: str | None = None, generation_count: int | None = None, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, template: str | None = None, changed_files: list[str] = <factory>, added_files: list[str] = <factory>, removed_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelCurrent tracking status for one addon-local technical document.
- __init__(module: str, addon_root: str, doc_path: str, metadata_path: str, status: str, has_document: bool = False, has_metadata: bool = False, generated_by_oduit: bool = False, up_to_date: bool = False, document_edited_since_last_generation: bool = False, source_changed_since_last_generation: bool = False, generated_block_count: int = 0, stale_generated_blocks: list[str] = <factory>, edited_generated_blocks: list[str] = <factory>, missing_generated_blocks: list[str] = <factory>, unknown_generated_blocks: list[str] = <factory>, generated_blocks_up_to_date: bool = False, created_at: str | None = None, last_generated_at: str | None = None, generation_count: int | None = None, generation_options: dict[str, ~typing.Any]=<factory>, evidence_counts: dict[str, int]=<factory>, template: str | None = None, changed_files: list[str] = <factory>, added_files: list[str] = <factory>, removed_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.TechnicalDocumentation(module: str, addon_root: str, source_addon_root: str | None = None, template: str = 'arc42', target: AddonDocTarget | None = None, output_path: str | None = None, metadata_path: str | None = None, generated_at: str | None = None, source_only: bool = False, addon_documentation: AddonDocumentation | None = None, technical_inventory: AddonTechnicalInventory | None = None, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>, used_existing_evidence: bool = False)[source]
Bases:
DictModelTyped architecture-documentation bundle for one addon.
- target: AddonDocTarget | None = None
- addon_documentation: AddonDocumentation | None = None
- technical_inventory: AddonTechnicalInventory | None = None
- sections: list[DocumentSection]
- __init__(module: str, addon_root: str, source_addon_root: str | None = None, template: str = 'arc42', target: AddonDocTarget | None = None, output_path: str | None = None, metadata_path: str | None = None, generated_at: str | None = None, source_only: bool = False, addon_documentation: AddonDocumentation | None = None, technical_inventory: AddonTechnicalInventory | None = None, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>, used_existing_evidence: bool = False) None
- class oduit.api_models.RecommendedTestPlan(module: str, addon_root: str, paths: list[str] = <factory>, tests: list[AddonTestFile] = <factory>, suggested_test_tags: list[str] = <factory>, full_addon_suite_recommended: bool = False, rationale: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelChanged-file to test recommendation plan for coding-agent workflows.
- tests: list[AddonTestFile]
- __init__(module: str, addon_root: str, paths: list[str] = <factory>, tests: list[AddonTestFile] = <factory>, suggested_test_tags: list[str] = <factory>, full_addon_suite_recommended: bool = False, rationale: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonModelEntry(model: str, relation_kind: str, class_name: str, path: str, line_hint: int | None = None, added_fields: list[str] = <factory>, added_methods: list[str] = <factory>, inherited_models: list[str] = <factory>, delegated_models: list[str] = <factory>)[source]
Bases:
DictModelOne model declaration or extension discovered in addon source.
- class oduit.api_models.AddonModelInventory(module: str, addon_root: str, models: list[AddonModelEntry] = <factory>, model_count: int = 0, scanned_python_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelStatic addon model inventory for coding-agent inspection workflows.
- models: list[AddonModelEntry]
- class oduit.api_models.ModelExtensionSource(module: str, addon_root: str, path: str, class_name: str, line_hint: int | None = None, relation_kind: str = 'extends', added_fields: list[str] = <factory>, added_methods: list[str] = <factory>, inherited_models: list[str] = <factory>, delegated_models: list[str] = <factory>)[source]
Bases:
DictModelStatic Python source extension for a model across addons.
- class oduit.api_models.ModelDeclarationSource(module: str, addon_root: str, path: str, class_name: str, line_hint: int | None = None, added_fields: list[str] = <factory>, added_methods: list[str] = <factory>)[source]
Bases:
DictModelStatic source declaration for the model itself.
- class oduit.api_models.InstalledModelField(name: str, ttype: str, relation: str | None = None, modules: str | None = None, state: str | None = None)[source]
Bases:
DictModelRuntime field metadata for one installed model field.
- class oduit.api_models.InstalledViewExtension(name: str, key: str | None = None, priority: int | None = None, inherit_id: list[Any] | None = None)[source]
Bases:
DictModelInstalled inherited view metadata for a model.
- class oduit.api_models.ViewExtensionSource(module: str, addon_root: str, path: str, record_id: str | None = None, name: str | None = None, priority: int | None = None, inherit_ref: str | None = None)[source]
Bases:
DictModelStatic XML view extension for a model across addons.
- class oduit.api_models.ModelExtensionInventory(model: str, base_declarations: list[ModelDeclarationSource] = <factory>, source_extensions: list[ModelExtensionSource] = <factory>, source_extension_modules: list[str] = <factory>, installed_fields: list[InstalledModelField] = <factory>, installed_extension_fields: list[InstalledModelField] = <factory>, source_view_extensions: list[ViewExtensionSource] = <factory>, installed_view_extensions: list[InstalledViewExtension] = <factory>, installed_extension_modules: list[str] = <factory>, scanned_python_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelCombined source and runtime inventory for model extensions.
- base_declarations: list[ModelDeclarationSource]
- source_extensions: list[ModelExtensionSource]
- installed_fields: list[InstalledModelField]
- installed_extension_fields: list[InstalledModelField]
- source_view_extensions: list[ViewExtensionSource]
- installed_view_extensions: list[InstalledViewExtension]
- __init__(model: str, base_declarations: list[ModelDeclarationSource] = <factory>, source_extensions: list[ModelExtensionSource] = <factory>, source_extension_modules: list[str] = <factory>, installed_fields: list[InstalledModelField] = <factory>, installed_extension_fields: list[InstalledModelField] = <factory>, source_view_extensions: list[ViewExtensionSource] = <factory>, installed_view_extensions: list[InstalledViewExtension] = <factory>, installed_extension_modules: list[str] = <factory>, scanned_python_files: list[str] = <factory>, warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.DocumentationDiagram(kind: str, title: str, format: str, content: str)[source]
Bases:
DictModelRendered documentation diagram artifact.
- class oduit.api_models.DocumentSection(title: str, markdown: str, summary: str = '', order: int = 0)[source]
Bases:
DictModelRendered documentation section.
- class oduit.api_models.ModelDocumentation(model: str, database: str | None = None, source_only: bool = False, field_attributes: list[str] = <factory>, requested_view_types: list[str] = <factory>, extension_inventory: ModelExtensionInventory | None = None, field_metadata: ModelFieldsResult | None = None, view_inventory: ModelViewInventory | None = None, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelDocumentation bundle for one model.
- extension_inventory: ModelExtensionInventory | None = None
- field_metadata: ModelFieldsResult | None = None
- view_inventory: ModelViewInventory | None = None
- diagrams: list[DocumentationDiagram]
- sections: list[DocumentSection]
- __init__(model: str, database: str | None = None, source_only: bool = False, field_attributes: list[str] = <factory>, requested_view_types: list[str] = <factory>, extension_inventory: ModelExtensionInventory | None = None, field_metadata: ModelFieldsResult | None = None, view_inventory: ModelViewInventory | None = None, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.AddonDocumentationModel(model: str, relation_kinds: list[str] = <factory>, source_entries: list[AddonModelEntry] = <factory>, documentation: ModelDocumentation | None = None)[source]
Bases:
DictModelPer-model documentation detail inside one addon bundle.
- source_entries: list[AddonModelEntry]
- documentation: ModelDocumentation | None = None
- __init__(model: str, relation_kinds: list[str] = <factory>, source_entries: list[AddonModelEntry] = <factory>, documentation: ModelDocumentation | None = None) None
- class oduit.api_models.AddonContributionSummary(model: str, module: str, relation_kinds: list[str] = <factory>, class_names: list[str] = <factory>, added_fields: list[str] = <factory>, added_methods: list[str] = <factory>, source_paths: list[str] = <factory>, line_hints: list[int] = <factory>, shared_model_doc_path: str | None = None, shared_model_doc_anchor: str | None = None)[source]
Bases:
DictModelCompact per-addon summary for one shared model.
- __init__(model: str, module: str, relation_kinds: list[str] = <factory>, class_names: list[str] = <factory>, added_fields: list[str] = <factory>, added_methods: list[str] = <factory>, source_paths: list[str] = <factory>, line_hints: list[int] = <factory>, shared_model_doc_path: str | None = None, shared_model_doc_anchor: str | None = None) None
Bases:
DictModelFull shared-model documentation within a multi-addon bundle.
- class oduit.api_models.AddonDocumentation(module: str, database: str | None = None, source_only: bool = False, addon_info: AddonInfo | None = None, dependency_graph: dict[str, ~typing.Any]=<factory>, model_inventory: AddonModelInventory | None = None, models: list[AddonDocumentationModel] = <factory>, shared_model_contributions: list[AddonContributionSummary] = <factory>, recommended_tests: dict[str, ~typing.Any]=<factory>, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, output_path: str | None = None, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelDocumentation bundle for one addon.
- model_inventory: AddonModelInventory | None = None
- models: list[AddonDocumentationModel]
- diagrams: list[DocumentationDiagram]
- sections: list[DocumentSection]
- __init__(module: str, database: str | None = None, source_only: bool = False, addon_info: AddonInfo | None = None, dependency_graph: dict[str, ~typing.Any]=<factory>, model_inventory: AddonModelInventory | None = None, models: list[AddonDocumentationModel] = <factory>, shared_model_contributions: list[AddonContributionSummary] = <factory>, recommended_tests: dict[str, ~typing.Any]=<factory>, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, output_path: str | None = None, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.MultiAddonDocumentation(modules: list[str] = <factory>, database: str | None = None, source_only: bool = False, addon_docs: list[AddonDocumentation] = <factory>, shared_models: list[SharedModelDocumentation] = <factory>, index_markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelDocumentation bundle for multiple addons in one selected scope.
- addon_docs: list[AddonDocumentation]
- __init__(modules: list[str] = <factory>, database: str | None = None, source_only: bool = False, addon_docs: list[AddonDocumentation] = <factory>, shared_models: list[SharedModelDocumentation] = <factory>, index_markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>) None
- class oduit.api_models.DependencyGraphDocumentation(modules: list[str] = <factory>, database: str | None = None, source_only: bool = False, installed_only: bool = False, transitive: bool = True, dependency_graph: dict[str, ~typing.Any]=<factory>, installed_addons: InstalledAddonInventory | None = None, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>)[source]
Bases:
DictModelDocumentation bundle for addon dependency graphs.
- installed_addons: InstalledAddonInventory | None = None
- diagrams: list[DocumentationDiagram]
- sections: list[DocumentSection]
- __init__(modules: list[str] = <factory>, database: str | None = None, source_only: bool = False, installed_only: bool = False, transitive: bool = True, dependency_graph: dict[str, ~typing.Any]=<factory>, installed_addons: InstalledAddonInventory | None = None, diagrams: list[DocumentationDiagram] = <factory>, sections: list[DocumentSection] = <factory>, markdown: str = '', warnings: list[str] = <factory>, remediation: list[str] = <factory>) None