libp2p.observability.oso package
Submodules
libp2p.observability.oso.cli module
CLI entrypoint for OSO health reporting.
- libp2p.observability.oso.cli.build_parser() ArgumentParser
Build CLI parser.
libp2p.observability.oso.dependency_graph module
Dependency graph extraction and normalization utilities.
- libp2p.observability.oso.dependency_graph.build_dependency_graph(pyproject_path: Path, repository: str) DependencyGraph
Build a normalized dependency graph from
pyproject.toml.
libp2p.observability.oso.generators module
Dependency graph artifact generators used by operational scripts.
libp2p.observability.oso.metrics module
Metric calculators for OSO observability report.
- libp2p.observability.oso.metrics.calculate_contributor_trend(commits: list[CommitInfo]) ContributorTrendMetric
Calculate contributor trend metrics.
- libp2p.observability.oso.metrics.calculate_dependency_topology(graph: DependencyGraph) DependencyTopologyMetric
Calculate topology metrics from dependency graph.
- libp2p.observability.oso.metrics.calculate_issue_responsiveness(issues: list[IssueInfo]) IssueResponsivenessMetric
Calculate issue responsiveness metrics.
- libp2p.observability.oso.metrics.calculate_popularity(popularity: PopularityInfo) PopularityMetric
Normalize popularity metrics.
- libp2p.observability.oso.metrics.calculate_release_cadence(releases: list[ReleaseInfo]) ReleaseCadenceMetric
Calculate release cadence metrics.
- libp2p.observability.oso.metrics.calculate_security_proxy(graph: DependencyGraph, vulnerable_packages: Iterable[str]) SecurityProxyMetric
Calculate security proxy from dependency graph + vulnerability lookups.
- libp2p.observability.oso.metrics.collect_rcmgr_baseline() RcmgrSnapshot
Collect current rcmgr baseline capability status.
libp2p.observability.oso.models module
Typed models for OSO observability reporting.
- class libp2p.observability.oso.models.ContributorTrendMetric(commits_considered: int, unique_contributors: int, weekly_commit_counts: dict[str, int], contributor_logins: list[str] = <factory>)
Bases:
objectContributor activity trend metric model.
- class libp2p.observability.oso.models.DependencyEntry(name: str, version_spec: str | None, condition: str | None, dependency_type: str)
Bases:
objectA single dependency declaration entry.
- class libp2p.observability.oso.models.DependencyGraph(project: ~libp2p.observability.oso.models.ProjectMetadata, dependencies: list[~libp2p.observability.oso.models.DependencyEntry], optional_dependencies: dict[str, list[~libp2p.observability.oso.models.DependencyEntry]], edges: list[tuple[str, str]] = <factory>)
Bases:
objectDependency graph model used for health analysis.
- dependencies: list[DependencyEntry]
- optional_dependencies: dict[str, list[DependencyEntry]]
- project: ProjectMetadata
- class libp2p.observability.oso.models.DependencyTopologyMetric(direct_dependencies: int, optional_dependencies: int, total_dependency_entries: int, unique_packages: int, duplicate_packages: list[str], max_out_degree: int, most_connected_packages: list[str], runtime_package_versions: list[str] = <factory>)
Bases:
objectDependency graph topology metrics.
- class libp2p.observability.oso.models.HealthMetrics(dependency_topology: DependencyTopologyMetric, release_cadence: ReleaseCadenceMetric, issue_responsiveness: IssueResponsivenessMetric, contributor_trend: ContributorTrendMetric, popularity: PopularityMetric, security_proxy: SecurityProxyMetric)
Bases:
objectAggregated V1 health metrics.
- contributor_trend: ContributorTrendMetric
- dependency_topology: DependencyTopologyMetric
- issue_responsiveness: IssueResponsivenessMetric
- popularity: PopularityMetric
- release_cadence: ReleaseCadenceMetric
- security_proxy: SecurityProxyMetric
- class libp2p.observability.oso.models.HealthReport(generated_at: str, project: ProjectMetadata, source_status: SourceStatus, rcmgr_baseline: RcmgrSnapshot, metrics: HealthMetrics)
Bases:
objectTop-level report model persisted to JSON/Markdown.
- metrics: HealthMetrics
- project: ProjectMetadata
- rcmgr_baseline: RcmgrSnapshot
- source_status: SourceStatus
- class libp2p.observability.oso.models.IssueResponsivenessMetric(issues_considered: int, median_hours_to_first_response: float | None, median_hours_to_close: float | None, open_issues: int, closed_issues: int)
Bases:
objectIssue responsiveness metric model.
- class libp2p.observability.oso.models.PopularityMetric(stars: int | None, forks: int | None, watchers: int | None)
Bases:
objectPopularity metric model.
- class libp2p.observability.oso.models.ProjectMetadata(name: str, version: str, python_version: str, repository: str)
Bases:
objectProject identity metadata.
- class libp2p.observability.oso.models.RcmgrSnapshot(metrics_available: bool, prometheus_available: bool, monitoring_available: bool, exported_metric_names: list[str] = <factory>)
Bases:
objectSnapshot view of local rcmgr runtime-related metrics.
- class libp2p.observability.oso.models.ReleaseCadenceMetric(releases_considered: int, average_days_between_releases: float | None, median_days_between_releases: float | None, last_release_at: str | None)
Bases:
objectRelease cadence metric model.
- class libp2p.observability.oso.models.SecurityProxyMetric(duplicate_dependency_specs: list[str], osv_vulnerable_packages: list[str], dependency_count: int)
Bases:
objectSecurity proxy metric model.
libp2p.observability.oso.providers module
External data providers for GitHub and OSO.
- class libp2p.observability.oso.providers.CommitInfo(committed_at: str, author_login: str | None)
Bases:
objectCommit metadata for contributor trends.
- class libp2p.observability.oso.providers.GitHubProvider(repo_slug: str, token: str | None = None)
Bases:
objectGitHub API provider with typed normalization.
- fetch_commits(limit: int = 100) list[CommitInfo]
Fetch latest commits.
- fetch_popularity() PopularityInfo
Fetch repo popularity counters.
- fetch_releases(limit: int = 30) list[ReleaseInfo]
Fetch latest releases.
- class libp2p.observability.oso.providers.IssueInfo(created_at: str, closed_at: str | None, first_response_at: str | None)
Bases:
objectIssue metadata used for responsiveness metrics.
- class libp2p.observability.oso.providers.OsoProvider(token: str | None = None)
Bases:
objectOSO GraphQL provider.
- class libp2p.observability.oso.providers.PopularityInfo(stars: int | None, forks: int | None, watchers: int | None)
Bases:
objectPopularity counters from GitHub.
- class libp2p.observability.oso.providers.ReleaseInfo(published_at: str)
Bases:
objectRelease metadata needed for cadence calculations.
- libp2p.observability.oso.providers.get_installed_package_versions() dict[str, str]
Return installed package versions from current Python environment.
- libp2p.observability.oso.providers.parse_iso_datetime(value: str) datetime
Parse GitHub/ISO timestamp with
Zsupport.
libp2p.observability.oso.report module
Report rendering and persistence helpers.
- libp2p.observability.oso.report.render_markdown_report(report: HealthReport) str
Render health report as concise markdown.
- libp2p.observability.oso.report.write_json_report(report: HealthReport, output_path: Path) None
Write health report as JSON.
- libp2p.observability.oso.report.write_markdown_report(report: HealthReport, output_path: Path) None
Write report in Markdown format.
libp2p.observability.oso.service module
Orchestration service for OSO health reports.
libp2p.observability.oso.transitive_graph module
Transitive dependency graph generation helpers.
- libp2p.observability.oso.transitive_graph.build_transitive_graph(root_package: str, direct_dependencies: list[str], max_depth: int = 10) dict[str, Any]
Build transitive graph by recursively resolving dependencies.
- libp2p.observability.oso.transitive_graph.generate_transitive_graph_artifacts(repo_root: Path, output_dir: Path | None = None) dict[str, Path]
Generate transitive dependency artifacts (json/dot/mmd).
Module contents
OSO observability package for py-libp2p.
- class libp2p.observability.oso.HealthReport(generated_at: str, project: ProjectMetadata, source_status: SourceStatus, rcmgr_baseline: RcmgrSnapshot, metrics: HealthMetrics)
Bases:
objectTop-level report model persisted to JSON/Markdown.
- metrics: HealthMetrics
- project: ProjectMetadata
- rcmgr_baseline: RcmgrSnapshot
- source_status: SourceStatus
- libp2p.observability.oso.collect_health_report(repo_root: Path, repo_slug: str = 'libp2p/py-libp2p', github_token: str | None = None, oso_token: str | None = None) HealthReport
Collect a full health report for py-libp2p.