gabriel / musehub public
fix dev #25 / 100
AI Agent gabriel · 11 days ago · May 28, 2026 · Diff

fix: repair syntax errors from typing annotation cleanup

The earlier batch sed pass incorrectly annotated function *call sites* with type annotations (e.g. muse(*args: typing.Any, ...)) which is not valid Python syntax. Fixed 11 files: - bench_cli.py: muse(*args: typing.Any) → muse(*args) - test_bench_cli_seed.py: lambda *args: typing.Any, **kw → lambda *args, **kw - test_clone/fetch/push_xs_unit.py: *args: typing.Any in calls → *args - test_genesis_ids.py: **kw: typing.Any in lambda → **kw - test_issue_61_clone_after_push.py: same - test_model_defaults.py: **kwargs: typing.Any in ctor calls → **kwargs - test_clones_integration.py: fixture return types + remaining param types - test_phase1_stable_provider.py: MusehubRepo_with_symbols → correct fixture name - test_phase2_blast_risk_route.py: MusehubRepo_with_rows → correct fixture name

Audit: 0 violations, 0 untyped defs across 306 files.

sha256:4992098130166d191cefed0a2821d19cd3cdd3cf50867a4e715c2b30636826c7 sha
+667 symbols
sha256:887140f352d956c35c87a4276e5ff47918cdd54d17ec2f9b599374e674ff1677 snapshot
+667
symbols added
0
dead code introduced
Semantic Changes 667 symbols
~ tests/bench_cli.py .py 68 symbols added
+ BENCH_PREFIX variable variable BENCH_PREFIX L44–44
+ BIP39_WORDS variable variable BIP39_WORDS L281–281
+ CACHE_DIR variable variable CACHE_DIR L46–46
+ GATES variable variable GATES L79–120
+ HUB_URLS variable variable HUB_URLS L43–43
+ LOCALHOST variable variable LOCALHOST L41–41
+ REPO_ROOT variable variable REPO_ROOT L40–40
+ SEED_PREFIX variable variable SEED_PREFIX L45–45
+ SIZE_MATRIX variable variable SIZE_MATRIX L70–76
+ STAGING variable variable STAGING L42–42
+ VERB_FNS variable variable VERB_FNS L666–671
+ _PERMANENT_REPOS variable variable _PERMANENT_REPOS L49–52
+ _TRANSIENT_RE variable variable _TRANSIENT_RE L62–67
+ _WIRE_SOURCES variable variable _WIRE_SOURCES L125–129
+ _bench_fetch_or_pull function function _bench_fetch_or_pull L562–653
+ _hub_seed_cache variable variable _hub_seed_cache L439–439
+ _safe_delete_repo function function _safe_delete_repo L244–263
+ _wait_indexed function function _wait_indexed L175–228
+ bench_clone function function bench_clone L540–559
+ bench_fetch function function bench_fetch L656–657
+ bench_pull function function bench_pull L660–661
+ bench_push function function bench_push L505–537
+ bench_text function function bench_text L283–309
+ create_repo function function create_repo L233–241
+ ensure_hub_seed function function ensure_hub_seed L442–500
+ ensure_local_seed function function ensure_local_seed L330–435
+ gate_str function function gate_str L676–680
+ CommitRecord import import CommitRecord L34–34
+ Mnemonic import import Mnemonic L26–26
+ Path import import Path L24–24
+ SnapshotRecord import import SnapshotRecord L36–36
+ _created_object_shards import import _created_object_shards L31–31
+ annotations import import annotations L10–10
+ argparse import import argparse L12–12
+ blob_id import import blob_id L37–37
+ compute_commit_id import import compute_commit_id L33–33
+ compute_snapshot_id import import compute_snapshot_id L33–33
+ datetime import import datetime L28–28
+ hash_file import import hash_file L37–37
+ itertools import import itertools L13–13
+ json import import json L14–14
+ math import import math L15–15
+ mpack import import mpack L30–30
+ muse_dir import import muse_dir L32–32
+ musehub_wire import import musehub_wire L38–38
+ os import import os L16–16
+ re import import re L17–17
+ server_objects_dir import import server_objects_dir L32–32
+ shutil import import shutil L18–18
+ statistics import import statistics L19–19
+ subprocess import import subprocess L20–20
+ sys import import sys L21–21
+ tempfile import import tempfile L22–22
+ time import import time L23–23
+ transport import import transport L30–30
+ write_branch_ref import import write_branch_ref L35–35
+ write_commit import import write_commit L34–34
+ write_object import import write_object L31–31
+ write_snapshot import import write_snapshot L36–36
+ main function function main L728–792
+ make_local_repo function function make_local_repo L312–325
+ markdown_table function function markdown_table L705–723
+ muse function function muse L150–154
+ muse_check function function muse_check L157–161
+ print_table function function print_table L683–702
+ purge_stale function function purge_stale L266–274
+ timed_muse function function timed_muse L164–172
+ wire_hash function function wire_hash L132–145
~ tests/test_bench_cli_seed.py .py 36 symbols added
+ TestEnsureHubSeedRemoteParse class class TestEnsureHubSeedRemoteParse L244–250
+ TestEnsureHubSeedRemoteReset class class TestEnsureHubSeedRemoteReset L255–326
+ test_always_resets_origin_before_push method method test_always_resets_origin_before_push L275–326
+ TestHubSeedRepos class class TestHubSeedRepos L113–171
+ test_purge_stale_excludes_seed_repos method method test_purge_stale_excludes_seed_repos L152–171
+ test_pushes_if_not_present method method test_pushes_if_not_present L115–132
+ test_skips_push_if_present method method test_skips_push_if_present L134–149
+ TestLocalSeedCache class class TestLocalSeedCache L41–108
+ test_creates_cache_on_first_call method method test_creates_cache_on_first_call L42–57
+ test_invalidates_on_size_matrix_change method method test_invalidates_on_size_matrix_change L71–95
+ test_reseed_flag_forces_rebuild method method test_reseed_flag_forces_rebuild L97–108
+ test_reuses_cache_on_second_call method method test_reuses_cache_on_second_call L59–69
+ TestVerbFastPaths class class TestVerbFastPaths L176–239
+ _patch_infra method method _patch_infra L177–188
+ test_clone_uses_hub_seed method method test_clone_uses_hub_seed L197–209
+ test_fetch_uses_hub_seed_plus_one_delta method method test_fetch_uses_hub_seed_plus_one_delta L212–224
+ test_pull_uses_hub_seed_plus_one_delta method method test_pull_uses_hub_seed_plus_one_delta L227–239
+ test_push_uses_local_seed method method test_push_uses_local_seed L190–195
+ TestWireHashInvalidation class class TestWireHashInvalidation L331–441
+ test_hub_seed_invalidates_on_wire_hash_change method method test_hub_seed_invalidates_on_wire_hash_change L384–413
+ test_hub_seed_skips_push_when_wire_hash_matches method method test_hub_seed_skips_push_when_wire_hash_matches L415–441
+ test_local_seed_invalidates_on_wire_hash_change method method test_local_seed_invalidates_on_wire_hash_change L360–381
+ test_local_seed_stores_wire_hash method method test_local_seed_stores_wire_hash L351–358
+ test_wire_hash_is_hex_string method method test_wire_hash_is_hex_string L345–349
+ test_wire_hash_is_stable method method test_wire_hash_is_stable L339–343
+ _hub_list_response function function _hub_list_response L26–36
+ MagicMock import import MagicMock L15–15
+ annotations import import annotations L10–10
+ bc import import bc L19–19
+ call import import call L15–15
+ json import import json L12–12
+ os import import os L13–13
+ patch import import patch L15–15
+ pathlib import import pathlib L14–14
+ pytest import import pytest L17–17
+ pytestmark variable variable pytestmark L21–21
~ tests/test_clone_xs_unit.py .py 30 symbols added
+ FILE_CONTENT variable variable FILE_CONTENT L38–38
+ FILE_OID variable variable FILE_OID L39–39
+ LOCALHOST variable variable LOCALHOST L35–35
+ REPO_ROOT variable variable REPO_ROOT L36–36
+ _PROD_DB_URL variable variable _PROD_DB_URL L33–33
+ _muse function function _muse L42–46
+ _muse_check function function _muse_check L49–53
+ _push_xs_repo function function _push_xs_repo L56–82
+ _wait_indexed function async_function _wait_indexed L85–100
+ AsyncSession import import AsyncSession L27–27
+ MusehubMPackIndex import import MusehubMPackIndex L31–31
+ Path import import Path L23–23
+ _time import import _time L22–22
+ annotations import import annotations L14–14
+ asyncio import import asyncio L16–16
+ blob_id import import blob_id L30–30
+ create_async_engine import import create_async_engine L27–27
+ json import import json L17–17
+ os import import os L18–18
+ pytest import import pytest L25–25
+ select import import select L26–26
+ sessionmaker import import sessionmaker L28–28
+ shutil import import shutil L19–19
+ subprocess import import subprocess L20–20
+ tempfile import import tempfile L21–21
+ test_c1_muse_clone_xs_exits_zero function function test_c1_muse_clone_xs_exits_zero L107–124
+ test_c2_cloned_file_content_matches_push function function test_c2_cloned_file_content_matches_push L131–167
+ test_c3_clone_output_has_no_integrity_errors function function test_c3_clone_output_has_no_integrity_errors L174–196
+ test_c4_cloned_repo_commit_graph_is_correct function function test_c4_cloned_repo_commit_graph_is_correct L203–232
+ test_c5_two_clones_are_identical function function test_c5_two_clones_are_identical L239–287
~ tests/test_clones_integration.py .py 37 symbols added
+ TestClonesDetailPage class class TestClonesDetailPage L218–337
+ cross_file_cluster method async_method cross_file_cluster L222–232
+ same_file_cluster method async_method same_file_cluster L235–245
+ test_I08_detail_200_known_hash method async_method test_I08_detail_200_known_hash L248–257
+ test_I09_detail_200_unknown_hash method async_method test_I09_detail_200_unknown_hash L260–269
+ test_I10_detail_200_no_cluster_param method async_method test_I10_detail_200_no_cluster_param L272–278
+ test_I11_dashboard_clones_card_with_data method async_method test_I11_dashboard_clones_card_with_data L281–292
+ test_I12_dashboard_clones_card_empty_state method async_method test_I12_dashboard_clones_card_empty_state L295–301
+ test_I13_detail_files_breakdown_present method async_method test_I13_detail_files_breakdown_present L304–313
+ test_I14_cross_file_badge_present method async_method test_I14_cross_file_badge_present L316–325
+ test_I15_same_file_no_cross_file_badge method async_method test_I15_same_file_no_cross_file_badge L328–337
+ TestClonesListPage class class TestClonesListPage L142–211
+ test_I01_list_200_with_clusters method async_method test_I01_list_200_with_clusters L146–152
+ test_I02_list_200_empty_state method async_method test_I02_list_200_empty_state L155–161
+ test_I03_tier_exact_filter method async_method test_I03_tier_exact_filter L164–172
+ test_I04_tier_near_filter method async_method test_I04_tier_near_filter L175–183
+ test_I05_invalid_tier_coerces_to_all method async_method test_I05_invalid_tier_coerces_to_all L186–194
+ test_I06_top_50_pill_active method async_method test_I06_top_50_pill_active L197–203
+ test_I07_out_of_range_top_clamps_to_default method async_method test_I07_out_of_range_top_clamps_to_default L206–211
+ _REF variable variable _REF L44–44
+ _insert_cluster function async_function _insert_cluster L76–103
+ _members function function _members L47–68
+ _same_file_members function function _same_file_members L71–73
+ AsyncClient import import AsyncClient L31–31
+ AsyncSession import import AsyncSession L33–33
+ MusehubIntelClones import import MusehubIntelClones L35–35
+ MusehubRepo import import MusehubRepo L36–36
+ annotations import import annotations L24–24
+ create_repo import import create_repo L37–37
+ json import import json L26–26
+ long_id import import long_id L38–38
+ pg_insert import import pg_insert L32–32
+ pytest import import pytest L28–28
+ pytest_asyncio import import pytest_asyncio L29–29
+ sa import import sa L30–30
+ repo function async_function repo L111–113
+ repo_with_clusters function async_function repo_with_clusters L117–135
~ tests/test_fetch_xs_unit.py .py 28 symbols added
+ LOCALHOST variable variable LOCALHOST L35–35
+ REPO_ROOT variable variable REPO_ROOT L36–36
+ _PROD_DB_URL variable variable _PROD_DB_URL L33–33
+ _muse function function _muse L39–43
+ _muse_check function function _muse_check L46–50
+ _setup_fetch_scenario function function _setup_fetch_scenario L71–138
+ _wait_indexed function async_function _wait_indexed L53–68
+ AsyncSession import import AsyncSession L27–27
+ MusehubMPackIndex import import MusehubMPackIndex L31–31
+ Path import import Path L23–23
+ _time import import _time L22–22
+ annotations import import annotations L14–14
+ asyncio import import asyncio L16–16
+ blob_id import import blob_id L30–30
+ create_async_engine import import create_async_engine L27–27
+ json import import json L17–17
+ os import import os L18–18
+ pytest import import pytest L25–25
+ select import import select L26–26
+ sessionmaker import import sessionmaker L28–28
+ shutil import import shutil L19–19
+ subprocess import import subprocess L20–20
+ tempfile import import tempfile L21–21
+ test_f1_muse_fetch_xs_exits_zero function function test_f1_muse_fetch_xs_exits_zero L145–156
+ test_f2_fetched_object_content_is_correct function function test_f2_fetched_object_content_is_correct L163–189
+ test_f3_fetch_output_has_no_integrity_errors function function test_f3_fetch_output_has_no_integrity_errors L196–212
+ test_f4_fetch_is_idempotent function function test_f4_fetch_is_idempotent L219–242
+ test_f5_fetch_does_not_clobber_local_content function function test_f5_fetch_does_not_clobber_local_content L249–269
~ tests/test_genesis_ids.py .py 227 symbols added
+ TestCanonicalForm class class TestCanonicalForm L167–227
+ test_bridge_mirror_id_canonical method method test_bridge_mirror_id_canonical L208–209
+ test_comment_id_canonical method method test_comment_id_canonical L193–194
+ test_domain_install_id_canonical method method test_domain_install_id_canonical L211–212
+ test_identity_id_canonical method method test_identity_id_canonical L169–170
+ test_issue_event_id_canonical method method test_issue_event_id_canonical L214–215
+ test_issue_id_canonical method method test_issue_id_canonical L175–176
+ test_job_id_canonical method method test_job_id_canonical L217–218
+ test_mist_id_canonical method method test_mist_id_canonical L190–191
+ test_mist_short_id_is_12_chars method method test_mist_short_id_is_12_chars L199–202
+ test_mist_short_id_is_prefix_of_digest method method test_mist_short_id_is_prefix_of_digest L204–206
+ test_proposal_id_canonical method method test_proposal_id_canonical L178–179
+ test_release_id_canonical method method test_release_id_canonical L181–182
+ test_repo_id_canonical method method test_repo_id_canonical L172–173
+ test_reservation_id_canonical method method test_reservation_id_canonical L226–227
+ test_review_id_canonical method method test_review_id_canonical L196–197
+ test_session_id_canonical method method test_session_id_canonical L187–188
+ test_tag_id_canonical method method test_tag_id_canonical L184–185
+ test_task_id_canonical method method test_task_id_canonical L223–224
+ test_webhook_delivery_id_canonical method method test_webhook_delivery_id_canonical L220–221
+ TestCrossVerification class class TestCrossVerification L504–520
+ test_release_id_cli_and_hub_agree method method test_release_id_cli_and_hub_agree L510–512
+ test_release_id_cli_returns_canonical method method test_release_id_cli_returns_canonical L518–520
+ test_tag_id_cli_and_hub_agree method method test_tag_id_cli_and_hub_agree L506–508
+ test_tag_id_cli_returns_canonical method method test_tag_id_cli_returns_canonical L514–516
+ TestDerivationChain class class TestDerivationChain L527–579
+ test_changing_issue_changes_comment_id method method test_changing_issue_changes_comment_id L543–548
+ test_changing_owner_changes_repo_id method method test_changing_owner_changes_repo_id L529–534
+ test_changing_proposal_changes_review_id method method test_changing_proposal_changes_review_id L550–555
+ test_changing_repo_changes_issue_id method method test_changing_repo_changes_issue_id L536–541
+ test_identity_repo_issue_comment_chain_is_fully_verifiable method method test_identity_repo_issue_comment_chain_is_fully_verifiable L557–579
+ TestDeterminism class class TestDeterminism L234–292
+ test_all_entity_ids_are_distinct method method test_all_entity_ids_are_distinct L285–292
+ test_different_branches_yield_different_proposal_ids method method test_different_branches_yield_different_proposal_ids L267–270
+ test_different_content_yields_different_mist_ids method method test_different_content_yields_different_mist_ids L282–283
+ test_different_domains_yield_different_repo_ids method method test_different_domains_yield_different_repo_ids L257–260
+ test_different_labels_yield_different_tag_ids method method test_different_labels_yield_different_tag_ids L277–280
+ test_different_pubkeys_yield_different_identity_ids method method test_different_pubkeys_yield_different_identity_ids L247–250
+ test_different_slugs_yield_different_repo_ids method method test_different_slugs_yield_different_repo_ids L252–255
+ test_different_tags_yield_different_release_ids method method test_different_tags_yield_different_release_ids L272–275
+ test_different_timestamps_yield_different_issue_ids method method test_different_timestamps_yield_different_issue_ids L262–265
+ test_identity_id_deterministic method method test_identity_id_deterministic L236–237
+ test_issue_id_deterministic method method test_issue_id_deterministic L243–245
+ test_repo_id_deterministic method method test_repo_id_deterministic L239–241
+ TestPhase2CanonicalForm class class TestPhase2CanonicalForm L840–861
+ test_asset_id_canonical method method test_asset_id_canonical L845–846
+ test_collaborator_id_canonical method method test_collaborator_id_canonical L854–855
+ test_domain_id_canonical method method test_domain_id_canonical L860–861
+ test_fork_id_canonical method method test_fork_id_canonical L851–852
+ test_key_id_canonical method method test_key_id_canonical L857–858
+ test_label_id_canonical method method test_label_id_canonical L842–843
+ test_webhook_id_canonical method method test_webhook_id_canonical L848–849
+ TestPhase2Determinism class class TestPhase2Determinism L869–956
+ test_all_phase2_ids_are_distinct method method test_all_phase2_ids_are_distinct L949–951
+ test_asset_different_filenames_differ method method test_asset_different_filenames_differ L890–893
+ test_asset_id_deterministic method method test_asset_id_deterministic L886–888
+ test_collaborator_different_identities_differ method method test_collaborator_different_identities_differ L918–922
+ test_collaborator_id_deterministic method method test_collaborator_id_deterministic L914–916
+ test_domain_different_slugs_differ method method test_domain_different_slugs_differ L944–947
+ test_domain_id_deterministic method method test_domain_id_deterministic L940–942
+ test_fork_different_source_repos_differ method method test_fork_different_source_repos_differ L908–912
+ test_fork_id_deterministic method method test_fork_id_deterministic L904–906
+ test_key_different_pubkeys_differ method method test_key_different_pubkeys_differ L928–931
+ test_key_id_deterministic method method test_key_id_deterministic L924–926
+ test_key_no_timestamp_by_design method method test_key_no_timestamp_by_design L933–938
+ test_label_different_names_differ method method test_label_different_names_differ L875–878
+ test_label_different_repos_differ method method test_label_different_repos_differ L880–884
+ test_label_id_deterministic method method test_label_id_deterministic L871–873
+ test_phase2_ids_distinct_from_phase1_ids method method test_phase2_ids_distinct_from_phase1_ids L953–956
+ test_webhook_different_urls_differ method method test_webhook_different_urls_differ L899–902
+ test_webhook_id_deterministic method method test_webhook_id_deterministic L895–897
+ TestPhase2SeparatorInjection class class TestPhase2SeparatorInjection L964–991
+ test_domain_slug_with_path_separator_is_safe method method test_domain_slug_with_path_separator_is_safe L977–979
+ test_fork_nul_in_repo_id_does_not_collide method method test_fork_nul_in_repo_id_does_not_collide L986–991
+ test_key_id_with_base64_padding_chars_is_safe method method test_key_id_with_base64_padding_chars_is_safe L981–984
+ test_label_nul_in_name_is_safe_canonical method method test_label_nul_in_name_is_safe_canonical L966–970
+ test_webhook_url_with_colons_is_safe method method test_webhook_url_with_colons_is_safe L972–975
+ TestPydanticBoundaryOptionalFields class class TestPydanticBoundaryOptionalFields L446–496
+ test_create_repo_template_bad method method test_create_repo_template_bad L461–463
+ test_create_repo_template_future_algo method method test_create_repo_template_future_algo L457–459
+ test_create_repo_template_none method method test_create_repo_template_none L449–451
+ test_create_repo_template_valid method method test_create_repo_template_valid L453–455
+ test_issue_comment_parent_bad method method test_issue_comment_parent_bad L476–478
+ test_issue_comment_parent_future_algo method method test_issue_comment_parent_future_algo L472–474
+ test_issue_comment_parent_none method method test_issue_comment_parent_none L465–466
+ test_issue_comment_parent_valid method method test_issue_comment_parent_valid L468–470
+ test_proposal_comment_parent_bad_format method method test_proposal_comment_parent_bad_format L491–496
+ test_proposal_comment_parent_future_algo method method test_proposal_comment_parent_future_algo L487–489
+ test_proposal_comment_parent_none method method test_proposal_comment_parent_none L480–481
+ test_proposal_comment_parent_valid method method test_proposal_comment_parent_valid L483–485
+ TestPydanticBoundaryPhase2 class class TestPydanticBoundaryPhase2 L999–1175
+ _make_fork_repo_response method method _make_fork_repo_response L1108–1120
+ test_collaborator_response_accepts_future_algo method method test_collaborator_response_accepts_future_algo L1058–1066
+ test_collaborator_response_rejects_bad_collaborator_id method method test_collaborator_response_rejects_bad_collaborator_id L1038–1046
+ test_collaborator_response_rejects_bad_repo_id method method test_collaborator_response_rejects_bad_repo_id L1048–1056
+ test_forked_repo_entry_accepts_future_algo method method test_forked_repo_entry_accepts_future_algo L1155–1175
+ test_forked_repo_entry_rejects_bad_fork_id method method test_forked_repo_entry_rejects_bad_fork_id L1122–1130
+ test_forked_repo_entry_rejects_bad_fork_repo_id method method test_forked_repo_entry_rejects_bad_fork_repo_id L1144–1153
+ test_forked_repo_entry_rejects_bad_source_repo_id method method test_forked_repo_entry_rejects_bad_source_repo_id L1132–1142
+ test_label_response_accepts_future_algo method method test_label_response_accepts_future_algo L1025–1034
+ test_label_response_rejects_bad_label_id method method test_label_response_rejects_bad_label_id L1003–1012
+ test_label_response_rejects_bad_repo_id method method test_label_response_rejects_bad_repo_id L1014–1023
+ test_webhook_response_accepts_future_algo method method test_webhook_response_accepts_future_algo L1094–1104
+ test_webhook_response_rejects_bad_repo_id method method test_webhook_response_rejects_bad_repo_id L1082–1092
+ test_webhook_response_rejects_bad_webhook_id method method test_webhook_response_rejects_bad_webhook_id L1070–1080
+ TestPydanticBoundaryResponseModels class class TestPydanticBoundaryResponseModels L388–443
+ test_proposal_review_accepts_future_algo method method test_proposal_review_accepts_future_algo L405–410
+ test_proposal_review_rejects_bad_id method method test_proposal_review_rejects_bad_id L391–396
+ test_proposal_review_rejects_bad_proposal_id method method test_proposal_review_rejects_bad_proposal_id L398–403
+ test_release_asset_accepts_future_algo method method test_release_asset_accepts_future_algo L426–431
+ test_release_asset_rejects_bad_asset_id method method test_release_asset_rejects_bad_asset_id L412–417
+ test_release_asset_rejects_bad_release_id method method test_release_asset_rejects_bad_release_id L419–424
+ test_wire_tag_accepts_future_algo method method test_wire_tag_accepts_future_algo L441–443
+ test_wire_tag_rejects_bad_commit_id method method test_wire_tag_rejects_bad_commit_id L437–439
+ test_wire_tag_rejects_bad_tag_id method method test_wire_tag_rejects_bad_tag_id L433–435
+ TestPydanticBoundaryWireModels class class TestPydanticBoundaryWireModels L348–386
+ test_fetch_request_accepts_valid_and_future_ids method method test_fetch_request_accepts_valid_and_future_ids L384–386
+ test_fetch_request_rejects_bad_have method method test_fetch_request_rejects_bad_have L380–382
+ test_fetch_request_rejects_bad_want method method test_fetch_request_rejects_bad_want L376–378
+ test_wire_commit_accepts_future_algo method method test_wire_commit_accepts_future_algo L356–358
+ test_wire_commit_rejects_bad_commit_id method method test_wire_commit_rejects_bad_commit_id L351–354
+ test_wire_object_accepts_future_algo method method test_wire_object_accepts_future_algo L372–374
+ test_wire_object_rejects_bad_object_id method method test_wire_object_rejects_bad_object_id L368–370
+ test_wire_snapshot_accepts_future_algo method method test_wire_snapshot_accepts_future_algo L364–366
+ test_wire_snapshot_rejects_bad_id method method test_wire_snapshot_rejects_bad_id L360–362
+ TestSeparatorInjection class class TestSeparatorInjection L299–328
+ test_colon_in_label_is_safe method method test_colon_in_label_is_safe L315–317
+ test_nul_byte_in_slug_does_not_collide method method test_nul_byte_in_slug_does_not_collide L301–309
+ test_path_separator_in_branch_is_safe method method test_path_separator_in_branch_is_safe L319–321
+ test_pipe_in_label_is_safe method method test_pipe_in_label_is_safe L311–313
+ test_sha256_prefix_in_field_is_safe method method test_sha256_prefix_in_field_is_safe L323–328
+ TestServiceLayerGenesisIds class class TestServiceLayerGenesisIds L591–832
+ _async_session method method _async_session L598–627
+ _keypair method method _keypair L629–634
+ test_create_issue_uses_compute_issue_id method async_method test_create_issue_uses_compute_issue_id L705–737
+ test_create_proposal_uses_compute_proposal_id method async_method test_create_proposal_uses_compute_proposal_id L744–789
+ test_create_repo_uses_compute_repo_id method async_method test_create_repo_uses_compute_repo_id L796–832
+ test_register_agent_identity_uses_compute_identity_id method async_method test_register_agent_identity_uses_compute_identity_id L641–666
+ test_upsert_session_uses_compute_session_id method async_method test_upsert_session_uses_compute_session_id L673–698
+ TestServiceLayerPhase2GenesisIds class class TestServiceLayerPhase2GenesisIds L1183–1455
+ _async_session method method _async_session L1186–1206
+ test_create_label_uses_compute_label_id method async_method test_create_label_uses_compute_label_id L1211–1250
+ test_create_webhook_uses_compute_webhook_id method async_method test_create_webhook_uses_compute_webhook_id L1255–1286
+ test_fork_repo_uses_compute_fork_id method async_method test_fork_repo_uses_compute_fork_id L1291–1365
+ test_invite_collaborator_uses_compute_collaborator_id method async_method test_invite_collaborator_uses_compute_collaborator_id L1403–1455
+ test_register_key_uses_compute_key_id method async_method test_register_key_uses_compute_key_id L1370–1398
+ _ASSET_ID variable variable _ASSET_ID L138–138
+ _BAD_IDS variable variable _BAD_IDS L337–344
+ _BRIDGE_MIRROR_ID variable variable _BRIDGE_MIRROR_ID L148–148
+ _CANONICAL_RE variable variable _CANONICAL_RE L116–116
+ _COLLABORATOR_ID variable variable _COLLABORATOR_ID L143–143
+ _COLLAB_IDENTITY_ID variable variable _COLLAB_IDENTITY_ID L142–142
+ _COMMENT_ID variable variable _COMMENT_ID L133–133
+ _COMMIT_ID variable variable _COMMIT_ID L129–129
+ _DOMAIN_ID variable variable _DOMAIN_ID L145–145
+ _DOMAIN_INSTALL_ID variable variable _DOMAIN_INSTALL_ID L149–149
+ _DT variable variable _DT L345–345
+ _FORK_ID variable variable _FORK_ID L141–141
+ _FORK_REPO_ID variable variable _FORK_REPO_ID L140–140
+ _FUTURE_ID variable variable _FUTURE_ID L336–336
+ _IDENTITY_ID variable variable _IDENTITY_ID L123–123
+ _ISSUE_EVENT_ID variable variable _ISSUE_EVENT_ID L150–150
+ _ISSUE_ID variable variable _ISSUE_ID L126–126
+ _JOB_ID variable variable _JOB_ID L151–151
+ _KEY_ID variable variable _KEY_ID L144–144
+ _LABEL_ID variable variable _LABEL_ID L137–137
+ _MIST_ID variable variable _MIST_ID L132–132
+ _PROPOSAL_ID variable variable _PROPOSAL_ID L127–127
+ _PUBKEY variable variable _PUBKEY L122–122
+ _RELEASE_ID variable variable _RELEASE_ID L128–128
+ _REPO_ID variable variable _REPO_ID L125–125
+ _RESERVATION_ID variable variable _RESERVATION_ID L156–160
+ _REVIEW_ID variable variable _REVIEW_ID L134–134
+ _SESSION_ID variable variable _SESSION_ID L131–131
+ _TAG_ID variable variable _TAG_ID L130–130
+ _TASK_ID variable variable _TASK_ID L155–155
+ _VALID_ID variable variable _VALID_ID L335–335
+ _WEBHOOK_DELIVERY_ID variable variable _WEBHOOK_DELIVERY_ID L152–152
+ _WEBHOOK_ID variable variable _WEBHOOK_ID L139–139
+ CollaboratorResponse import import CollaboratorResponse L63–63
+ CreateRepoRequest import import CreateRepoRequest L53–53
+ IssueCommentCreate import import IssueCommentCreate L53–53
+ LabelResponse import import LabelResponse L64–64
+ Path import import Path L47–47
+ ProposalCommentCreate import import ProposalCommentCreate L53–53
+ ProposalReviewResponse import import ProposalReviewResponse L53–53
+ ReleaseAssetResponse import import ReleaseAssetResponse L53–53
+ UserForkedRepoEntry import import UserForkedRepoEntry L53–53
+ ValidationError import import ValidationError L51–51
+ WebhookResponse import import WebhookResponse L53–53
+ WireCommit import import WireCommit L65–65
+ WireFetchRequest import import WireFetchRequest L65–65
+ WireObject import import WireObject L65–65
+ WireSnapshot import import WireSnapshot L65–65
+ WireTagInput import import WireTagInput L53–53
+ annotations import import annotations L42–42
+ compute_asset_id import import compute_asset_id L73–73
+ compute_bridge_mirror_id import import compute_bridge_mirror_id L73–73
+ compute_collaborator_id import import compute_collaborator_id L73–73
+ compute_comment_id import import compute_comment_id L73–73
+ compute_domain_id import import compute_domain_id L73–73
+ compute_domain_install_id import import compute_domain_install_id L73–73
+ compute_fork_id import import compute_fork_id L73–73
+ compute_identity_id import import compute_identity_id L73–73
+ compute_issue_event_id import import compute_issue_event_id L73–73
+ compute_issue_id import import compute_issue_id L73–73
+ compute_job_id import import compute_job_id L73–73
+ compute_key_id import import compute_key_id L73–73
+ compute_label_id import import compute_label_id L73–73
+ compute_mist_id import import compute_mist_id L73–73
+ compute_proposal_id import import compute_proposal_id L73–73
+ compute_release_id import import compute_release_id L73–73
+ compute_repo_id import import compute_repo_id L73–73
+ compute_reservation_id import import compute_reservation_id L73–73
+ compute_review_id import import compute_review_id L73–73
+ compute_session_id import import compute_session_id L73–73
+ compute_tag_id import import compute_tag_id L73–73
+ compute_task_id import import compute_task_id L73–73
+ compute_webhook_delivery_id import import compute_webhook_delivery_id L73–73
+ compute_webhook_id import import compute_webhook_id L73–73
+ datetime import import datetime L46–46
+ fake_id import import fake_id L50–50
+ mist_short_id import import mist_short_id L73–73
+ pytest import import pytest L49–49
+ re import import re L44–44
+ sys import import sys L45–45
+ timezone import import timezone L46–46
+ HUB variable variable HUB L25–25
+ REPO_ROOT variable variable REPO_ROOT L26–26
+ TestCloneAfterPushFromCopytree class class TestCloneAfterPushFromCopytree L114–189
+ _push_from_copy method method _push_from_copy L117–124
+ test_clone_after_push_from_copytree_succeeds method method test_clone_after_push_from_copytree_succeeds L155–170
+ test_cloned_repo_has_correct_commit_count method method test_cloned_repo_has_correct_commit_count L172–189
+ test_push_from_copytree_exits_zero method method test_push_from_copytree_exits_zero L126–135
+ test_server_has_branch_after_push_from_copytree method method test_server_has_branch_after_push_from_copytree L137–153
+ TestCommitDedupAcrossRepos class class TestCommitDedupAcrossRepos L194–252
+ hub_repo_b method method hub_repo_b L208–218
+ test_clone_second_repo_after_same_commits_pushed_to_first method method test_clone_second_repo_after_same_commits_pushed_to_first L220–252
+ TestRemoteRemoveClearsTrackingRefs class class TestRemoteRemoveClearsTrackingRefs L81–109
+ test_push_creates_tracking_ref method method test_push_creates_tracking_ref L89–97
+ test_remote_remove_clears_tracking_refs method method test_remote_remove_clears_tracking_refs L99–109
+ test_tracking_ref_absent_before_push method method test_tracking_ref_absent_before_push L82–87
+ hub_repo function function hub_repo L66–76
+ Path import import Path L19–19
+ annotations import import annotations L13–13
+ json import import json L15–15
+ pytest import import pytest L21–21
+ shutil import import shutil L16–16
+ subprocess import import subprocess L17–17
+ tempfile import import tempfile L18–18
+ muse function function muse L31–35
+ muse_check function function muse_check L38–42
+ pytestmark variable variable pytestmark L23–23
+ seed_repo function function seed_repo L48–62
~ tests/test_model_defaults.py .py 62 symbols added
+ _BRANCH_ID variable variable _BRANCH_ID L39–39
+ _COLLAB_ID variable variable _COLLAB_ID L46–46
+ _COMMENT_ID variable variable _COMMENT_ID L236–236
+ _COMMIT_ID variable variable _COMMIT_ID L40–40
+ _EVENT_ID variable variable _EVENT_ID L233–233
+ _IDENTITY_ID variable variable _IDENTITY_ID L42–42
+ _ISSUE_ID variable variable _ISSUE_ID L43–43
+ _KEY_ID variable variable _KEY_ID L45–45
+ _MIST_ID variable variable _MIST_ID L238–238
+ _OWNER_ID variable variable _OWNER_ID L38–38
+ _PROPOSAL_ID variable variable _PROPOSAL_ID L44–44
+ _RELEASE_ID variable variable _RELEASE_ID L237–237
+ _REPO_ID variable variable _REPO_ID L37–37
+ _SESSION_ID variable variable _SESSION_ID L235–235
+ _SNAP_ID variable variable _SNAP_ID L41–41
+ _WEBHOOK_ID variable variable _WEBHOOK_ID L234–234
+ MusehubAuthKey import import MusehubAuthKey L16–16
+ MusehubBranch import import MusehubBranch L21–21
+ MusehubCollaborator import import MusehubCollaborator L17–17
+ MusehubCommit import import MusehubCommit L21–21
+ MusehubIdentity import import MusehubIdentity L18–18
+ MusehubIssue import import MusehubIssue L29–29
+ MusehubIssueEvent import import MusehubIssueEvent L29–29
+ MusehubMist import import MusehubMist L21–21
+ MusehubProposal import import MusehubProposal L29–29
+ MusehubProposalComment import import MusehubProposalComment L29–29
+ MusehubRelease import import MusehubRelease L20–20
+ MusehubRepo import import MusehubRepo L21–21
+ MusehubSession import import MusehubSession L21–21
+ MusehubSnapshot import import MusehubSnapshot L21–21
+ MusehubSymbolIntel import import MusehubSymbolIntel L19–19
+ MusehubWebhook import import MusehubWebhook L35–35
+ annotations import import annotations L10–10
+ datetime import import datetime L12–12
+ fake_id import import fake_id L14–14
+ timezone import import timezone L12–12
+ test_musehub_auth_key_defaults_at_construction function function test_musehub_auth_key_defaults_at_construction L156–166
+ test_musehub_branch_defaults_at_construction function function test_musehub_branch_defaults_at_construction L181–187
+ test_musehub_collaborator_defaults_at_construction function function test_musehub_collaborator_defaults_at_construction L169–178
+ test_musehub_commit_defaults_at_construction function function test_musehub_commit_defaults_at_construction L203–226
+ test_musehub_identity_defaults_at_construction function function test_musehub_identity_defaults_at_construction L98–108
+ test_musehub_issue_defaults_at_construction function function test_musehub_issue_defaults_at_construction L111–128
+ test_musehub_issue_event_defaults_at_construction function function test_musehub_issue_event_defaults_at_construction L241–250
+ test_musehub_issue_event_payload_is_isolated function function test_musehub_issue_event_payload_is_isolated L253–257
+ test_musehub_label_defaults_at_construction function function test_musehub_label_defaults_at_construction L190–200
+ test_musehub_mist_defaults_at_construction function function test_musehub_mist_defaults_at_construction L349–364
+ test_musehub_mist_lists_are_isolated function function test_musehub_mist_lists_are_isolated L367–372
+ test_musehub_proposal_comment_defaults_at_construction function function test_musehub_proposal_comment_defaults_at_construction L304–315
+ test_musehub_proposal_comment_dimension_ref_is_isolated function function test_musehub_proposal_comment_dimension_ref_is_isolated L318–323
+ test_musehub_proposal_defaults_at_construction function function test_musehub_proposal_defaults_at_construction L131–153
+ test_musehub_release_defaults_at_construction function function test_musehub_release_defaults_at_construction L326–339
+ test_musehub_release_download_urls_is_isolated function function test_musehub_release_download_urls_is_isolated L342–346
+ test_musehub_repo_mutable_defaults_are_isolated function function test_musehub_repo_mutable_defaults_are_isolated L66–73
+ test_musehub_repo_scalar_defaults_at_construction function function test_musehub_repo_scalar_defaults_at_construction L49–63
+ test_musehub_repo_timestamps_set_at_construction function function test_musehub_repo_timestamps_set_at_construction L76–85
+ test_musehub_session_defaults_at_construction function function test_musehub_session_defaults_at_construction L280–293
+ test_musehub_session_lists_are_isolated function function test_musehub_session_lists_are_isolated L296–301
+ test_musehub_snapshot_defaults_at_construction function function test_musehub_snapshot_defaults_at_construction L88–95
+ test_musehub_symbol_intel_arrays_are_isolated function function test_musehub_symbol_intel_arrays_are_isolated L387–391
+ test_musehub_symbol_intel_defaults_at_construction function function test_musehub_symbol_intel_defaults_at_construction L375–384
+ test_musehub_webhook_defaults_at_construction function function test_musehub_webhook_defaults_at_construction L260–270
+ test_musehub_webhook_events_is_isolated function function test_musehub_webhook_events_is_isolated L273–277
~ tests/test_phase1_stable_provider.py .py 61 symbols added
+ TestDaysStableHelper class class TestDaysStableHelper L166–196
+ test_P1_01_none_returns_zero method method test_P1_01_none_returns_zero L169–171
+ test_P1_02_exactly_90_days_ago method method test_P1_02_exactly_90_days_ago L173–176
+ test_P1_03_future_timestamp_clamped_to_zero method method test_P1_03_future_timestamp_clamped_to_zero L178–181
+ test_P1_04_epoch_returns_large_positive method method test_P1_04_epoch_returns_large_positive L183–186
+ test_P1_05_naive_datetime_treated_as_utc method method test_P1_05_naive_datetime_treated_as_utc L188–191
+ test_P1_06_one_day_ago_returns_one method method test_P1_06_one_day_ago_returns_one L193–196
+ TestStableProviderDataIntegrity class class TestStableProviderDataIntegrity L509–587
+ test_P1_22_null_last_changed_excluded method async_method test_P1_22_null_last_changed_excluded L513–533
+ test_P1_23_nonzero_churn_90d_excluded method async_method test_P1_23_nonzero_churn_90d_excluded L536–557
+ test_P1_24_address_unique_per_repo method async_method test_P1_24_address_unique_per_repo L560–587
+ TestStableProviderE2E class class TestStableProviderE2E L352–417
+ test_P1_15_row_count_positive method async_method test_P1_15_row_count_positive L356–364
+ test_P1_16_days_stable_positive method async_method test_P1_16_days_stable_positive L367–380
+ test_P1_17_last_changed_commit_is_sha256_prefixed_or_none method async_method test_P1_17_last_changed_commit_is_sha256_prefixed_or_none L383–397
+ test_P1_18_since_start_only_when_lifetime_churn_zero method async_method test_P1_18_since_start_only_when_lifetime_churn_zero L400–417
+ TestStableProviderIntegration class class TestStableProviderIntegration L203–345
+ test_P1_07_stable_symbol_upserted method async_method test_P1_07_stable_symbol_upserted L207–221
+ test_P1_08_days_stable_value_correct method async_method test_P1_08_days_stable_value_correct L224–238
+ test_P1_09_since_start_true_for_zero_lifetime_churn method async_method test_P1_09_since_start_true_for_zero_lifetime_churn L241–255
+ test_P1_10_since_start_false_for_nonzero_lifetime_churn method async_method test_P1_10_since_start_false_for_nonzero_lifetime_churn L258–272
+ test_P1_11_last_changed_commit_populated method async_method test_P1_11_last_changed_commit_populated L275–289
+ test_P1_12_nonzero_churn_30d_excluded method async_method test_P1_12_nonzero_churn_30d_excluded L292–306
+ test_P1_13_rerun_updates_days_stable_in_place method async_method test_P1_13_rerun_updates_days_stable_in_place L309–325
+ test_P1_14_ref_column_updated_on_rerun method async_method test_P1_14_ref_column_updated_on_rerun L328–345
+ TestStableProviderPerformance class class TestStableProviderPerformance L594–643
+ test_P1_25_1000_row_batch_under_5s method async_method test_P1_25_1000_row_batch_under_5s L598–618
+ test_P1_26_second_run_all_conflicts_under_5s method async_method test_P1_26_second_run_all_conflicts_under_5s L621–643
+ TestStableProviderSecurity class class TestStableProviderSecurity L650–709
+ test_P1_27_sql_injection_in_address_stored_verbatim method async_method test_P1_27_sql_injection_in_address_stored_verbatim L654–681
+ test_P1_28_repo_isolation method async_method test_P1_28_repo_isolation L684–709
+ TestStableProviderStress class class TestStableProviderStress L424–502
+ test_P1_19_500_symbols_all_upserted method async_method test_P1_19_500_symbols_all_upserted L428–450
+ test_P1_20_no_duplicates_after_single_run method async_method test_P1_20_no_duplicates_after_single_run L453–475
+ test_P1_21_upsert_is_idempotent method async_method test_P1_21_upsert_is_idempotent L478–502
+ _OWNER variable variable _OWNER L43–43
+ _REF variable variable _REF L45–45
+ _REF2 variable variable _REF2 L46–46
+ _SLUG variable variable _SLUG L44–44
+ _seed_symbol function async_function _seed_symbol L49–106
+ _uid function function _uid L39–40
+ AsyncSession import import AsyncSession L26–26
+ MusehubIntelStable import import MusehubIntelStable L29–29
+ MusehubRepo import import MusehubRepo L30–30
+ MusehubSymbolIntel import import MusehubSymbolIntel L29–29
+ StableProvider import import StableProvider L31–31
+ _days_stable_from_dt import import _days_stable_from_dt L31–31
+ annotations import import annotations L17–17
+ create_repo import import create_repo L32–32
+ datetime import import datetime L21–21
+ fake_id import import fake_id L28–28
+ long_id import import long_id L28–28
+ pg_insert import import pg_insert L25–25
+ pytest import import pytest L23–23
+ pytest_asyncio import import pytest_asyncio L24–24
+ secrets import import secrets L19–19
+ time import import time L20–20
+ timedelta import import timedelta L21–21
+ timezone import import timezone L21–21
+ stable_repo function async_function stable_repo L114–116
+ stable_repo_with_symbols function async_function stable_repo_with_symbols L120–159
~ tests/test_phase2_blast_risk_route.py .py 55 symbols added
+ TestBlastRiskAllTiers class class TestBlastRiskAllTiers L375–386
+ test_P2_17_all_four_tiers_rendered method async_method test_P2_17_all_four_tiers_rendered L378–386
+ TestBlastRiskBasic class class TestBlastRiskBasic L145–159
+ test_P2_02_get_returns_200 method async_method test_P2_02_get_returns_200 L148–152
+ test_P2_15_content_type_html method async_method test_P2_15_content_type_html L155–159
+ TestBlastRiskEmptyState class class TestBlastRiskEmptyState L180–190
+ test_P2_04_empty_repo_shows_empty_state method async_method test_P2_04_empty_repo_shows_empty_state L183–190
+ TestBlastRiskFilterCritical class class TestBlastRiskFilterCritical L234–244
+ test_P2_07_filter_risk_critical_only method async_method test_P2_07_filter_risk_critical_only L237–244
+ TestBlastRiskFilterHigh class class TestBlastRiskFilterHigh L251–261
+ test_P2_08_filter_risk_high_only method async_method test_P2_08_filter_risk_high_only L254–261
+ TestBlastRiskInvalidFilter class class TestBlastRiskInvalidFilter L268–277
+ test_P2_09_invalid_risk_param_returns_all_rows method async_method test_P2_09_invalid_risk_param_returns_all_rows L271–277
+ TestBlastRiskIsolation class class TestBlastRiskIsolation L393–407
+ test_P2_18_other_repo_rows_absent method async_method test_P2_18_other_repo_rows_absent L396–407
+ TestBlastRiskNoSubprocess class class TestBlastRiskNoSubprocess L360–368
+ test_P2_16_no_subprocess_called method async_method test_P2_16_no_subprocess_called L363–368
+ TestBlastRiskNotFound class class TestBlastRiskNotFound L166–173
+ test_P2_03_unknown_repo_returns_404 method async_method test_P2_03_unknown_repo_returns_404 L169–173
+ TestBlastRiskOrdering class class TestBlastRiskOrdering L217–227
+ test_P2_06_highest_score_appears_before_lower method async_method test_P2_06_highest_score_appears_before_lower L220–227
+ TestBlastRiskRouteRegistration class class TestBlastRiskRouteRegistration L133–138
+ test_P2_01_blast_risk_route_registered method method test_P2_01_blast_risk_route_registered L135–138
+ TestBlastRiskRowsRendered class class TestBlastRiskRowsRendered L197–210
+ test_P2_05_seeded_rows_appear_in_response method async_method test_P2_05_seeded_rows_appear_in_response L200–210
+ TestBlastRiskStats class class TestBlastRiskStats L331–353
+ test_P2_12_critical_count_in_page method async_method test_P2_12_critical_count_in_page L334–339
+ test_P2_13_high_count_in_page method async_method test_P2_13_high_count_in_page L342–346
+ test_P2_14_total_count_in_page method async_method test_P2_14_total_count_in_page L349–353
+ TestBlastRiskTopParam class class TestBlastRiskTopParam L284–324
+ test_P2_10_top_25_limits_rows method async_method test_P2_10_top_25_limits_rows L287–303
+ test_P2_11_invalid_top_clamped_to_default method async_method test_P2_11_invalid_top_clamped_to_default L306–310
+ test_P2_19_top_100_accepted method async_method test_P2_19_top_100_accepted L313–317
+ test_P2_20_top_250_accepted method async_method test_P2_20_top_250_accepted L320–324
+ _OWNER variable variable _OWNER L58–58
+ _REF variable variable _REF L60–60
+ _SLUG variable variable _SLUG L59–59
+ _seed_risk function async_function _seed_risk L63–101
+ _uid function function _uid L54–55
+ AsyncClient import import AsyncClient L43–43
+ AsyncSession import import AsyncSession L46–46
+ MusehubIntelBlastRisk import import MusehubIntelBlastRisk L49–49
+ MusehubRepo import import MusehubRepo L50–50
+ annotations import import annotations L36–36
+ create_repo import import create_repo L51–51
+ fake_id import import fake_id L48–48
+ long_id import import long_id L48–48
+ patch import import patch L39–39
+ pg_insert import import pg_insert L45–45
+ pytest import import pytest L41–41
+ pytest_asyncio import import pytest_asyncio L42–42
+ secrets import import secrets L38–38
+ select import import select L44–44
+ risk_repo function async_function risk_repo L109–110
+ risk_repo_with_rows function async_function risk_repo_with_rows L114–126
~ tests/test_push_xs_unit.py .py 36 symbols added
+ COMMIT_ID variable variable COMMIT_ID L84–84
+ LOCALHOST variable variable LOCALHOST L73–73
+ OBJ_CONTENT variable variable OBJ_CONTENT L81–81
+ OBJ_ID variable variable OBJ_ID L82–82
+ REPO_ROOT variable variable REPO_ROOT L74–74
+ SNAPSHOT_ID variable variable SNAPSHOT_ID L85–85
+ _PROD_DB_URL variable variable _PROD_DB_URL L34–34
+ _build_mpack function function _build_mpack L88–121
+ _fetch_index_rows function async_function _fetch_index_rows L55–71
+ _muse function function _muse L124–128
+ _muse_check function function _muse_check L131–135
+ _wait_indexed function async_function _wait_indexed L37–52
+ AsyncSession import import AsyncSession L28–28
+ MusehubMPackIndex import import MusehubMPackIndex L32–32
+ Path import import Path L23–23
+ _time import import _time L22–22
+ annotations import import annotations L14–14
+ asyncio import import asyncio L16–16
+ blob_id import import blob_id L31–31
+ create_async_engine import import create_async_engine L28–28
+ json import import json L17–17
+ msgpack import import msgpack L25–25
+ os import import os L18–18
+ pytest import import pytest L26–26
+ select import import select L27–27
+ sessionmaker import import sessionmaker L29–29
+ shutil import import shutil L19–19
+ subprocess import import subprocess L20–20
+ tempfile import import tempfile L21–21
+ test_p1_mpack_key_matches_wire_bytes function function test_p1_mpack_key_matches_wire_bytes L150–156
+ test_p1_mpack_objects_round_trip function function test_p1_mpack_objects_round_trip L159–172
+ test_p1_object_id_matches_content function function test_p1_object_id_matches_content L142–147
+ test_p2_muse_push_xs_exits_zero function function test_p2_muse_push_xs_exits_zero L179–213
+ test_p3_pushed_mpack_in_minio_is_muse_format function function test_p3_pushed_mpack_in_minio_is_muse_format L220–288
+ test_p4_mpack_index_has_row_for_pushed_object function function test_p4_mpack_index_has_row_for_pushed_object L295–369
+ test_p5_muse_clone_xs_no_integrity_errors function function test_p5_muse_clone_xs_no_integrity_errors L376–430

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:4992098130166d191cefed0a2821d19cd3cdd3cf50867a4e715c2b30636826c7 --body "your comment"