| src/secchi/__init__.py |
(no function) |
|
5 |
2 |
0 |
|
60% |
| src/secchi/__main__.py |
(no function) |
|
2 |
2 |
0 |
|
0% |
| src/secchi/aggregate.py |
package_key |
|
2 |
0 |
0 |
|
100% |
| src/secchi/aggregate.py |
logical_package_refs |
|
9 |
9 |
0 |
|
0% |
| src/secchi/aggregate.py |
combine_package_infos |
|
20 |
20 |
0 |
|
0% |
| src/secchi/aggregate.py |
pick_primary_info |
|
5 |
5 |
0 |
|
0% |
| src/secchi/aggregate.py |
unique_registries |
|
2 |
2 |
0 |
|
0% |
| src/secchi/aggregate.py |
combine_download_trends |
|
5 |
5 |
0 |
|
0% |
| src/secchi/aggregate.py |
combine_install_breakdown |
|
10 |
10 |
0 |
|
0% |
| src/secchi/aggregate.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| src/secchi/api/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.registry |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_package |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_versions |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_dependencies |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_download_trend |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_download_counts |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_release_notes |
|
0 |
0 |
1 |
|
100% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_reverse_dependencies |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_reverse_dependency_count |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/base.py |
RegistryAdapter.fetch_version_download_breakdown |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/base.py |
RegistryAdapter.search |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/base.py |
AdapterBase.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
AdapterBase._client_scope |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
_ClientLease.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
_ClientLease.__aenter__ |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
_ClientLease.__aexit__ |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
_ClientLease.get |
|
4 |
0 |
0 |
|
100% |
| src/secchi/api/base.py |
create_adapter |
|
9 |
9 |
0 |
|
0% |
| src/secchi/api/base.py |
(no function) |
|
19 |
0 |
10 |
|
100% |
| src/secchi/api/cran.py |
CranAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/cran.py |
CranAdapter.fetch_package |
|
6 |
0 |
0 |
|
100% |
| src/secchi/api/cran.py |
CranAdapter.search |
|
5 |
0 |
0 |
|
100% |
| src/secchi/api/cran.py |
_first_url |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/cran.py |
_dependencies |
|
9 |
1 |
0 |
|
89% |
| src/secchi/api/cran.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/secchi/api/crates.py |
CratesAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_package |
|
28 |
3 |
0 |
|
89% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_versions |
|
9 |
0 |
0 |
|
100% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_dependencies |
|
8 |
0 |
0 |
|
100% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_download_trend |
|
13 |
2 |
0 |
|
85% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_download_counts |
|
7 |
1 |
0 |
|
86% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_version_download_breakdown |
|
14 |
14 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_reverse_dependencies |
|
21 |
21 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_reverse_dependencies._downloads |
|
7 |
7 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_reverse_dependency_count |
|
8 |
8 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.fetch_release_notes |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/crates.py |
CratesAdapter.search |
|
11 |
2 |
0 |
|
82% |
| src/secchi/api/crates.py |
_parse_date |
|
7 |
3 |
0 |
|
57% |
| src/secchi/api/crates.py |
_reverse_dependency_total |
|
8 |
8 |
0 |
|
0% |
| src/secchi/api/crates.py |
(no function) |
|
25 |
0 |
0 |
|
100% |
| src/secchi/api/golang.py |
_module_path |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/golang.py |
GoModuleAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/golang.py |
GoModuleAdapter.fetch_package |
|
8 |
0 |
0 |
|
100% |
| src/secchi/api/golang.py |
GoModuleAdapter.fetch_versions |
|
6 |
0 |
0 |
|
100% |
| src/secchi/api/golang.py |
GoModuleAdapter.search |
|
5 |
0 |
0 |
|
100% |
| src/secchi/api/golang.py |
_repository_url |
|
4 |
1 |
0 |
|
75% |
| src/secchi/api/golang.py |
_parse_time |
|
6 |
3 |
0 |
|
50% |
| src/secchi/api/golang.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| src/secchi/api/homebrew.py |
HomebrewAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/homebrew.py |
HomebrewAdapter.fetch_package |
|
8 |
0 |
0 |
|
100% |
| src/secchi/api/homebrew.py |
HomebrewAdapter.search |
|
9 |
0 |
0 |
|
100% |
| src/secchi/api/homebrew.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/secchi/api/npm.py |
_npm_name |
|
4 |
2 |
0 |
|
50% |
| src/secchi/api/npm.py |
NpmAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_package |
|
24 |
1 |
0 |
|
96% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_versions |
|
13 |
0 |
0 |
|
100% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_dependencies |
|
13 |
0 |
0 |
|
100% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_download_trend |
|
14 |
14 |
0 |
|
0% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_download_counts |
|
15 |
2 |
0 |
|
87% |
| src/secchi/api/npm.py |
NpmAdapter.fetch_release_notes |
|
11 |
11 |
0 |
|
0% |
| src/secchi/api/npm.py |
NpmAdapter._fetch_total_downloads |
|
7 |
2 |
0 |
|
71% |
| src/secchi/api/npm.py |
NpmAdapter.search |
|
13 |
2 |
0 |
|
85% |
| src/secchi/api/npm.py |
_parse_npm_time |
|
6 |
3 |
0 |
|
50% |
| src/secchi/api/npm.py |
(no function) |
|
20 |
0 |
0 |
|
100% |
| src/secchi/api/pypi.py |
_derive_kind |
|
4 |
1 |
0 |
|
75% |
| src/secchi/api/pypi.py |
PyPIAdapter.registry |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/pypi.py |
PyPIAdapter._get_json |
|
3 |
0 |
0 |
|
100% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_package |
|
24 |
2 |
0 |
|
92% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_versions |
|
19 |
2 |
0 |
|
89% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_dependencies |
|
18 |
2 |
0 |
|
89% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_download_trend |
|
11 |
2 |
0 |
|
82% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_download_counts |
|
13 |
6 |
0 |
|
54% |
| src/secchi/api/pypi.py |
PyPIAdapter.fetch_release_notes |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/pypi.py |
PyPIAdapter.search |
|
19 |
13 |
0 |
|
32% |
| src/secchi/api/pypi.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_versions |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_dependencies |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_download_trend |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_download_counts |
|
1 |
0 |
0 |
|
100% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_release_notes |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_reverse_dependencies |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_reverse_dependency_count |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/sparse.py |
SparseAdapter.fetch_version_download_breakdown |
|
1 |
1 |
0 |
|
0% |
| src/secchi/api/sparse.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/secchi/cache.py |
cache_root |
|
3 |
1 |
0 |
|
67% |
| src/secchi/cache.py |
package_cache_path |
|
2 |
0 |
0 |
|
100% |
| src/secchi/cache.py |
load_package_cache |
|
18 |
2 |
0 |
|
89% |
| src/secchi/cache.py |
save_package_cache |
|
7 |
2 |
0 |
|
71% |
| src/secchi/cache.py |
_encode |
|
9 |
1 |
0 |
|
89% |
| src/secchi/cache.py |
_decode_package_info |
|
15 |
0 |
0 |
|
100% |
| src/secchi/cache.py |
_decode_download_counts |
|
1 |
0 |
0 |
|
100% |
| src/secchi/cache.py |
_decode_github_stats |
|
1 |
0 |
0 |
|
100% |
| src/secchi/cache.py |
_decode_version |
|
1 |
1 |
0 |
|
0% |
| src/secchi/cache.py |
_decode_dependency |
|
1 |
1 |
0 |
|
0% |
| src/secchi/cache.py |
_decode_issue_event |
|
1 |
1 |
0 |
|
0% |
| src/secchi/cache.py |
_parse_datetime |
|
6 |
4 |
0 |
|
33% |
| src/secchi/cache.py |
_decode_key |
|
4 |
4 |
0 |
|
0% |
| src/secchi/cache.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| src/secchi/cli.py |
build_parser |
|
45 |
45 |
0 |
|
0% |
| src/secchi/cli.py |
cmd_init |
|
32 |
32 |
0 |
|
0% |
| src/secchi/cli.py |
_run_dashboard |
|
6 |
6 |
0 |
|
0% |
| src/secchi/cli.py |
_run_search |
|
9 |
9 |
0 |
|
0% |
| src/secchi/cli.py |
main |
|
72 |
72 |
0 |
|
0% |
| src/secchi/cli.py |
(no function) |
|
20 |
20 |
0 |
|
0% |
| src/secchi/config.py |
_config_locations |
|
7 |
7 |
0 |
|
0% |
| src/secchi/config.py |
find_config |
|
9 |
4 |
0 |
|
56% |
| src/secchi/config.py |
load_project |
|
21 |
5 |
0 |
|
76% |
| src/secchi/config.py |
list_projects |
|
5 |
2 |
0 |
|
60% |
| src/secchi/config.py |
load_projects |
|
1 |
0 |
0 |
|
100% |
| src/secchi/config.py |
get_env_token |
|
2 |
2 |
0 |
|
0% |
| src/secchi/config.py |
(no function) |
|
15 |
1 |
0 |
|
93% |
| src/secchi/derived.py |
_now |
|
1 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_aware |
|
3 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_days_since |
|
4 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_score_maintained |
|
14 |
7 |
0 |
|
50% |
| src/secchi/derived.py |
_score_documentation |
|
8 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_score_testing |
|
1 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_issue_counts_90d |
|
10 |
6 |
0 |
|
40% |
| src/secchi/derived.py |
_score_community |
|
36 |
19 |
0 |
|
47% |
| src/secchi/derived.py |
_score_activity |
|
15 |
4 |
0 |
|
73% |
| src/secchi/derived.py |
_score_security |
|
9 |
2 |
0 |
|
78% |
| src/secchi/derived.py |
_grade |
|
9 |
3 |
0 |
|
67% |
| src/secchi/derived.py |
compute_health_score |
|
4 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_health_score.scaled |
|
1 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_release_adoption |
|
12 |
3 |
0 |
|
75% |
| src/secchi/derived.py |
_adoption_from_trend |
|
19 |
1 |
0 |
|
95% |
| src/secchi/derived.py |
_adoption_from_trend.parse |
|
4 |
2 |
0 |
|
50% |
| src/secchi/derived.py |
compute_install_breakdown |
|
4 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
_registry_activity_count |
|
2 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_reverse_dependency_summary |
|
4 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_activity_timeline |
|
14 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_downloads_30d |
|
10 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
compute_all |
|
3 |
0 |
0 |
|
100% |
| src/secchi/derived.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| src/secchi/dev.py |
(no function) |
|
20 |
20 |
0 |
|
0% |
| src/secchi/errors.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| src/secchi/export.py |
export_package_json |
|
2 |
0 |
0 |
|
100% |
| src/secchi/export.py |
save_export |
|
1 |
1 |
0 |
|
0% |
| src/secchi/export.py |
save_report |
|
9 |
9 |
0 |
|
0% |
| src/secchi/export.py |
_serialize_package_info |
|
1 |
0 |
0 |
|
100% |
| src/secchi/export.py |
_serialize_derived |
|
1 |
0 |
0 |
|
100% |
| src/secchi/export.py |
_json_default |
|
3 |
3 |
0 |
|
0% |
| src/secchi/export.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/secchi/history.py |
history_file_path |
|
6 |
6 |
0 |
|
0% |
| src/secchi/history.py |
_load_all |
|
7 |
7 |
0 |
|
0% |
| src/secchi/history.py |
_save_all |
|
6 |
6 |
0 |
|
0% |
| src/secchi/history.py |
load_snapshots |
|
11 |
11 |
0 |
|
0% |
| src/secchi/history.py |
append_snapshot |
|
5 |
5 |
0 |
|
0% |
| src/secchi/history.py |
find_baseline |
|
13 |
2 |
0 |
|
85% |
| src/secchi/history.py |
compute_delta |
|
3 |
0 |
0 |
|
100% |
| src/secchi/history.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/secchi/http.py |
SecchiAsyncClient.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/http.py |
SecchiAsyncClient.request |
|
14 |
6 |
0 |
|
57% |
| src/secchi/http.py |
HttpClientFactory.__init__ |
|
1 |
0 |
0 |
|
100% |
| src/secchi/http.py |
HttpClientFactory.create |
|
1 |
0 |
0 |
|
100% |
| src/secchi/http.py |
_backoff |
|
1 |
0 |
0 |
|
100% |
| src/secchi/http.py |
_retry_after |
|
13 |
10 |
0 |
|
23% |
| src/secchi/http.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| src/secchi/mcp_server.py |
_resolve_refs |
|
3 |
3 |
0 |
|
0% |
| src/secchi/mcp_server.py |
_package_result |
|
3 |
1 |
0 |
|
67% |
| src/secchi/mcp_server.py |
inspect_package |
|
5 |
0 |
0 |
|
100% |
| src/secchi/mcp_server.py |
search_packages |
|
4 |
0 |
0 |
|
100% |
| src/secchi/mcp_server.py |
inspect_project |
|
5 |
1 |
0 |
|
80% |
| src/secchi/mcp_server.py |
check_package |
|
19 |
6 |
0 |
|
68% |
| src/secchi/mcp_server.py |
compare_packages |
|
6 |
2 |
0 |
|
67% |
| src/secchi/mcp_server.py |
main |
|
1 |
1 |
0 |
|
0% |
| src/secchi/mcp_server.py |
(no function) |
|
36 |
1 |
0 |
|
97% |
| src/secchi/models.py |
Registry.display_name |
|
1 |
0 |
0 |
|
100% |
| src/secchi/models.py |
Registry.icon |
|
1 |
1 |
0 |
|
0% |
| src/secchi/models.py |
Registry.language |
|
1 |
1 |
0 |
|
0% |
| src/secchi/models.py |
Registry.install_command |
|
1 |
1 |
0 |
|
0% |
| src/secchi/models.py |
ActivityEventKind.icon |
|
1 |
1 |
0 |
|
0% |
| src/secchi/models.py |
ActivityEventKind.label |
|
1 |
1 |
0 |
|
0% |
| src/secchi/models.py |
(no function) |
|
190 |
0 |
0 |
|
100% |
| src/secchi/policy.py |
evaluate_default_policy |
|
4 |
0 |
0 |
|
100% |
| src/secchi/policy.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| src/secchi/renderers/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
build_project_report |
|
12 |
2 |
0 |
|
83% |
| src/secchi/renderers/reports.py |
render_report |
|
7 |
1 |
0 |
|
86% |
| src/secchi/renderers/reports.py |
render_markdown |
|
4 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
render_html |
|
2 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
render_terminal_report |
|
1 |
1 |
0 |
|
0% |
| src/secchi/renderers/reports.py |
render_project_report |
|
7 |
1 |
0 |
|
86% |
| src/secchi/renderers/reports.py |
default_report_path |
|
5 |
5 |
0 |
|
0% |
| src/secchi/renderers/reports.py |
_project_report_data |
|
4 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
_project_markdown |
|
5 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
_source_markdown_row |
|
2 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
_project_html |
|
5 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
_markdown_attribution |
|
2 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
_source_status |
|
4 |
1 |
0 |
|
75% |
| src/secchi/renderers/reports.py |
_markdown_warnings |
|
4 |
2 |
0 |
|
50% |
| src/secchi/renderers/reports.py |
_html_warnings |
|
4 |
2 |
0 |
|
50% |
| src/secchi/renderers/reports.py |
_html_attribution |
|
3 |
0 |
0 |
|
100% |
| src/secchi/renderers/reports.py |
(no function) |
|
40 |
0 |
0 |
|
100% |
| src/secchi/renderers/summary.py |
render_summary |
|
6 |
0 |
0 |
|
100% |
| src/secchi/renderers/summary.py |
_format_count |
|
7 |
2 |
0 |
|
71% |
| src/secchi/renderers/summary.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/secchi/schema.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/secchi/schemas.py |
CacheEnvelope.validate_supported_version |
|
3 |
0 |
0 |
|
100% |
| src/secchi/schemas.py |
PackageExport.validate_version |
|
3 |
1 |
0 |
|
67% |
| src/secchi/schemas.py |
ProjectExport.validate_version |
|
3 |
1 |
0 |
|
67% |
| src/secchi/schemas.py |
ComparisonExport.validate_version |
|
3 |
1 |
0 |
|
67% |
| src/secchi/schemas.py |
(no function) |
|
55 |
0 |
0 |
|
100% |
| src/secchi/services/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
ComparisonResult.winner |
|
2 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
ComparisonResult.as_dict |
|
2 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
compare_intelligence |
|
3 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
evaluate_candidate |
|
45 |
6 |
0 |
|
87% |
| src/secchi/services/comparison.py |
_recommendation |
|
7 |
1 |
0 |
|
86% |
| src/secchi/services/comparison.py |
_momentum_score |
|
3 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
_community_score |
|
5 |
1 |
0 |
|
80% |
| src/secchi/services/comparison.py |
_recency_score |
|
15 |
8 |
0 |
|
47% |
| src/secchi/services/comparison.py |
_completeness_score |
|
2 |
0 |
0 |
|
100% |
| src/secchi/services/comparison.py |
_candidate_dict |
|
3 |
1 |
0 |
|
67% |
| src/secchi/services/comparison.py |
render_comparison |
|
19 |
19 |
0 |
|
0% |
| src/secchi/services/comparison.py |
(no function) |
|
45 |
0 |
0 |
|
100% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService.fetch_project |
|
3 |
3 |
0 |
|
0% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService.fetch_package |
|
16 |
5 |
0 |
|
69% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._fetch_fresh |
|
31 |
6 |
0 |
|
81% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._optional_signal |
|
4 |
0 |
0 |
|
100% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._apply_history_deltas |
|
12 |
12 |
0 |
|
0% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._load_cache |
|
3 |
3 |
0 |
|
0% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._save_cache |
|
3 |
1 |
0 |
|
67% |
| src/secchi/services/intelligence.py |
PackageIntelligenceService._history_path |
|
2 |
2 |
0 |
|
0% |
| src/secchi/services/intelligence.py |
health_history_points |
|
14 |
2 |
0 |
|
86% |
| src/secchi/services/intelligence.py |
(no function) |
|
43 |
0 |
0 |
|
100% |
| src/secchi/services/resolver.py |
parse_package_spec |
|
12 |
2 |
0 |
|
83% |
| src/secchi/services/resolver.py |
resolve_package |
|
9 |
4 |
0 |
|
56% |
| src/secchi/services/resolver.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| src/secchi/services/search.py |
PackageSearchService.search |
|
7 |
0 |
0 |
|
100% |
| src/secchi/services/search.py |
PackageSearchService.search.search_registry |
|
9 |
0 |
0 |
|
100% |
| src/secchi/services/search.py |
PackageSearchService._sort_key |
|
3 |
0 |
0 |
|
100% |
| src/secchi/services/search.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| src/secchi/spotlight.py |
Spotlight.project_stage |
|
7 |
0 |
0 |
|
100% |
| src/secchi/spotlight.py |
spotlight_disabled |
|
2 |
2 |
0 |
|
0% |
| src/secchi/spotlight.py |
spotlight_cache_path |
|
1 |
1 |
0 |
|
0% |
| src/secchi/spotlight.py |
load_cached_spotlight |
|
12 |
12 |
0 |
|
0% |
| src/secchi/spotlight.py |
save_cached_spotlight |
|
7 |
7 |
0 |
|
0% |
| src/secchi/spotlight.py |
fetch_spotlight |
|
17 |
17 |
0 |
|
0% |
| src/secchi/spotlight.py |
_decode_spotlight |
|
11 |
11 |
0 |
|
0% |
| src/secchi/spotlight.py |
_clean_text |
|
2 |
2 |
0 |
|
0% |
| src/secchi/spotlight.py |
_clean_url |
|
8 |
8 |
0 |
|
0% |
| src/secchi/spotlight.py |
_parse_datetime |
|
6 |
6 |
0 |
|
0% |
| src/secchi/spotlight.py |
_parse_stars |
|
6 |
6 |
0 |
|
0% |
| src/secchi/spotlight.py |
(no function) |
|
34 |
0 |
0 |
|
100% |
| src/secchi/trending.py |
_trending_date |
|
1 |
1 |
0 |
|
0% |
| src/secchi/trending.py |
fetch_trending |
|
15 |
15 |
0 |
|
0% |
| src/secchi/trending.py |
_short_stars |
|
5 |
5 |
0 |
|
0% |
| src/secchi/trending.py |
load_cached_trending |
|
12 |
12 |
0 |
|
0% |
| src/secchi/trending.py |
save_cached_trending |
|
7 |
7 |
0 |
|
0% |
| src/secchi/trending.py |
_parse_datetime |
|
6 |
6 |
0 |
|
0% |
| src/secchi/trending.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| src/secchi/ui/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/ui/app.py |
Secchi.__init__ |
|
14 |
0 |
0 |
|
100% |
| src/secchi/ui/app.py |
Secchi.project |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.visible_packages |
|
3 |
1 |
0 |
|
67% |
| src/secchi/ui/app.py |
Secchi.workspace_projects |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.refreshed_at |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.package_data |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.get_package_info |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.get_package_error |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.get_package_warnings |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.get_derived |
|
12 |
12 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._matching_refs |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.compose |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.on_mount |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_refresh |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_toggle_filter |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_search |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_search._on_result |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_help |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_export |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi.action_export._on_export |
|
23 |
23 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._start_spotlight_fetch |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._fetch_spotlight |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._start_trending_fetch |
|
8 |
8 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._fetch_trending |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._select_default_package |
|
10 |
2 |
0 |
|
80% |
| src/secchi/ui/app.py |
Secchi.navigate_to_package |
|
9 |
2 |
0 |
|
78% |
| src/secchi/ui/app.py |
Secchi._on_package_selected |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._on_project_selected |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._render_selected |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._render_selected_loop |
|
11 |
11 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._render_selected_once |
|
19 |
19 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._start_data_fetch |
|
17 |
17 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._fetch_all_packages |
|
14 |
14 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._fetch_single_package |
|
10 |
10 |
0 |
|
0% |
| src/secchi/ui/app.py |
Secchi._notify_ui_update |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/app.py |
(no function) |
|
68 |
0 |
0 |
|
100% |
| src/secchi/ui/palette.py |
(no function) |
|
25 |
0 |
0 |
|
100% |
| src/secchi/ui/styles/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/badge.py |
Badge.__init__ |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/badge.py |
(no function) |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/bar.py |
render_bar |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/widgets/bar.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/detail.py |
DetailView.__init__ |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView.compose |
|
10 |
10 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._compose_summary_row |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._build_project_card |
|
27 |
27 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._compose_stat_cards |
|
22 |
22 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._compose_tabs |
|
14 |
14 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._build_title |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._releases_pane |
|
17 |
17 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._deps_pane |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._versions_pane |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
DetailView._activity_pane |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_grade_color |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_health_label |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_trend_label |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_trend_color |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_health_mom |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_dependent_delta |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_dependent_signal |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_growth_color |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_latest_version_adoption |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_rollout_signal |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_rollout_color |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_short_url |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_resolve_size |
|
8 |
8 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
_registry_icon_label |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/detail.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/header_bar.py |
SecchiHeader.compose |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/header_bar.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/modals.py |
SearchScreen.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen.compose |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen.on_mount |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._populate |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._key |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._on_change |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._on_submit |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._on_option |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._select |
|
8 |
8 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen._visible_packages |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
SearchScreen.action_dismiss_screen |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
HelpScreen.compose |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
HelpScreen.on_key |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
HelpScreen.action_dismiss_screen |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.compose |
|
7 |
7 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.on_mount |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen._on_option_select |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen._on_ok |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen._on_cancel |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen._do_export |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.action_focus_left |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.action_focus_right |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
ExportScreen.action_dismiss_none |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/modals.py |
(no function) |
|
47 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
_downloads_source |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
_source_registries |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
OverviewTab.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
OverviewTab.compose |
|
14 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
OverviewTab._on_range_pressed |
|
10 |
10 |
0 |
|
0% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendPanel.__init__ |
|
5 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendPanel.compose_body |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendBody.__init__ |
|
3 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendBody.on_mount |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendBody.on_resize |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
AdoptionTrendBody._update_content |
|
13 |
7 |
0 |
|
46% |
| src/secchi/ui/widgets/overview.py |
HealthScorePanel.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthScorePanel.compose_body |
|
7 |
3 |
0 |
|
57% |
| src/secchi/ui/widgets/overview.py |
EcosystemDistributionPanel.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
EcosystemDistributionPanel.compose_body |
|
11 |
8 |
0 |
|
27% |
| src/secchi/ui/widgets/overview.py |
ReverseDependenciesPanel.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
ReverseDependenciesPanel.compose_body |
|
11 |
9 |
0 |
|
18% |
| src/secchi/ui/widgets/overview.py |
HealthTimelinePanel.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthTimelinePanel.compose_body |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthTimelineBody.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthTimelineBody.on_mount |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthTimelineBody.on_resize |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
HealthTimelineBody._update_content |
|
11 |
6 |
0 |
|
45% |
| src/secchi/ui/widgets/overview.py |
VersionAdoptionPanel.__init__ |
|
4 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
VersionAdoptionPanel.compose_body |
|
17 |
14 |
0 |
|
18% |
| src/secchi/ui/widgets/overview.py |
_version_bar |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/overview.py |
_adoption_points |
|
7 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
_bucket_by_week |
|
11 |
1 |
0 |
|
91% |
| src/secchi/ui/widgets/overview.py |
_bucket_by_month |
|
7 |
1 |
0 |
|
86% |
| src/secchi/ui/widgets/overview.py |
_thin_points |
|
8 |
1 |
0 |
|
88% |
| src/secchi/ui/widgets/overview.py |
_period_download_summary |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/overview.py |
_trend_label |
|
7 |
3 |
0 |
|
57% |
| src/secchi/ui/widgets/overview.py |
_render_line_chart |
|
40 |
3 |
0 |
|
92% |
| src/secchi/ui/widgets/overview.py |
_draw_segment |
|
12 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
_point_limit |
|
5 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/overview.py |
_parse_day |
|
4 |
2 |
0 |
|
50% |
| src/secchi/ui/widgets/overview.py |
_short_date_label |
|
4 |
1 |
0 |
|
75% |
| src/secchi/ui/widgets/overview.py |
_short_month |
|
5 |
1 |
0 |
|
80% |
| src/secchi/ui/widgets/overview.py |
_range_label |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/overview.py |
_clip |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/overview.py |
_health_signal |
|
7 |
3 |
0 |
|
57% |
| src/secchi/ui/widgets/overview.py |
(no function) |
|
68 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/panel.py |
Panel.__init__ |
|
5 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/panel.py |
Panel.on_mount |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/panel.py |
Panel.compose |
|
4 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/panel.py |
Panel.compose_body |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/panel.py |
Panel.set_caption |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/panel.py |
PanelBody.__init__ |
|
2 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/panel.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/sidebar.py |
SidebarItem.__init__ |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
SidebarItem.set_version |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
SidebarItem._content |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
SidebarItem.on_click |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
ProjectItem.__init__ |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
ProjectItem.on_click |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.PackageSelected.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.ProjectSelected.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.__init__ |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.compose |
|
11 |
11 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.on_mount |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._build |
|
43 |
43 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._add_item |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._refresh_versions |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.refresh_versions |
|
1 |
1 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.set_spotlight |
|
18 |
18 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.set_trending |
|
18 |
18 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._pkg_key |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.select_package |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.deselect_all |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._highlight |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.action_cursor_down |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.action_cursor_up |
|
5 |
5 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.action_select_cursor |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._scroll_to_cursor |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar.toggle_favorites_filter |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._spotlight_markup |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
Sidebar._trending_markup |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/sidebar.py |
(no function) |
|
48 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/stat_card.py |
StatCard.__init__ |
|
9 |
9 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
StatCard.compose |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
StatCard.set |
|
10 |
10 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
StatCard._value_markup |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
StatCard._delta_markup |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
StatCard._signal_markup |
|
4 |
4 |
0 |
|
0% |
| src/secchi/ui/widgets/stat_card.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/status_bar.py |
_format_key |
|
1 |
0 |
0 |
|
100% |
| src/secchi/ui/widgets/status_bar.py |
format_path |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
_age_text |
|
11 |
11 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
SecchiFooter.__init__ |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
SecchiFooter.compose |
|
3 |
3 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
SecchiFooter.on_mount |
|
2 |
2 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
SecchiFooter._tick |
|
6 |
6 |
0 |
|
0% |
| src/secchi/ui/widgets/status_bar.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| src/secchi/utils.py |
shorten_number |
|
7 |
3 |
0 |
|
57% |
| src/secchi/utils.py |
format_age |
|
19 |
19 |
0 |
|
0% |
| src/secchi/utils.py |
format_age_short |
|
14 |
14 |
0 |
|
0% |
| src/secchi/utils.py |
format_pct_delta |
|
5 |
5 |
0 |
|
0% |
| src/secchi/utils.py |
shorten_bytes |
|
10 |
10 |
0 |
|
0% |
| src/secchi/utils.py |
derive_github_repo |
|
14 |
10 |
0 |
|
29% |
| src/secchi/utils.py |
_gh_headers |
|
5 |
5 |
0 |
|
0% |
| src/secchi/utils.py |
_parse_gh_time |
|
6 |
6 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_release_notes |
|
19 |
19 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_stats |
|
13 |
13 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_repo_signals |
|
15 |
15 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_issue_events |
|
19 |
19 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_stats_for_package |
|
4 |
4 |
0 |
|
0% |
| src/secchi/utils.py |
fetch_github_extended_stats_for_package |
|
12 |
9 |
0 |
|
25% |
| src/secchi/utils.py |
fetch_release_notes_for_package |
|
9 |
9 |
0 |
|
0% |
| src/secchi/utils.py |
(no function) |
|
23 |
0 |
0 |
|
100% |
| src/secchi/workflows/__init__.py |
(no function) |
|
0 |
0 |
0 |
|
100% |
| src/secchi/workflows/check.py |
CheckResult.passed |
|
1 |
0 |
0 |
|
100% |
| src/secchi/workflows/check.py |
run |
|
6 |
1 |
0 |
|
83% |
| src/secchi/workflows/check.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/secchi/workflows/common.py |
fetch_package |
|
2 |
0 |
0 |
|
100% |
| src/secchi/workflows/common.py |
require_package |
|
6 |
0 |
0 |
|
100% |
| src/secchi/workflows/common.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/secchi/workflows/compare.py |
_resolve_refs |
|
11 |
11 |
0 |
|
0% |
| src/secchi/workflows/compare.py |
run |
|
6 |
6 |
0 |
|
0% |
| src/secchi/workflows/compare.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| src/secchi/workflows/dashboard.py |
_workspace_project |
|
5 |
0 |
0 |
|
100% |
| src/secchi/workflows/dashboard.py |
run |
|
28 |
19 |
0 |
|
32% |
| src/secchi/workflows/dashboard.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/secchi/workflows/inspect.py |
run |
|
2 |
2 |
0 |
|
0% |
| src/secchi/workflows/inspect.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src/secchi/workflows/report.py |
run |
|
19 |
19 |
0 |
|
0% |
| src/secchi/workflows/report.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| src/secchi/workflows/search.py |
run |
|
2 |
2 |
0 |
|
0% |
| src/secchi/workflows/search.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| src/secchi/workflows/show.py |
run |
|
4 |
4 |
0 |
|
0% |
| src/secchi/workflows/show.py |
(no function) |
|
5 |
5 |
0 |
|
0% |
| src/secchi/workspace/__init__.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| src/secchi/workspace/aggregate.py |
logical_package_refs |
|
9 |
0 |
0 |
|
100% |
| src/secchi/workspace/aggregate.py |
combine_package_infos |
|
22 |
1 |
0 |
|
95% |
| src/secchi/workspace/aggregate.py |
pick_primary_info |
|
5 |
1 |
0 |
|
80% |
| src/secchi/workspace/aggregate.py |
unique_registries |
|
7 |
0 |
0 |
|
100% |
| src/secchi/workspace/aggregate.py |
combine_download_trends |
|
5 |
0 |
0 |
|
100% |
| src/secchi/workspace/aggregate.py |
combine_install_breakdown |
|
12 |
2 |
0 |
|
83% |
| src/secchi/workspace/aggregate.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
WorkspaceState.select |
|
1 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
WorkspaceState.should_load |
|
3 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
WorkspaceState.begin_load |
|
4 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
WorkspaceState.finish_load |
|
2 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
WorkspaceState.cancel_load |
|
1 |
0 |
0 |
|
100% |
| src/secchi/workspace/state.py |
(no function) |
|
13 |
0 |
0 |
|
100% |